FIX: Auto brim will not be considered during model arrange

if the brim of an object exceeds the bed area, it will be clipped before transformed to G-Codes

Change-Id: I68d700a85e1d28a5e337e53d614266f6e5e0a653
(cherry picked from commit d19ffaa7bdf4b0ab750119d9ef6252491d936f3e)
This commit is contained in:
wintergua 2022-11-11 15:46:22 +08:00 committed by Lane.Wei
parent bf24a71b60
commit 6dfd598b7f
6 changed files with 34 additions and 5 deletions

View file

@ -2550,9 +2550,22 @@ void Plater::setPrintSpeedTable(GlobalSpeedMap &printSpeedMap) {
printSpeedMap.maxSpeed = printSpeedMap.supportSpeed;
}
/* "inner_wall_speed", "outer_wall_speed", "sparse_infill_speed", "internal_solid_infill_speed",
"top_surface_speed", "support_speed", "support_object_xy_distance", "support_interface_speed",
"bridge_speed", "gap_infill_speed", "travel_speed", "initial_layer_speed"*/
auto& print = wxGetApp().plater()->get_partplate_list().get_current_fff_print();
auto print_config = print.config();
printSpeedMap.bed_poly.points = get_bed_shape(*(wxGetApp().plater()->config()));
Pointfs excluse_area_points = print_config.bed_exclude_area.values;
Polygons exclude_polys;
Polygon exclude_poly;
for (int i = 0; i < excluse_area_points.size(); i++) {
auto pt = excluse_area_points[i];
exclude_poly.points.emplace_back(scale_(pt.x()), scale_(pt.y()));
if (i % 4 == 3) { // exclude areas are always rectangle
exclude_polys.push_back(exclude_poly);
exclude_poly.points.clear();
}
}
printSpeedMap.bed_poly = diff({ printSpeedMap.bed_poly }, exclude_polys)[0];
}
// find temperature of heatend and bed and matierial of an given extruder