mirror of
https://git.mirrors.martin98.com/https://github.com/slic3r/Slic3r.git
synced 2025-07-26 05:04:25 +08:00
allow retract_lift_first_layer even when 0 lift to activate extra lift for first move before each object on first layer
supermerill/SuperSlicer#1575
This commit is contained in:
parent
f711601a66
commit
b16ecbfcb1
@ -221,7 +221,8 @@ std::string Wipe::wipe(GCode& gcodegen, bool toolchange)
|
|||||||
//if first layer, ask for a bigger lift for travel to object, to be on the safe side
|
//if first layer, ask for a bigger lift for travel to object, to be on the safe side
|
||||||
static inline void set_extra_lift(const Layer& layer, const Print& print, GCodeWriter & writer, int extruder_id) {
|
static inline void set_extra_lift(const Layer& layer, const Print& print, GCodeWriter & writer, int extruder_id) {
|
||||||
//if first layer, ask for a bigger lift for travel to object, to be on the safe side
|
//if first layer, ask for a bigger lift for travel to object, to be on the safe side
|
||||||
if (layer.id() == 0 && print.config().retract_lift.get_at(extruder_id) != 0) {
|
if (layer.id() == 0 &&
|
||||||
|
(print.config().retract_lift.get_at(extruder_id) != 0 || print.config().retract_lift_first_layer.get_at(extruder_id))) {
|
||||||
//get biggest first layer height and set extra lift for first travel, to be safe.
|
//get biggest first layer height and set extra lift for first travel, to be safe.
|
||||||
double extra_lift_value = 0;
|
double extra_lift_value = 0;
|
||||||
for (const PrintObject* obj : print.objects())
|
for (const PrintObject* obj : print.objects())
|
||||||
@ -4173,8 +4174,9 @@ std::string GCode::retract(bool toolchange)
|
|||||||
}
|
}
|
||||||
if (need_lift)
|
if (need_lift)
|
||||||
if (m_writer.tool()->retract_length() > 0
|
if (m_writer.tool()->retract_length() > 0
|
||||||
|| m_config.use_firmware_retraction
|
|| m_config.use_firmware_retraction
|
||||||
|| (!m_writer.tool_is_extruder() && m_writer.tool()->retract_lift() != 0)
|
|| (!m_writer.tool_is_extruder() && m_writer.tool()->retract_lift() != 0)
|
||||||
|
|| (BOOL_EXTRUDER_CONFIG(retract_lift_first_layer) && this->m_layer_index == 0)
|
||||||
)
|
)
|
||||||
gcode += m_writer.lift();
|
gcode += m_writer.lift();
|
||||||
|
|
||||||
|
@ -3327,7 +3327,8 @@ void PrintConfigDef::init_fff_params()
|
|||||||
def->label = L("Enforce on first layer");
|
def->label = L("Enforce on first layer");
|
||||||
def->full_label = L("Enforce lift on first layer");
|
def->full_label = L("Enforce lift on first layer");
|
||||||
def->category = OptionCategory::extruders;
|
def->category = OptionCategory::extruders;
|
||||||
def->tooltip = L("Select this option to enforce z-lift on the first layer.");
|
def->tooltip = L("Select this option to enforce z-lift on the first layer."
|
||||||
|
"\nIf this is enabled and the lift value is 0 or deactivated, then every first move before each object will be lifted by the first layer height.");
|
||||||
def->mode = comAdvanced;
|
def->mode = comAdvanced;
|
||||||
def->is_vector_extruder = true;
|
def->is_vector_extruder = true;
|
||||||
def->set_default_value(new ConfigOptionBools{ false });
|
def->set_default_value(new ConfigOptionBools{ false });
|
||||||
|
@ -2938,7 +2938,7 @@ void TabPrinter::toggle_options()
|
|||||||
|
|
||||||
// retract lift above / below only applies if using retract lift
|
// retract lift above / below only applies if using retract lift
|
||||||
vec.resize(0);
|
vec.resize(0);
|
||||||
vec = { "retract_lift_above", "retract_lift_below", "retract_lift_first_layer", "retract_lift_top" };
|
vec = { "retract_lift_above", "retract_lift_below", "retract_lift_top" };
|
||||||
for (auto el : vec) {
|
for (auto el : vec) {
|
||||||
field = get_field(el, i);
|
field = get_field(el, i);
|
||||||
if (field)
|
if (field)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user