mirror of
https://git.mirrors.martin98.com/https://github.com/prusa3d/PrusaSlicer.git
synced 2025-08-14 12:46:01 +08:00
SPE-1872: libvgcode library: replace volumetric flow rate data with mm3_per_mm to reduce memory usage
This commit is contained in:
parent
0ba4a67af2
commit
21ec3a4a5b
@ -37,6 +37,10 @@ struct PathVertex
|
|||||||
// Segment actual speed
|
// Segment actual speed
|
||||||
//
|
//
|
||||||
float actual_feedrate{ 0.0f };
|
float actual_feedrate{ 0.0f };
|
||||||
|
//
|
||||||
|
// Segment mm3_per_mm
|
||||||
|
//
|
||||||
|
float mm3_per_mm{ 0.0f };
|
||||||
#endif // VGCODE_ENABLE_ET_SPE1872
|
#endif // VGCODE_ENABLE_ET_SPE1872
|
||||||
//
|
//
|
||||||
// Segment fan speed
|
// Segment fan speed
|
||||||
@ -46,16 +50,12 @@ struct PathVertex
|
|||||||
// Segment temperature
|
// Segment temperature
|
||||||
//
|
//
|
||||||
float temperature{ 0.0f };
|
float temperature{ 0.0f };
|
||||||
|
#if !VGCODE_ENABLE_ET_SPE1872
|
||||||
//
|
//
|
||||||
// Segment volumetric rate
|
// Segment volumetric rate
|
||||||
//
|
//
|
||||||
float volumetric_rate{ 0.0f };
|
float volumetric_rate{ 0.0f };
|
||||||
#if VGCODE_ENABLE_ET_SPE1872
|
#endif // !VGCODE_ENABLE_ET_SPE1872
|
||||||
//
|
|
||||||
// Segment actual volumetric rate
|
|
||||||
//
|
|
||||||
float actual_volumetric_rate{ 0.0f };
|
|
||||||
#endif // VGCODE_ENABLE_ET_SPE1872
|
|
||||||
#if VGCODE_ENABLE_COG_AND_TOOL_MARKERS
|
#if VGCODE_ENABLE_COG_AND_TOOL_MARKERS
|
||||||
//
|
//
|
||||||
// Segment weight
|
// Segment weight
|
||||||
@ -112,6 +112,16 @@ struct PathVertex
|
|||||||
// Return true if the segment was generated by custom gcode
|
// Return true if the segment was generated by custom gcode
|
||||||
//
|
//
|
||||||
bool is_custom_gcode() const;
|
bool is_custom_gcode() const;
|
||||||
|
#if VGCODE_ENABLE_ET_SPE1872
|
||||||
|
//
|
||||||
|
// Return the volumetric flow rate of the segment
|
||||||
|
//
|
||||||
|
float volumetric_rate() const { return feedrate * mm3_per_mm; }
|
||||||
|
//
|
||||||
|
// Return the acutal volumetric flow rate of the segment
|
||||||
|
//
|
||||||
|
float actual_volumetric_rate() const { return actual_feedrate * mm3_per_mm; }
|
||||||
|
#endif // VGCODE_ENABLE_ET_SPE1872
|
||||||
|
|
||||||
static const PathVertex DUMMY_PATH_VERTEX;
|
static const PathVertex DUMMY_PATH_VERTEX;
|
||||||
};
|
};
|
||||||
|
@ -985,12 +985,16 @@ Color ViewerImpl::get_vertex_color(const PathVertex& v) const
|
|||||||
}
|
}
|
||||||
case EViewType::VolumetricFlowRate:
|
case EViewType::VolumetricFlowRate:
|
||||||
{
|
{
|
||||||
|
#if VGCODE_ENABLE_ET_SPE1872
|
||||||
|
return v.is_travel() ? get_option_color(move_type_to_option(v.type)) : m_volumetric_rate_range.get_color_at(v.volumetric_rate());
|
||||||
|
#else
|
||||||
return v.is_travel() ? get_option_color(move_type_to_option(v.type)) : m_volumetric_rate_range.get_color_at(v.volumetric_rate);
|
return v.is_travel() ? get_option_color(move_type_to_option(v.type)) : m_volumetric_rate_range.get_color_at(v.volumetric_rate);
|
||||||
|
#endif // VGCODE_ENABLE_ET_SPE1872
|
||||||
}
|
}
|
||||||
#if VGCODE_ENABLE_ET_SPE1872
|
#if VGCODE_ENABLE_ET_SPE1872
|
||||||
case EViewType::ActualVolumetricFlowRate:
|
case EViewType::ActualVolumetricFlowRate:
|
||||||
{
|
{
|
||||||
return v.is_travel() ? get_option_color(move_type_to_option(v.type)) : m_actual_volumetric_rate_range.get_color_at(v.actual_volumetric_rate);
|
return v.is_travel() ? get_option_color(move_type_to_option(v.type)) : m_actual_volumetric_rate_range.get_color_at(v.actual_volumetric_rate());
|
||||||
}
|
}
|
||||||
#endif // VGCODE_ENABLE_ET_SPE1872
|
#endif // VGCODE_ENABLE_ET_SPE1872
|
||||||
case EViewType::LayerTimeLinear:
|
case EViewType::LayerTimeLinear:
|
||||||
@ -1302,9 +1306,11 @@ void ViewerImpl::update_color_ranges()
|
|||||||
m_height_range.update(round_to_bin(v.height));
|
m_height_range.update(round_to_bin(v.height));
|
||||||
if (!v.is_custom_gcode() || m_settings.extrusion_roles_visibility.at(EGCodeExtrusionRole::Custom)) {
|
if (!v.is_custom_gcode() || m_settings.extrusion_roles_visibility.at(EGCodeExtrusionRole::Custom)) {
|
||||||
m_width_range.update(round_to_bin(v.width));
|
m_width_range.update(round_to_bin(v.width));
|
||||||
m_volumetric_rate_range.update(round_to_bin(v.volumetric_rate));
|
|
||||||
#if VGCODE_ENABLE_ET_SPE1872
|
#if VGCODE_ENABLE_ET_SPE1872
|
||||||
m_actual_volumetric_rate_range.update(round_to_bin(v.actual_volumetric_rate));
|
m_volumetric_rate_range.update(round_to_bin(v.volumetric_rate()));
|
||||||
|
m_actual_volumetric_rate_range.update(round_to_bin(v.actual_volumetric_rate()));
|
||||||
|
#else
|
||||||
|
m_volumetric_rate_range.update(round_to_bin(v.volumetric_rate));
|
||||||
#endif // VGCODE_ENABLE_ET_SPE1872
|
#endif // VGCODE_ENABLE_ET_SPE1872
|
||||||
}
|
}
|
||||||
m_fan_speed_range.update(v.fan_speed);
|
m_fan_speed_range.update(v.fan_speed);
|
||||||
|
@ -1148,102 +1148,102 @@ void GCodeViewer::load_as_gcode(const GCodeProcessorResult& gcode_result, const
|
|||||||
// convert data from PrusaSlicer format to libvgcode format
|
// convert data from PrusaSlicer format to libvgcode format
|
||||||
libvgcode::GCodeInputData data = libvgcode::convert(gcode_result, str_tool_colors, str_color_print_colors, m_viewer);
|
libvgcode::GCodeInputData data = libvgcode::convert(gcode_result, str_tool_colors, str_color_print_colors, m_viewer);
|
||||||
|
|
||||||
//#define ENABLE_DATA_EXPORT 1
|
#define ENABLE_DATA_EXPORT 1
|
||||||
//#if ENABLE_DATA_EXPORT
|
#if ENABLE_DATA_EXPORT
|
||||||
// auto extrusion_role_to_string = [](libvgcode::EGCodeExtrusionRole role) {
|
auto extrusion_role_to_string = [](libvgcode::EGCodeExtrusionRole role) {
|
||||||
// switch (role) {
|
switch (role) {
|
||||||
// case libvgcode::EGCodeExtrusionRole::None: { return "EGCodeExtrusionRole::None"; }
|
case libvgcode::EGCodeExtrusionRole::None: { return "EGCodeExtrusionRole::None"; }
|
||||||
// case libvgcode::EGCodeExtrusionRole::Perimeter: { return "EGCodeExtrusionRole::Perimeter"; }
|
case libvgcode::EGCodeExtrusionRole::Perimeter: { return "EGCodeExtrusionRole::Perimeter"; }
|
||||||
// case libvgcode::EGCodeExtrusionRole::ExternalPerimeter: { return "EGCodeExtrusionRole::ExternalPerimeter"; }
|
case libvgcode::EGCodeExtrusionRole::ExternalPerimeter: { return "EGCodeExtrusionRole::ExternalPerimeter"; }
|
||||||
// case libvgcode::EGCodeExtrusionRole::OverhangPerimeter: { return "EGCodeExtrusionRole::OverhangPerimeter"; }
|
case libvgcode::EGCodeExtrusionRole::OverhangPerimeter: { return "EGCodeExtrusionRole::OverhangPerimeter"; }
|
||||||
// case libvgcode::EGCodeExtrusionRole::InternalInfill: { return "EGCodeExtrusionRole::InternalInfill"; }
|
case libvgcode::EGCodeExtrusionRole::InternalInfill: { return "EGCodeExtrusionRole::InternalInfill"; }
|
||||||
// case libvgcode::EGCodeExtrusionRole::SolidInfill: { return "EGCodeExtrusionRole::SolidInfill"; }
|
case libvgcode::EGCodeExtrusionRole::SolidInfill: { return "EGCodeExtrusionRole::SolidInfill"; }
|
||||||
// case libvgcode::EGCodeExtrusionRole::TopSolidInfill: { return "EGCodeExtrusionRole::TopSolidInfill"; }
|
case libvgcode::EGCodeExtrusionRole::TopSolidInfill: { return "EGCodeExtrusionRole::TopSolidInfill"; }
|
||||||
// case libvgcode::EGCodeExtrusionRole::Ironing: { return "EGCodeExtrusionRole::Ironing"; }
|
case libvgcode::EGCodeExtrusionRole::Ironing: { return "EGCodeExtrusionRole::Ironing"; }
|
||||||
// case libvgcode::EGCodeExtrusionRole::BridgeInfill: { return "EGCodeExtrusionRole::BridgeInfill"; }
|
case libvgcode::EGCodeExtrusionRole::BridgeInfill: { return "EGCodeExtrusionRole::BridgeInfill"; }
|
||||||
// case libvgcode::EGCodeExtrusionRole::GapFill: { return "EGCodeExtrusionRole::GapFill"; }
|
case libvgcode::EGCodeExtrusionRole::GapFill: { return "EGCodeExtrusionRole::GapFill"; }
|
||||||
// case libvgcode::EGCodeExtrusionRole::Skirt: { return "EGCodeExtrusionRole::Skirt"; }
|
case libvgcode::EGCodeExtrusionRole::Skirt: { return "EGCodeExtrusionRole::Skirt"; }
|
||||||
// case libvgcode::EGCodeExtrusionRole::SupportMaterial: { return "EGCodeExtrusionRole::SupportMaterial"; }
|
case libvgcode::EGCodeExtrusionRole::SupportMaterial: { return "EGCodeExtrusionRole::SupportMaterial"; }
|
||||||
// case libvgcode::EGCodeExtrusionRole::SupportMaterialInterface: { return "EGCodeExtrusionRole::SupportMaterialInterface"; }
|
case libvgcode::EGCodeExtrusionRole::SupportMaterialInterface: { return "EGCodeExtrusionRole::SupportMaterialInterface"; }
|
||||||
// case libvgcode::EGCodeExtrusionRole::WipeTower: { return "EGCodeExtrusionRole::WipeTower"; }
|
case libvgcode::EGCodeExtrusionRole::WipeTower: { return "EGCodeExtrusionRole::WipeTower"; }
|
||||||
// case libvgcode::EGCodeExtrusionRole::Custom: { return "EGCodeExtrusionRole::Custom"; }
|
case libvgcode::EGCodeExtrusionRole::Custom: { return "EGCodeExtrusionRole::Custom"; }
|
||||||
// case libvgcode::EGCodeExtrusionRole::COUNT: { return "EGCodeExtrusionRole::COUNT"; }
|
case libvgcode::EGCodeExtrusionRole::COUNT: { return "EGCodeExtrusionRole::COUNT"; }
|
||||||
// }
|
}
|
||||||
// };
|
};
|
||||||
//
|
|
||||||
// auto move_type_to_string = [](libvgcode::EMoveType type) {
|
auto move_type_to_string = [](libvgcode::EMoveType type) {
|
||||||
// switch (type) {
|
switch (type) {
|
||||||
// case libvgcode::EMoveType::Noop: { return "EMoveType::Noop"; }
|
case libvgcode::EMoveType::Noop: { return "EMoveType::Noop"; }
|
||||||
// case libvgcode::EMoveType::Retract: { return "EMoveType::Retract"; }
|
case libvgcode::EMoveType::Retract: { return "EMoveType::Retract"; }
|
||||||
// case libvgcode::EMoveType::Unretract: { return "EMoveType::Unretract"; }
|
case libvgcode::EMoveType::Unretract: { return "EMoveType::Unretract"; }
|
||||||
// case libvgcode::EMoveType::Seam: { return "EMoveType::Seam"; }
|
case libvgcode::EMoveType::Seam: { return "EMoveType::Seam"; }
|
||||||
// case libvgcode::EMoveType::ToolChange: { return "EMoveType::ToolChange"; }
|
case libvgcode::EMoveType::ToolChange: { return "EMoveType::ToolChange"; }
|
||||||
// case libvgcode::EMoveType::ColorChange: { return "EMoveType::ColorChange"; }
|
case libvgcode::EMoveType::ColorChange: { return "EMoveType::ColorChange"; }
|
||||||
// case libvgcode::EMoveType::PausePrint: { return "EMoveType::PausePrint"; }
|
case libvgcode::EMoveType::PausePrint: { return "EMoveType::PausePrint"; }
|
||||||
// case libvgcode::EMoveType::CustomGCode: { return "EMoveType::CustomGCode"; }
|
case libvgcode::EMoveType::CustomGCode: { return "EMoveType::CustomGCode"; }
|
||||||
// case libvgcode::EMoveType::Travel: { return "EMoveType::Travel"; }
|
case libvgcode::EMoveType::Travel: { return "EMoveType::Travel"; }
|
||||||
// case libvgcode::EMoveType::Wipe: { return "EMoveType::Wipe"; }
|
case libvgcode::EMoveType::Wipe: { return "EMoveType::Wipe"; }
|
||||||
// case libvgcode::EMoveType::Extrude: { return "EMoveType::Extrude"; }
|
case libvgcode::EMoveType::Extrude: { return "EMoveType::Extrude"; }
|
||||||
// case libvgcode::EMoveType::COUNT: { return "EMoveType::COUNT"; }
|
case libvgcode::EMoveType::COUNT: { return "EMoveType::COUNT"; }
|
||||||
// }
|
}
|
||||||
// };
|
};
|
||||||
//
|
|
||||||
// FilePtr out{ boost::nowide::fopen("C:/prusa/slicer/test_output/spe1872/test.data", "wb") };
|
FilePtr out{ boost::nowide::fopen("C:/prusa/slicer/test_output/spe1872/test.data", "wb") };
|
||||||
// if (out.f != nullptr) {
|
if (out.f != nullptr) {
|
||||||
// const size_t vertices_count = data.vertices.size();
|
const size_t vertices_count = data.vertices.size();
|
||||||
// fwrite((void*)&vertices_count, 1, sizeof(size_t), out.f);
|
fwrite((void*)&vertices_count, 1, sizeof(size_t), out.f);
|
||||||
// for (const libvgcode::PathVertex& v : data.vertices) {
|
for (const libvgcode::PathVertex& v : data.vertices) {
|
||||||
// fwrite((void*)&v.position[0], 1, sizeof(float), out.f);
|
fwrite((void*)&v.position[0], 1, sizeof(float), out.f);
|
||||||
// fwrite((void*)&v.position[1], 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.position[2], 1, sizeof(float), out.f);
|
||||||
// fwrite((void*)&v.height, 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.width, 1, sizeof(float), out.f);
|
||||||
// fwrite((void*)&v.feedrate, 1, sizeof(float), out.f);
|
fwrite((void*)&v.feedrate, 1, sizeof(float), out.f);
|
||||||
//#if ENABLE_ET_SPE1872
|
#if ENABLE_ET_SPE1872
|
||||||
// fwrite((void*)&v.actual_feedrate, 1, sizeof(float), out.f);
|
fwrite((void*)&v.actual_feedrate, 1, sizeof(float), out.f);
|
||||||
//#endif // ENABLE_ET_SPE1872
|
fwrite((void*)&v.mm3_per_mm, 1, sizeof(float), out.f);
|
||||||
// fwrite((void*)&v.fan_speed, 1, sizeof(float), out.f);
|
#endif // ENABLE_ET_SPE1872
|
||||||
// fwrite((void*)&v.temperature, 1, sizeof(float), out.f);
|
fwrite((void*)&v.fan_speed, 1, sizeof(float), out.f);
|
||||||
// fwrite((void*)&v.volumetric_rate, 1, sizeof(float), out.f);
|
fwrite((void*)&v.temperature, 1, sizeof(float), out.f);
|
||||||
//#if ENABLE_ET_SPE1872
|
#if !ENABLE_ET_SPE1872
|
||||||
// fwrite((void*)&v.actual_volumetric_rate, 1, sizeof(float), out.f);
|
fwrite((void*)&v.volumetric_rate, 1, sizeof(float), out.f);
|
||||||
//#endif // ENABLE_ET_SPE1872
|
#endif // !ENABLE_ET_SPE1872
|
||||||
// fwrite((void*)&v.role, 1, sizeof(uint8_t), 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.type, 1, sizeof(uint8_t), out.f);
|
||||||
// fwrite((void*)&v.gcode_id, 1, sizeof(uint32_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.layer_id, 1, sizeof(uint32_t), out.f);
|
||||||
// fwrite((void*)&v.extruder_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.color_id, 1, sizeof(uint32_t), out.f);
|
||||||
// fwrite((void*)&v.times[0], 1, sizeof(float), out.f);
|
fwrite((void*)&v.times[0], 1, sizeof(float), out.f);
|
||||||
// fwrite((void*)&v.times[1], 1, sizeof(float), out.f);
|
fwrite((void*)&v.times[1], 1, sizeof(float), out.f);
|
||||||
//#if VGCODE_ENABLE_COG_AND_TOOL_MARKERS
|
#if VGCODE_ENABLE_COG_AND_TOOL_MARKERS
|
||||||
// const float weight = v.weight;
|
const float weight = v.weight;
|
||||||
//#else
|
#else
|
||||||
// const float weight = 0.0f;
|
const float weight = 0.0f;
|
||||||
//#endif // VGCODE_ENABLE_COG_AND_TOOL_MARKERS
|
#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;
|
const uint8_t spiral_vase_mode = data.spiral_vase_mode ? 1 : 0;
|
||||||
// fwrite((void*)&spiral_vase_mode, 1, sizeof(uint8_t), out.f);
|
fwrite((void*)&spiral_vase_mode, 1, sizeof(uint8_t), out.f);
|
||||||
//
|
|
||||||
// const size_t tool_colors_count = data.tools_colors.size();
|
const size_t tool_colors_count = data.tools_colors.size();
|
||||||
// fwrite((void*)&tool_colors_count, 1, sizeof(size_t), out.f);
|
fwrite((void*)&tool_colors_count, 1, sizeof(size_t), out.f);
|
||||||
// for (const libvgcode::Color& c : data.tools_colors) {
|
for (const libvgcode::Color& c : data.tools_colors) {
|
||||||
// fwrite((void*)&c[0], 1, sizeof(uint8_t), out.f);
|
fwrite((void*)&c[0], 1, sizeof(uint8_t), out.f);
|
||||||
// fwrite((void*)&c[1], 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);
|
fwrite((void*)&c[2], 1, sizeof(uint8_t), out.f);
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// const size_t color_print_colors_count = data.color_print_colors.size();
|
const size_t color_print_colors_count = data.color_print_colors.size();
|
||||||
// fwrite((void*)&color_print_colors_count, 1, sizeof(size_t), out.f);
|
fwrite((void*)&color_print_colors_count, 1, sizeof(size_t), out.f);
|
||||||
// for (const libvgcode::Color& c : data.color_print_colors) {
|
for (const libvgcode::Color& c : data.color_print_colors) {
|
||||||
// fwrite((void*)&c[0], 1, sizeof(uint8_t), out.f);
|
fwrite((void*)&c[0], 1, sizeof(uint8_t), out.f);
|
||||||
// fwrite((void*)&c[1], 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);
|
fwrite((void*)&c[2], 1, sizeof(uint8_t), out.f);
|
||||||
// }
|
}
|
||||||
// }
|
}
|
||||||
//#endif // ENABLE_DATA_EXPORT
|
#endif // ENABLE_DATA_EXPORT
|
||||||
|
|
||||||
// send data to the viewer
|
// send data to the viewer
|
||||||
m_viewer.reset_default_extrusion_roles_colors();
|
m_viewer.reset_default_extrusion_roles_colors();
|
||||||
@ -1262,7 +1262,11 @@ void GCodeViewer::load_as_gcode(const GCodeProcessorResult& gcode_result, const
|
|||||||
curr.role != libvgcode::EGCodeExtrusionRole::Custom) {
|
curr.role != libvgcode::EGCodeExtrusionRole::Custom) {
|
||||||
const Vec3d curr_pos = libvgcode::convert(curr.position).cast<double>();
|
const Vec3d curr_pos = libvgcode::convert(curr.position).cast<double>();
|
||||||
const Vec3d prev_pos = libvgcode::convert(m_viewer.get_vertex_at(i - 1).position).cast<double>();
|
const Vec3d prev_pos = libvgcode::convert(m_viewer.get_vertex_at(i - 1).position).cast<double>();
|
||||||
|
#if ENABLE_ET_SPE1872
|
||||||
|
m_cog.add_segment(curr_pos, prev_pos, gcode_result.filament_densities[curr.extruder_id] * curr.mm3_per_mm * (curr_pos - prev_pos).norm());
|
||||||
|
#else
|
||||||
m_cog.add_segment(curr_pos, prev_pos, gcode_result.filament_densities[curr.extruder_id] * curr.volumetric_rate / curr.feedrate * (curr_pos - prev_pos).norm());
|
m_cog.add_segment(curr_pos, prev_pos, gcode_result.filament_densities[curr.extruder_id] * curr.volumetric_rate / curr.feedrate * (curr_pos - prev_pos).norm());
|
||||||
|
#endif // ENABLE_ET_SPE1872
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif // !VGCODE_ENABLE_COG_AND_TOOL_MARKERS
|
#endif // !VGCODE_ENABLE_COG_AND_TOOL_MARKERS
|
||||||
|
@ -214,15 +214,15 @@ GCodeInputData convert(const Slic3r::GCodeProcessorResult& result, const std::ve
|
|||||||
// and the times, which are set to zero
|
// and the times, which are set to zero
|
||||||
#if ENABLE_ET_SPE1872
|
#if ENABLE_ET_SPE1872
|
||||||
#if VGCODE_ENABLE_COG_AND_TOOL_MARKERS
|
#if VGCODE_ENABLE_COG_AND_TOOL_MARKERS
|
||||||
const libvgcode::PathVertex vertex = { convert(prev.position), height, width, curr.feedrate, prev.actual_feedrate,
|
const libvgcode::PathVertex vertex = { convert(prev.position), height, width, curr.feedrate, prev.actual_feedrate,
|
||||||
curr.fan_speed, curr.temperature, curr.volumetric_rate(), prev.actual_volumetric_rate(), 0.0f,
|
curr.mm3_per_mm, curr.fan_speed, curr.temperature, 0.0f, convert(curr.extrusion_role), curr_type,
|
||||||
convert(curr.extrusion_role), curr_type, static_cast<uint32_t>(curr.gcode_id), static_cast<uint32_t>(curr.layer_id),
|
static_cast<uint32_t>(curr.gcode_id), static_cast<uint32_t>(curr.layer_id),
|
||||||
static_cast<uint8_t>(curr.extruder_id), static_cast<uint8_t>(curr.cp_color_id), { 0.0f, 0.0f } };
|
static_cast<uint8_t>(curr.extruder_id), static_cast<uint8_t>(curr.cp_color_id), { 0.0f, 0.0f } };
|
||||||
#else
|
#else
|
||||||
const libvgcode::PathVertex vertex = { convert(prev.position), height, width, curr.feedrate, prev.actual_feedrate,
|
const libvgcode::PathVertex vertex = { convert(prev.position), height, width, curr.feedrate, prev.actual_feedrate,
|
||||||
curr.fan_speed, curr.temperature, curr.volumetric_rate(), prev.actual_volumetric_rate(), convert(curr.extrusion_role), curr_type,
|
curr.mm3_per_mm, curr.fan_speed, curr.temperature, convert(curr.extrusion_role), curr_type,
|
||||||
static_cast<uint32_t>(curr.gcode_id), static_cast<uint32_t>(curr.layer_id),
|
static_cast<uint32_t>(curr.gcode_id), static_cast<uint32_t>(curr.layer_id),
|
||||||
static_cast<uint8_t>(curr.extruder_id), static_cast<uint8_t>(curr.cp_color_id), { 0.0f, 0.0f } };
|
static_cast<uint8_t>(curr.extruder_id), static_cast<uint8_t>(curr.cp_color_id), { 0.0f, 0.0f } };
|
||||||
#endif // VGCODE_ENABLE_COG_AND_TOOL_MARKERS
|
#endif // VGCODE_ENABLE_COG_AND_TOOL_MARKERS
|
||||||
#else
|
#else
|
||||||
#if VGCODE_ENABLE_COG_AND_TOOL_MARKERS
|
#if VGCODE_ENABLE_COG_AND_TOOL_MARKERS
|
||||||
@ -244,14 +244,14 @@ GCodeInputData convert(const Slic3r::GCodeProcessorResult& result, const std::ve
|
|||||||
#if ENABLE_ET_SPE1872
|
#if ENABLE_ET_SPE1872
|
||||||
#if VGCODE_ENABLE_COG_AND_TOOL_MARKERS
|
#if VGCODE_ENABLE_COG_AND_TOOL_MARKERS
|
||||||
const libvgcode::PathVertex vertex = { convert(curr.position), height, width, curr.feedrate, curr.actual_feedrate,
|
const libvgcode::PathVertex vertex = { convert(curr.position), height, width, curr.feedrate, curr.actual_feedrate,
|
||||||
curr.fan_speed, curr.temperature, curr.volumetric_rate(), curr.actual_volumetric_rate(),
|
curr.mm3_per_mm, curr.fan_speed, curr.temperature,
|
||||||
result.filament_densities[curr.extruder_id] * curr.mm3_per_mm * (curr.position - prev.position).norm(),
|
result.filament_densities[curr.extruder_id] * curr.mm3_per_mm * (curr.position - prev.position).norm(),
|
||||||
convert(curr.extrusion_role), curr_type, static_cast<uint32_t>(curr.gcode_id), static_cast<uint32_t>(curr.layer_id),
|
convert(curr.extrusion_role), curr_type, static_cast<uint32_t>(curr.gcode_id), static_cast<uint32_t>(curr.layer_id),
|
||||||
static_cast<uint8_t>(curr.extruder_id), static_cast<uint8_t>(curr.cp_color_id), curr.time };
|
static_cast<uint8_t>(curr.extruder_id), static_cast<uint8_t>(curr.cp_color_id), curr.time };
|
||||||
#else
|
#else
|
||||||
const libvgcode::PathVertex vertex = { convert(curr.position), height, width, curr.feedrate, curr.actual_feedrate,
|
const libvgcode::PathVertex vertex = { convert(curr.position), height, width, curr.feedrate, curr.actual_feedrate,
|
||||||
curr.fan_speed, curr.temperature, curr.volumetric_rate(), curr.actual_volumetric_rate(), convert(curr.extrusion_role),
|
curr.mm3_per_mm, curr.fan_speed, curr.temperature, convert(curr.extrusion_role), curr_type,
|
||||||
curr_type, static_cast<uint32_t>(curr.gcode_id), static_cast<uint32_t>(curr.layer_id),
|
static_cast<uint32_t>(curr.gcode_id), static_cast<uint32_t>(curr.layer_id),
|
||||||
static_cast<uint8_t>(curr.extruder_id), static_cast<uint8_t>(curr.cp_color_id), curr.time };
|
static_cast<uint8_t>(curr.extruder_id), static_cast<uint8_t>(curr.cp_color_id), curr.time };
|
||||||
#endif // VGCODE_ENABLE_COG_AND_TOOL_MARKERS
|
#endif // VGCODE_ENABLE_COG_AND_TOOL_MARKERS
|
||||||
#else
|
#else
|
||||||
@ -293,11 +293,11 @@ static void convert_lines_to_vertices(const Slic3r::Lines& lines, const std::vec
|
|||||||
#if ENABLE_ET_SPE1872
|
#if ENABLE_ET_SPE1872
|
||||||
#if VGCODE_ENABLE_COG_AND_TOOL_MARKERS
|
#if VGCODE_ENABLE_COG_AND_TOOL_MARKERS
|
||||||
libvgcode::PathVertex vertex = { convert(Slic3r::Vec3f(a.x(), a.y(), top_z)), heights[i], widths[i], 0.0f, 0.0f,
|
libvgcode::PathVertex vertex = { convert(Slic3r::Vec3f(a.x(), a.y(), top_z)), heights[i], widths[i], 0.0f, 0.0f,
|
||||||
0.0f, 0.0f, 0.0f, 0.0f, 0.0f, extrusion_role, EMoveType::Noop, 0, static_cast<uint32_t>(layer_id),
|
0.0f, 0.0f, 0.0f, 0.0f, extrusion_role, EMoveType::Noop, 0, static_cast<uint32_t>(layer_id),
|
||||||
static_cast<uint8_t>(extruder_id), static_cast<uint8_t>(color_id), { 0.0f, 0.0f } };
|
static_cast<uint8_t>(extruder_id), static_cast<uint8_t>(color_id), { 0.0f, 0.0f } };
|
||||||
#else
|
#else
|
||||||
libvgcode::PathVertex vertex = { convert(Slic3r::Vec3f(a.x(), a.y(), top_z)), heights[i], widths[i], 0.0f, 0.0f,
|
libvgcode::PathVertex vertex = { convert(Slic3r::Vec3f(a.x(), a.y(), top_z)), heights[i], widths[i], 0.0f, 0.0f,
|
||||||
0.0f, 0.0f, 0.0f, 0.0f, extrusion_role, EMoveType::Noop, 0, static_cast<uint32_t>(layer_id),
|
0.0f, 0.0f, 0.0f, extrusion_role, EMoveType::Noop, 0, static_cast<uint32_t>(layer_id),
|
||||||
static_cast<uint8_t>(extruder_id), static_cast<uint8_t>(color_id), { 0.0f, 0.0f } };
|
static_cast<uint8_t>(extruder_id), static_cast<uint8_t>(color_id), { 0.0f, 0.0f } };
|
||||||
#endif // VGCODE_ENABLE_COG_AND_TOOL_MARKERS
|
#endif // VGCODE_ENABLE_COG_AND_TOOL_MARKERS
|
||||||
#else
|
#else
|
||||||
@ -321,11 +321,11 @@ static void convert_lines_to_vertices(const Slic3r::Lines& lines, const std::vec
|
|||||||
#if ENABLE_ET_SPE1872
|
#if ENABLE_ET_SPE1872
|
||||||
#if VGCODE_ENABLE_COG_AND_TOOL_MARKERS
|
#if VGCODE_ENABLE_COG_AND_TOOL_MARKERS
|
||||||
const libvgcode::PathVertex vertex = { convert(Slic3r::Vec3f(b.x(), b.y(), top_z)), heights[i], widths[i], 0.0f, 0.0f,
|
const libvgcode::PathVertex vertex = { convert(Slic3r::Vec3f(b.x(), b.y(), top_z)), heights[i], widths[i], 0.0f, 0.0f,
|
||||||
0.0f, 0.0f, 0.0f, 0.0f, 0.0f, extrusion_role, EMoveType::Extrude, 0, static_cast<uint32_t>(layer_id),
|
0.0f, 0.0f, 0.0f, 0.0f, extrusion_role, EMoveType::Extrude, 0, static_cast<uint32_t>(layer_id),
|
||||||
static_cast<uint8_t>(extruder_id), static_cast<uint8_t>(color_id), { 0.0f, 0.0f } };
|
static_cast<uint8_t>(extruder_id), static_cast<uint8_t>(color_id), { 0.0f, 0.0f } };
|
||||||
#else
|
#else
|
||||||
const libvgcode::PathVertex vertex = { convert(Slic3r::Vec3f(b.x(), b.y(), top_z)), heights[i], widths[i], 0.0f, 0.0f,
|
const libvgcode::PathVertex vertex = { convert(Slic3r::Vec3f(b.x(), b.y(), top_z)), heights[i], widths[i], 0.0f, 0.0f,
|
||||||
0.0f, 0.0f, 0.0f, 0.0f, extrusion_role, EMoveType::Extrude, 0, static_cast<uint32_t>(layer_id),
|
0.0f, 0.0f, 0.0f, extrusion_role, EMoveType::Extrude, 0, static_cast<uint32_t>(layer_id),
|
||||||
static_cast<uint8_t>(extruder_id), static_cast<uint8_t>(color_id), { 0.0f, 0.0f } };
|
static_cast<uint8_t>(extruder_id), static_cast<uint8_t>(color_id), { 0.0f, 0.0f } };
|
||||||
#endif // VGCODE_ENABLE_COG_AND_TOOL_MARKERS
|
#endif // VGCODE_ENABLE_COG_AND_TOOL_MARKERS
|
||||||
#else
|
#else
|
||||||
|
Loading…
x
Reference in New Issue
Block a user