mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-08 15:37:30 -06:00
Fix segmentation fault when running CLI (#4702)
* fix: replace extruder_clearance_max_radius with extruder_clearance_radius * fix: add if m_plater before accessing preset_bundle * fix: generate thumbnail only when callback is defined * fix: change default gcode thumbnail format to png
This commit is contained in:
parent
14fc48ffbd
commit
fe914e82f3
3 changed files with 50 additions and 43 deletions
|
@ -1312,14 +1312,14 @@ int CLI::run(int argc, char **argv)
|
|||
old_height_to_rod = config.opt_float("extruder_clearance_height_to_rod");
|
||||
if (config.option<ConfigOptionFloat>("extruder_clearance_height_to_lid"))
|
||||
old_height_to_lid = config.opt_float("extruder_clearance_height_to_lid");
|
||||
if (config.option<ConfigOptionFloat>("extruder_clearance_max_radius"))
|
||||
old_max_radius = config.opt_float("extruder_clearance_max_radius");
|
||||
if (config.option<ConfigOptionFloat>("extruder_clearance_radius"))
|
||||
old_max_radius = config.opt_float("extruder_clearance_radius");
|
||||
if (config.option<ConfigOptionFloats>("max_layer_height"))
|
||||
old_max_layer_height = config.option<ConfigOptionFloats>("max_layer_height")->values;
|
||||
if (config.option<ConfigOptionFloats>("min_layer_height"))
|
||||
old_min_layer_height = config.option<ConfigOptionFloats>("min_layer_height")->values;
|
||||
BOOST_LOG_TRIVIAL(info) << boost::format("old printable size from 3mf: {%1%, %2%, %3%}")%old_printable_width %old_printable_depth %old_printable_height;
|
||||
BOOST_LOG_TRIVIAL(info) << boost::format("old extruder_clearance_height_to_rod %1%, extruder_clearance_height_to_lid %2%, extruder_clearance_max_radius %3%}")%old_height_to_rod %old_height_to_lid %old_max_radius;
|
||||
BOOST_LOG_TRIVIAL(info) << boost::format("old extruder_clearance_height_to_rod %1%, extruder_clearance_height_to_lid %2%, extruder_clearance_radius %3%}")%old_height_to_rod %old_height_to_lid %old_max_radius;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -2774,7 +2774,7 @@ int CLI::run(int argc, char **argv)
|
|||
double print_height = m_print_config.opt_float("printable_height");
|
||||
double height_to_lid = m_print_config.opt_float("extruder_clearance_height_to_lid");
|
||||
double height_to_rod = m_print_config.opt_float("extruder_clearance_height_to_rod");
|
||||
double cleareance_radius = m_print_config.opt_float("extruder_clearance_max_radius");
|
||||
double cleareance_radius = m_print_config.opt_float("extruder_clearance_radius");
|
||||
//double plate_stride;
|
||||
std::string bed_texture;
|
||||
|
||||
|
|
|
@ -2000,13 +2000,16 @@ void GCode::_do_export(Print& print, GCodeOutputStream &file, ThumbnailsGenerato
|
|||
|
||||
// if thumbnail type of BTT_TFT, insert above header
|
||||
// if not, it is inserted under the header in its normal spot
|
||||
const GCodeThumbnailsFormat m_gcode_thumbnail_format = print.full_print_config().opt_enum<GCodeThumbnailsFormat>("thumbnails_format");
|
||||
GCodeThumbnailsFormat m_gcode_thumbnail_format = GCodeThumbnailsFormat::PNG;
|
||||
if (thumbnail_cb != nullptr) {
|
||||
m_gcode_thumbnail_format = print.full_print_config().opt_enum<GCodeThumbnailsFormat>("thumbnails_format");
|
||||
if (m_gcode_thumbnail_format == GCodeThumbnailsFormat::BTT_TFT)
|
||||
GCodeThumbnails::export_thumbnails_to_file(
|
||||
thumbnail_cb, print.get_plate_index(), print.full_print_config().option<ConfigOptionPoints>("thumbnails")->values,
|
||||
m_gcode_thumbnail_format,
|
||||
[&file](const char *sz) { file.write(sz); },
|
||||
[&print]() { print.throw_if_canceled(); });
|
||||
}
|
||||
|
||||
file.write_format("; HEADER_BLOCK_START\n");
|
||||
// Write information on the generator.
|
||||
|
@ -2082,7 +2085,7 @@ void GCode::_do_export(Print& print, GCodeOutputStream &file, ThumbnailsGenerato
|
|||
"; first_layer_temperature = %d\n",
|
||||
print.config().nozzle_temperature_initial_layer.get_at(0));
|
||||
file.write("; CONFIG_BLOCK_END\n\n");
|
||||
} else {
|
||||
} else if (thumbnail_cb != nullptr) {
|
||||
if (m_gcode_thumbnail_format != GCodeThumbnailsFormat::BTT_TFT) {
|
||||
auto thumbnaim_fmt = m_gcode_thumbnail_format;
|
||||
// Orca: if the thumbnail format is ColPic, we write PNG in the beginning of gcode file and ColPic in the end of gcode file.
|
||||
|
|
|
@ -2356,11 +2356,13 @@ void PartPlate::generate_logo_polygon(ExPolygon &logo_polygon)
|
|||
{
|
||||
if (m_shape.size() == 4)
|
||||
{
|
||||
auto preset_bundle = wxGetApp().preset_bundle;
|
||||
|
||||
bool is_bbl_vendor = false;
|
||||
if (preset_bundle)
|
||||
|
||||
if (m_plater) {
|
||||
if (auto preset_bundle = wxGetApp().preset_bundle; preset_bundle)
|
||||
is_bbl_vendor = preset_bundle->is_bbl_vendor();
|
||||
}
|
||||
|
||||
//rectangle case
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
|
@ -2576,9 +2578,11 @@ bool PartPlate::set_shape(const Pointfs& shape, const Pointfs& exclude_areas, Ve
|
|||
calc_vertex_for_icons(4, m_plate_settings_icon);
|
||||
//calc_vertex_for_number(0, (m_plate_index < 9), m_plate_idx_icon);
|
||||
calc_vertex_for_number(0, false, m_plate_idx_icon);
|
||||
if (m_plater) {
|
||||
// calc vertex for plate name
|
||||
generate_plate_name_texture();
|
||||
}
|
||||
}
|
||||
|
||||
calc_height_limit();
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue