Partial fix for crashing min_obj_distance
This commit is contained in:
parent
29137d1b3c
commit
8b2a8822d2
2 changed files with 8 additions and 2 deletions
|
@ -1137,6 +1137,9 @@ std::string Print::validate() const
|
||||||
// Apply the same transformations we apply to the actual meshes when slicing them.
|
// Apply the same transformations we apply to the actual meshes when slicing them.
|
||||||
object->model_object()->instances.front()->transform_polygon(&convex_hull);
|
object->model_object()->instances.front()->transform_polygon(&convex_hull);
|
||||||
// Grow convex hull with the clearance margin.
|
// Grow convex hull with the clearance margin.
|
||||||
|
// FIXME: Arrangement has different parameters for offsetting (jtMiter, limit 2)
|
||||||
|
// which causes that the warning will be showed after arrangement with the
|
||||||
|
// appropriate object distance. Even if I set this to jtMiter the warning still shows up.
|
||||||
convex_hull = offset(convex_hull, scale_(m_config.extruder_clearance_radius.value)/2, jtRound, scale_(0.1)).front();
|
convex_hull = offset(convex_hull, scale_(m_config.extruder_clearance_radius.value)/2, jtRound, scale_(0.1)).front();
|
||||||
// Now we check that no instance of convex_hull intersects any of the previously checked object instances.
|
// Now we check that no instance of convex_hull intersects any of the previously checked object instances.
|
||||||
for (const Point © : object->m_copies) {
|
for (const Point © : object->m_copies) {
|
||||||
|
|
|
@ -1092,7 +1092,7 @@ Plater::priv::priv(Plater *q, MainFrame *main_frame)
|
||||||
: q(q)
|
: q(q)
|
||||||
, main_frame(main_frame)
|
, main_frame(main_frame)
|
||||||
, config(Slic3r::DynamicPrintConfig::new_from_defaults_keys({
|
, config(Slic3r::DynamicPrintConfig::new_from_defaults_keys({
|
||||||
"bed_shape", "complete_objects", "extruder_clearance_radius", "skirts", "skirt_distance",
|
"bed_shape", "complete_objects", "duplicate_distance", "extruder_clearance_radius", "skirts", "skirt_distance",
|
||||||
"brim_width", "variable_layer_height", "serial_port", "serial_speed", "host_type", "print_host",
|
"brim_width", "variable_layer_height", "serial_port", "serial_speed", "host_type", "print_host",
|
||||||
"printhost_apikey", "printhost_cafile", "nozzle_diameter", "single_extruder_multi_material",
|
"printhost_apikey", "printhost_cafile", "nozzle_diameter", "single_extruder_multi_material",
|
||||||
"wipe_tower", "wipe_tower_x", "wipe_tower_y", "wipe_tower_width", "wipe_tower_rotation_angle",
|
"wipe_tower", "wipe_tower_x", "wipe_tower_y", "wipe_tower_width", "wipe_tower_rotation_angle",
|
||||||
|
@ -1774,8 +1774,11 @@ void Plater::priv::arrange()
|
||||||
// FIXME: I don't know how to obtain the minimum distance, it depends
|
// FIXME: I don't know how to obtain the minimum distance, it depends
|
||||||
// on printer technology. I guess the following should work but it crashes.
|
// on printer technology. I guess the following should work but it crashes.
|
||||||
double dist = 6; //PrintConfig::min_object_distance(config);
|
double dist = 6; //PrintConfig::min_object_distance(config);
|
||||||
|
if(printer_technology == ptFFF) {
|
||||||
|
dist = PrintConfig::min_object_distance(config);
|
||||||
|
}
|
||||||
|
|
||||||
auto min_obj_distance = static_cast<coord_t>(dist/SCALING_FACTOR);
|
auto min_obj_distance = coord_t(dist/SCALING_FACTOR);
|
||||||
|
|
||||||
const auto *bed_shape_opt = config->opt<ConfigOptionPoints>("bed_shape");
|
const auto *bed_shape_opt = config->opt<ConfigOptionPoints>("bed_shape");
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue