From 04d916a3511b725a842ae2bc5ad53e07f8d9bae1 Mon Sep 17 00:00:00 2001 From: enricoturri1966 Date: Wed, 21 Feb 2024 10:16:59 +0100 Subject: [PATCH] Fixed debug export of gcode data to be configuration indipendent --- src/slic3r/GUI/GCodeViewer.cpp | 146 ++++++++++++++++----------------- src/slic3r/GUI/GUI_Preview.cpp | 2 +- 2 files changed, 74 insertions(+), 74 deletions(-) diff --git a/src/slic3r/GUI/GCodeViewer.cpp b/src/slic3r/GUI/GCodeViewer.cpp index 3f6769ea39..39823921b7 100644 --- a/src/slic3r/GUI/GCodeViewer.cpp +++ b/src/slic3r/GUI/GCodeViewer.cpp @@ -882,92 +882,92 @@ void GCodeViewer::load_as_gcode(const GCodeProcessorResult& gcode_result, const //#define ENABLE_DATA_EXPORT 1 //#if ENABLE_DATA_EXPORT // auto extrusion_role_to_string = [](libvgcode::EGCodeExtrusionRole role) { -// switch (role) { -// case libvgcode::EGCodeExtrusionRole::None: { return "EGCodeExtrusionRole::None"; } -// case libvgcode::EGCodeExtrusionRole::Perimeter: { return "EGCodeExtrusionRole::Perimeter"; } -// case libvgcode::EGCodeExtrusionRole::ExternalPerimeter: { return "EGCodeExtrusionRole::ExternalPerimeter"; } -// case libvgcode::EGCodeExtrusionRole::OverhangPerimeter: { return "EGCodeExtrusionRole::OverhangPerimeter"; } -// case libvgcode::EGCodeExtrusionRole::InternalInfill: { return "EGCodeExtrusionRole::InternalInfill"; } -// case libvgcode::EGCodeExtrusionRole::SolidInfill: { return "EGCodeExtrusionRole::SolidInfill"; } -// case libvgcode::EGCodeExtrusionRole::TopSolidInfill: { return "EGCodeExtrusionRole::TopSolidInfill"; } -// case libvgcode::EGCodeExtrusionRole::Ironing: { return "EGCodeExtrusionRole::Ironing"; } -// case libvgcode::EGCodeExtrusionRole::BridgeInfill: { return "EGCodeExtrusionRole::BridgeInfill"; } -// case libvgcode::EGCodeExtrusionRole::GapFill: { return "EGCodeExtrusionRole::GapFill"; } -// case libvgcode::EGCodeExtrusionRole::Skirt: { return "EGCodeExtrusionRole::Skirt"; } -// case libvgcode::EGCodeExtrusionRole::SupportMaterial: { return "EGCodeExtrusionRole::SupportMaterial"; } -// case libvgcode::EGCodeExtrusionRole::SupportMaterialInterface: { return "EGCodeExtrusionRole::SupportMaterialInterface"; } -// case libvgcode::EGCodeExtrusionRole::WipeTower: { return "EGCodeExtrusionRole::WipeTower"; } -// case libvgcode::EGCodeExtrusionRole::Custom: { return "EGCodeExtrusionRole::Custom"; } -// case libvgcode::EGCodeExtrusionRole::COUNT: { return "EGCodeExtrusionRole::COUNT"; } -// } +// switch (role) { +// case libvgcode::EGCodeExtrusionRole::None: { return "EGCodeExtrusionRole::None"; } +// case libvgcode::EGCodeExtrusionRole::Perimeter: { return "EGCodeExtrusionRole::Perimeter"; } +// case libvgcode::EGCodeExtrusionRole::ExternalPerimeter: { return "EGCodeExtrusionRole::ExternalPerimeter"; } +// case libvgcode::EGCodeExtrusionRole::OverhangPerimeter: { return "EGCodeExtrusionRole::OverhangPerimeter"; } +// case libvgcode::EGCodeExtrusionRole::InternalInfill: { return "EGCodeExtrusionRole::InternalInfill"; } +// case libvgcode::EGCodeExtrusionRole::SolidInfill: { return "EGCodeExtrusionRole::SolidInfill"; } +// case libvgcode::EGCodeExtrusionRole::TopSolidInfill: { return "EGCodeExtrusionRole::TopSolidInfill"; } +// case libvgcode::EGCodeExtrusionRole::Ironing: { return "EGCodeExtrusionRole::Ironing"; } +// case libvgcode::EGCodeExtrusionRole::BridgeInfill: { return "EGCodeExtrusionRole::BridgeInfill"; } +// case libvgcode::EGCodeExtrusionRole::GapFill: { return "EGCodeExtrusionRole::GapFill"; } +// case libvgcode::EGCodeExtrusionRole::Skirt: { return "EGCodeExtrusionRole::Skirt"; } +// case libvgcode::EGCodeExtrusionRole::SupportMaterial: { return "EGCodeExtrusionRole::SupportMaterial"; } +// case libvgcode::EGCodeExtrusionRole::SupportMaterialInterface: { return "EGCodeExtrusionRole::SupportMaterialInterface"; } +// case libvgcode::EGCodeExtrusionRole::WipeTower: { return "EGCodeExtrusionRole::WipeTower"; } +// case libvgcode::EGCodeExtrusionRole::Custom: { return "EGCodeExtrusionRole::Custom"; } +// case libvgcode::EGCodeExtrusionRole::COUNT: { return "EGCodeExtrusionRole::COUNT"; } +// } // }; // // auto move_type_to_string = [](libvgcode::EMoveType type) { -// switch (type) { -// case libvgcode::EMoveType::Noop: { return "EMoveType::Noop"; } -// case libvgcode::EMoveType::Retract: { return "EMoveType::Retract"; } -// case libvgcode::EMoveType::Unretract: { return "EMoveType::Unretract"; } -// case libvgcode::EMoveType::Seam: { return "EMoveType::Seam"; } -// case libvgcode::EMoveType::ToolChange: { return "EMoveType::ToolChange"; } -// case libvgcode::EMoveType::ColorChange: { return "EMoveType::ColorChange"; } -// case libvgcode::EMoveType::PausePrint: { return "EMoveType::PausePrint"; } -// case libvgcode::EMoveType::CustomGCode: { return "EMoveType::CustomGCode"; } -// case libvgcode::EMoveType::Travel: { return "EMoveType::Travel"; } -// case libvgcode::EMoveType::Wipe: { return "EMoveType::Wipe"; } -// case libvgcode::EMoveType::Extrude: { return "EMoveType::Extrude"; } -// case libvgcode::EMoveType::COUNT: { return "EMoveType::COUNT"; } -// } +// switch (type) { +// case libvgcode::EMoveType::Noop: { return "EMoveType::Noop"; } +// case libvgcode::EMoveType::Retract: { return "EMoveType::Retract"; } +// case libvgcode::EMoveType::Unretract: { return "EMoveType::Unretract"; } +// case libvgcode::EMoveType::Seam: { return "EMoveType::Seam"; } +// case libvgcode::EMoveType::ToolChange: { return "EMoveType::ToolChange"; } +// case libvgcode::EMoveType::ColorChange: { return "EMoveType::ColorChange"; } +// case libvgcode::EMoveType::PausePrint: { return "EMoveType::PausePrint"; } +// case libvgcode::EMoveType::CustomGCode: { return "EMoveType::CustomGCode"; } +// case libvgcode::EMoveType::Travel: { return "EMoveType::Travel"; } +// case libvgcode::EMoveType::Wipe: { return "EMoveType::Wipe"; } +// case libvgcode::EMoveType::Extrude: { return "EMoveType::Extrude"; } +// case libvgcode::EMoveType::COUNT: { return "EMoveType::COUNT"; } +// } // }; // // FilePtr out{ boost::nowide::fopen("C:/prusa/slicer/test_output/spe1872/test.data", "wb") }; // if (out.f != nullptr) { -// const size_t vertices_count = data.vertices.size(); -// fwrite((void*)&vertices_count, 1, sizeof(size_t), out.f); -// for (const libvgcode::PathVertex& v : data.vertices) { -// fwrite((void*)&v.position[0], 1, sizeof(float), out.f); -// fwrite((void*)&v.position[1], 1, sizeof(float), out.f); -// fwrite((void*)&v.position[2], 1, sizeof(float), out.f); -// fwrite((void*)&v.height, 1, sizeof(float), out.f); -// fwrite((void*)&v.width, 1, sizeof(float), out.f); -// fwrite((void*)&v.feedrate, 1, sizeof(float), out.f); -// fwrite((void*)&v.actual_feedrate, 1, sizeof(float), out.f); -// fwrite((void*)&v.mm3_per_mm, 1, sizeof(float), out.f); -// fwrite((void*)&v.fan_speed, 1, sizeof(float), out.f); -// fwrite((void*)&v.temperature, 1, sizeof(float), out.f); -// fwrite((void*)&v.role, 1, sizeof(uint8_t), out.f); -// fwrite((void*)&v.type, 1, sizeof(uint8_t), out.f); -// fwrite((void*)&v.gcode_id, 1, sizeof(uint32_t), out.f); -// fwrite((void*)&v.layer_id, 1, sizeof(uint32_t), out.f); -// fwrite((void*)&v.extruder_id, 1, sizeof(uint32_t), out.f); -// fwrite((void*)&v.color_id, 1, sizeof(uint32_t), out.f); -// fwrite((void*)&v.times[0], 1, sizeof(float), out.f); -// fwrite((void*)&v.times[1], 1, sizeof(float), out.f); +// const uint32_t vertices_count = static_cast(data.vertices.size()); +// fwrite((void*)&vertices_count, 1, sizeof(uint32_t), out.f); +// for (const libvgcode::PathVertex& v : data.vertices) { +// fwrite((void*)&v.position[0], 1, sizeof(float), out.f); +// fwrite((void*)&v.position[1], 1, sizeof(float), out.f); +// fwrite((void*)&v.position[2], 1, sizeof(float), out.f); +// fwrite((void*)&v.height, 1, sizeof(float), out.f); +// fwrite((void*)&v.width, 1, sizeof(float), out.f); +// fwrite((void*)&v.feedrate, 1, sizeof(float), out.f); +// fwrite((void*)&v.actual_feedrate, 1, sizeof(float), out.f); +// fwrite((void*)&v.mm3_per_mm, 1, sizeof(float), out.f); +// fwrite((void*)&v.fan_speed, 1, sizeof(float), out.f); +// fwrite((void*)&v.temperature, 1, sizeof(float), out.f); +// fwrite((void*)&v.role, 1, sizeof(uint8_t), out.f); +// fwrite((void*)&v.type, 1, sizeof(uint8_t), out.f); +// fwrite((void*)&v.gcode_id, 1, sizeof(uint32_t), out.f); +// fwrite((void*)&v.layer_id, 1, sizeof(uint32_t), out.f); +// fwrite((void*)&v.extruder_id, 1, sizeof(uint32_t), out.f); +// fwrite((void*)&v.color_id, 1, sizeof(uint32_t), out.f); +// fwrite((void*)&v.times[0], 1, sizeof(float), out.f); +// fwrite((void*)&v.times[1], 1, sizeof(float), out.f); //#if VGCODE_ENABLE_COG_AND_TOOL_MARKERS -// const float weight = v.weight; +// const float weight = v.weight; //#else -// const float weight = 0.0f; +// const float weight = 0.0f; //#endif // VGCODE_ENABLE_COG_AND_TOOL_MARKERS -// fwrite((void*)&weight, 1, sizeof(float), out.f); -// } +// fwrite((void*)&weight, 1, sizeof(float), out.f); +// } // -// const uint8_t spiral_vase_mode = data.spiral_vase_mode ? 1 : 0; -// fwrite((void*)&spiral_vase_mode, 1, sizeof(uint8_t), out.f); +// const uint8_t spiral_vase_mode = data.spiral_vase_mode ? 1 : 0; +// fwrite((void*)&spiral_vase_mode, 1, sizeof(uint8_t), out.f); // -// const size_t tool_colors_count = data.tools_colors.size(); -// fwrite((void*)&tool_colors_count, 1, sizeof(size_t), out.f); -// for (const libvgcode::Color& c : data.tools_colors) { -// fwrite((void*)&c[0], 1, sizeof(uint8_t), out.f); -// fwrite((void*)&c[1], 1, sizeof(uint8_t), out.f); -// fwrite((void*)&c[2], 1, sizeof(uint8_t), out.f); -// } +// const uint32_t tool_colors_count = static_cast(data.tools_colors.size()); +// fwrite((void*)&tool_colors_count, 1, sizeof(uint32_t), out.f); +// for (const libvgcode::Color& c : data.tools_colors) { +// fwrite((void*)&c[0], 1, sizeof(uint8_t), out.f); +// fwrite((void*)&c[1], 1, sizeof(uint8_t), out.f); +// fwrite((void*)&c[2], 1, sizeof(uint8_t), out.f); +// } // -// const size_t color_print_colors_count = data.color_print_colors.size(); -// fwrite((void*)&color_print_colors_count, 1, sizeof(size_t), out.f); -// for (const libvgcode::Color& c : data.color_print_colors) { -// fwrite((void*)&c[0], 1, sizeof(uint8_t), out.f); -// fwrite((void*)&c[1], 1, sizeof(uint8_t), out.f); -// fwrite((void*)&c[2], 1, sizeof(uint8_t), out.f); -// } +// const uint32_t color_print_colors_count = static_cast(data.color_print_colors.size()); +// fwrite((void*)&color_print_colors_count, 1, sizeof(uint32_t), out.f); +// for (const libvgcode::Color& c : data.color_print_colors) { +// fwrite((void*)&c[0], 1, sizeof(uint8_t), out.f); +// fwrite((void*)&c[1], 1, sizeof(uint8_t), out.f); +// fwrite((void*)&c[2], 1, sizeof(uint8_t), out.f); +// } // } //#endif // ENABLE_DATA_EXPORT diff --git a/src/slic3r/GUI/GUI_Preview.cpp b/src/slic3r/GUI/GUI_Preview.cpp index 3860fde96f..3765bb2cc3 100644 --- a/src/slic3r/GUI/GUI_Preview.cpp +++ b/src/slic3r/GUI/GUI_Preview.cpp @@ -838,7 +838,7 @@ void Preview::load_print_as_fff(bool keep_z_range) const unsigned int number_extruders = wxGetApp().is_editor() ? (unsigned int)print->extruders().size() : m_canvas->get_gcode_extruders_count(); const bool contains_color_gcodes = std::any_of(std::begin(color_print_values), std::end(color_print_values), - [](auto const& item) { return item.type == CustomGCode::Type::ColorChange; }); + [](auto const& item) { return item.type == CustomGCode::Type::ColorChange || item.type == CustomGCode::Type::ToolChange; }); const libvgcode::EViewType choice = contains_color_gcodes ? libvgcode::EViewType::ColorPrint : (number_extruders > 1) ? libvgcode::EViewType::Tool : libvgcode::EViewType::FeatureType;