mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-05-20 03:43:52 +00:00
Bug fix: avoid crossing perimeters (#10185)
* avoid crossing perimeters avoid crossing perimeters Timelapse issue Update GCode.cpp Update GCode.cpp Update GCode.cpp Update GCode.cpp * Update GCode.cpp * Update GCode.cpp Update GCode.cpp * Update GCode.cpp Update GCode.cpp * Replace tab with space --------- Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
This commit is contained in:
@@ -3721,6 +3721,7 @@ LayerResult GCode::process_layer(
|
|||||||
if(is_BBL_Printer()){
|
if(is_BBL_Printer()){
|
||||||
if (printer_structure == PrinterStructure::psI3 && !need_insert_timelapse_gcode_for_traditional && !m_spiral_vase && print.config().print_sequence == PrintSequence::ByLayer) {
|
if (printer_structure == PrinterStructure::psI3 && !need_insert_timelapse_gcode_for_traditional && !m_spiral_vase && print.config().print_sequence == PrintSequence::ByLayer) {
|
||||||
std::string timepals_gcode = insert_timelapse_gcode();
|
std::string timepals_gcode = insert_timelapse_gcode();
|
||||||
|
if(!timepals_gcode.empty()){
|
||||||
gcode += timepals_gcode;
|
gcode += timepals_gcode;
|
||||||
m_writer.set_current_position_clear(false);
|
m_writer.set_current_position_clear(false);
|
||||||
//BBS: check whether custom gcode changes the z position. Update if changed
|
//BBS: check whether custom gcode changes the z position. Update if changed
|
||||||
@@ -3730,6 +3731,7 @@ LayerResult GCode::process_layer(
|
|||||||
pos(2) = temp_z_after_timepals_gcode;
|
pos(2) = temp_z_after_timepals_gcode;
|
||||||
m_writer.set_position(pos);
|
m_writer.set_position(pos);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (!m_config.time_lapse_gcode.value.empty()) {
|
if (!m_config.time_lapse_gcode.value.empty()) {
|
||||||
@@ -4134,6 +4136,7 @@ LayerResult GCode::process_layer(
|
|||||||
m_writer.add_object_change_labels(gcode);
|
m_writer.add_object_change_labels(gcode);
|
||||||
|
|
||||||
std::string timepals_gcode = insert_timelapse_gcode();
|
std::string timepals_gcode = insert_timelapse_gcode();
|
||||||
|
if(!timepals_gcode.empty()){
|
||||||
gcode += timepals_gcode;
|
gcode += timepals_gcode;
|
||||||
m_writer.set_current_position_clear(false);
|
m_writer.set_current_position_clear(false);
|
||||||
//BBS: check whether custom gcode changes the z position. Update if changed
|
//BBS: check whether custom gcode changes the z position. Update if changed
|
||||||
@@ -4143,6 +4146,7 @@ LayerResult GCode::process_layer(
|
|||||||
pos(2) = temp_z_after_timepals_gcode;
|
pos(2) = temp_z_after_timepals_gcode;
|
||||||
m_writer.set_position(pos);
|
m_writer.set_position(pos);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
has_insert_timelapse_gcode = true;
|
has_insert_timelapse_gcode = true;
|
||||||
}
|
}
|
||||||
gcode_toolchange = m_wipe_tower->tool_change(*this, extruder_id, extruder_id == layer_tools.extruders.back());
|
gcode_toolchange = m_wipe_tower->tool_change(*this, extruder_id, extruder_id == layer_tools.extruders.back());
|
||||||
@@ -4379,6 +4383,7 @@ LayerResult GCode::process_layer(
|
|||||||
gcode += this->retract(false, false, LiftType::NormalLift);
|
gcode += this->retract(false, false, LiftType::NormalLift);
|
||||||
|
|
||||||
std::string timepals_gcode = insert_timelapse_gcode();
|
std::string timepals_gcode = insert_timelapse_gcode();
|
||||||
|
if(!timepals_gcode.empty()){
|
||||||
gcode += timepals_gcode;
|
gcode += timepals_gcode;
|
||||||
m_writer.set_current_position_clear(false);
|
m_writer.set_current_position_clear(false);
|
||||||
//BBS: check whether custom gcode changes the z position. Update if changed
|
//BBS: check whether custom gcode changes the z position. Update if changed
|
||||||
@@ -4388,7 +4393,7 @@ LayerResult GCode::process_layer(
|
|||||||
pos(2) = temp_z_after_timepals_gcode;
|
pos(2) = temp_z_after_timepals_gcode;
|
||||||
m_writer.set_position(pos);
|
m_writer.set_position(pos);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
has_insert_timelapse_gcode = true;
|
has_insert_timelapse_gcode = true;
|
||||||
}
|
}
|
||||||
// Then print infill
|
// Then print infill
|
||||||
@@ -4464,6 +4469,7 @@ LayerResult GCode::process_layer(
|
|||||||
m_writer.add_object_change_labels(gcode);
|
m_writer.add_object_change_labels(gcode);
|
||||||
|
|
||||||
std::string timepals_gcode = insert_timelapse_gcode();
|
std::string timepals_gcode = insert_timelapse_gcode();
|
||||||
|
if(!timepals_gcode.empty()){
|
||||||
gcode += timepals_gcode;
|
gcode += timepals_gcode;
|
||||||
m_writer.set_current_position_clear(false);
|
m_writer.set_current_position_clear(false);
|
||||||
//BBS: check whether custom gcode changes the z position. Update if changed
|
//BBS: check whether custom gcode changes the z position. Update if changed
|
||||||
@@ -4473,6 +4479,7 @@ LayerResult GCode::process_layer(
|
|||||||
pos(2) = temp_z_after_timepals_gcode;
|
pos(2) = temp_z_after_timepals_gcode;
|
||||||
m_writer.set_position(pos);
|
m_writer.set_position(pos);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
result.gcode = std::move(gcode);
|
result.gcode = std::move(gcode);
|
||||||
@@ -6078,8 +6085,7 @@ std::string GCode::travel_to(const Point& point, ExtrusionRole role, std::string
|
|||||||
|
|
||||||
// if a retraction would be needed, try to use reduce_crossing_wall to plan a
|
// if a retraction would be needed, try to use reduce_crossing_wall to plan a
|
||||||
// multi-hop travel path inside the configuration space
|
// multi-hop travel path inside the configuration space
|
||||||
if (needs_retraction
|
if ( m_config.reduce_crossing_wall
|
||||||
&& m_config.reduce_crossing_wall
|
|
||||||
&& ! m_avoid_crossing_perimeters.disabled_once()
|
&& ! m_avoid_crossing_perimeters.disabled_once()
|
||||||
//BBS: don't generate detour travel paths when current position is unclear
|
//BBS: don't generate detour travel paths when current position is unclear
|
||||||
&& m_writer.is_current_position_clear()) {
|
&& m_writer.is_current_position_clear()) {
|
||||||
|
|||||||
Reference in New Issue
Block a user