mirror of
https://git.mirrors.martin98.com/https://github.com/prusa3d/PrusaSlicer.git
synced 2025-08-16 02:25:53 +08:00
Fix skirt previous position and skirt M486
This commit is contained in:
parent
4db6923a5a
commit
7b7c4beabe
@ -2363,8 +2363,8 @@ std::vector<GCode::ExtrusionOrder::ExtruderExtrusions> GCodeGenerator::get_sorte
|
|||||||
using GCode::ExtrusionOrder::ExtruderExtrusions;
|
using GCode::ExtrusionOrder::ExtruderExtrusions;
|
||||||
using GCode::ExtrusionOrder::get_extrusions;
|
using GCode::ExtrusionOrder::get_extrusions;
|
||||||
|
|
||||||
const std::optional<Vec2d> previous_position{
|
const std::optional<Point> previous_position{
|
||||||
this->last_position ? std::optional{this->point_to_gcode(*this->last_position)} :
|
this->last_position ? std::optional{scaled(this->point_to_gcode(*this->last_position))} :
|
||||||
std::nullopt};
|
std::nullopt};
|
||||||
std::vector<ExtruderExtrusions> extrusions{
|
std::vector<ExtruderExtrusions> extrusions{
|
||||||
get_extrusions(
|
get_extrusions(
|
||||||
@ -2584,18 +2584,25 @@ LayerResult GCodeGenerator::process_layer(
|
|||||||
gcode += ProcessLayer::emit_custom_gcode_per_print_z(*this, *layer_tools.custom_gcode, m_writer.extruder()->id(), first_extruder_id, print.config());
|
gcode += ProcessLayer::emit_custom_gcode_per_print_z(*this, *layer_tools.custom_gcode, m_writer.extruder()->id(), first_extruder_id, print.config());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!this->m_config.complete_objects.value &&
|
||||||
|
(!extruder_extrusions.skirt.empty() || !extruder_extrusions.brim.empty())) {
|
||||||
|
gcode += m_label_objects.maybe_stop_instance();
|
||||||
|
this->m_label_objects.update(nullptr);
|
||||||
|
}
|
||||||
|
|
||||||
if (!moved_to_first_point) {
|
if (!moved_to_first_point) {
|
||||||
const Vec3crd point{to_3d(first_point, scaled(print_z))};
|
const Vec3crd point{to_3d(first_point, scaled(print_z))};
|
||||||
gcode += this->travel_to_first_position(point, print_z, ExtrusionRole::Mixed, [this](){
|
|
||||||
return m_writer.multiple_extruders ? "" : m_label_objects.maybe_change_instance(m_writer);
|
gcode += this->travel_to_first_position(point, print_z, ExtrusionRole::Mixed, [this]() {
|
||||||
|
if (m_writer.multiple_extruders) {
|
||||||
|
return std::string{""};
|
||||||
|
}
|
||||||
|
return m_label_objects.maybe_change_instance(m_writer);
|
||||||
});
|
});
|
||||||
moved_to_first_point = true;
|
moved_to_first_point = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!extruder_extrusions.skirt.empty()) {
|
if (!extruder_extrusions.skirt.empty()) {
|
||||||
if (!this->m_config.complete_objects.value) {
|
|
||||||
gcode += this->m_label_objects.maybe_stop_instance();
|
|
||||||
}
|
|
||||||
this->m_label_objects.update(nullptr);
|
this->m_label_objects.update(nullptr);
|
||||||
|
|
||||||
m_avoid_crossing_perimeters.use_external_mp();
|
m_avoid_crossing_perimeters.use_external_mp();
|
||||||
@ -2616,12 +2623,6 @@ LayerResult GCodeGenerator::process_layer(
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!extruder_extrusions.brim.empty()) {
|
if (!extruder_extrusions.brim.empty()) {
|
||||||
|
|
||||||
if (!this->m_config.complete_objects.value) {
|
|
||||||
gcode += this->m_label_objects.maybe_stop_instance();
|
|
||||||
}
|
|
||||||
this->m_label_objects.update(nullptr);
|
|
||||||
|
|
||||||
m_avoid_crossing_perimeters.use_external_mp();
|
m_avoid_crossing_perimeters.use_external_mp();
|
||||||
|
|
||||||
for (const GCode::ExtrusionOrder::BrimPath &brim_path : extruder_extrusions.brim) {
|
for (const GCode::ExtrusionOrder::BrimPath &brim_path : extruder_extrusions.brim) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user