mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-06 22:47:32 -06:00
Fix floating brim (#9393)
* FIX: brim should be extruded only on first layer github: github.com/bambulab/BambuStudio/issues/4678 Change-Id: Ib00795dfba2e6d869c30ac906385f170088bbfd6 (cherry picked from commit b51ff1721ddc2080c4f7e487f67c4f1a722bf091) * Fix compile
This commit is contained in:
parent
0dd356a3a7
commit
be2d193117
1 changed files with 11 additions and 9 deletions
|
@ -4337,16 +4337,18 @@ LayerResult GCode::process_layer(
|
||||||
for (ObjectByExtruder::Island &island : instance_to_print.object_by_extruder.islands) {
|
for (ObjectByExtruder::Island &island : instance_to_print.object_by_extruder.islands) {
|
||||||
const auto& by_region_specific = is_anything_overridden ? island.by_region_per_copy(by_region_per_copy_cache, static_cast<unsigned int>(instance_to_print.instance_id), extruder_id, print_wipe_extrusions != 0) : island.by_region;
|
const auto& by_region_specific = is_anything_overridden ? island.by_region_per_copy(by_region_per_copy_cache, static_cast<unsigned int>(instance_to_print.instance_id), extruder_id, print_wipe_extrusions != 0) : island.by_region;
|
||||||
//BBS: add brim by obj by extruder
|
//BBS: add brim by obj by extruder
|
||||||
if (this->m_objsWithBrim.find(instance_to_print.print_object.id()) != this->m_objsWithBrim.end() && !print_wipe_extrusions) {
|
if (first_layer) {
|
||||||
this->set_origin(0., 0.);
|
if (this->m_objsWithBrim.find(instance_to_print.print_object.id()) != this->m_objsWithBrim.end() && !print_wipe_extrusions) {
|
||||||
m_avoid_crossing_perimeters.use_external_mp();
|
this->set_origin(0., 0.);
|
||||||
for (const ExtrusionEntity* ee : print.m_brimMap.at(instance_to_print.print_object.id()).entities) {
|
m_avoid_crossing_perimeters.use_external_mp();
|
||||||
gcode += this->extrude_entity(*ee, "brim", m_config.support_speed.value);
|
for (const ExtrusionEntity* ee : print.m_brimMap.at(instance_to_print.print_object.id()).entities) {
|
||||||
|
gcode += this->extrude_entity(*ee, "brim", m_config.support_speed.value);
|
||||||
|
}
|
||||||
|
m_avoid_crossing_perimeters.use_external_mp(false);
|
||||||
|
// Allow a straight travel move to the first object point.
|
||||||
|
m_avoid_crossing_perimeters.disable_once();
|
||||||
|
this->m_objsWithBrim.erase(instance_to_print.print_object.id());
|
||||||
}
|
}
|
||||||
m_avoid_crossing_perimeters.use_external_mp(false);
|
|
||||||
// Allow a straight travel move to the first object point.
|
|
||||||
m_avoid_crossing_perimeters.disable_once();
|
|
||||||
this->m_objsWithBrim.erase(instance_to_print.print_object.id());
|
|
||||||
}
|
}
|
||||||
// When starting a new object, use the external motion planner for the first travel move.
|
// When starting a new object, use the external motion planner for the first travel move.
|
||||||
const Point& offset = instance_to_print.print_object.instances()[instance_to_print.instance_id].shift;
|
const Point& offset = instance_to_print.print_object.instances()[instance_to_print.instance_id].shift;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue