Merge remote-tracking branch 'remotes/origin/master' into vb_print_regions
This commit is contained in:
commit
73e0099c55
11 changed files with 49 additions and 16 deletions
|
@ -1,4 +1,5 @@
|
||||||
min_slic3r_version = 2.3.1-beta
|
min_slic3r_version = 2.3.1-beta
|
||||||
|
0.0.17 Updated start g-code. Added specific start g-code for straingauge printers. Improved output filename format. Added filament profile.
|
||||||
0.0.16 Updated CR6-SE start g-code. Added and updated filament profiles.
|
0.0.16 Updated CR6-SE start g-code. Added and updated filament profiles.
|
||||||
0.0.15 Added new printer models, filament profiles. Various improvements.
|
0.0.15 Added new printer models, filament profiles. Various improvements.
|
||||||
min_slic3r_version = 2.3.0-rc2
|
min_slic3r_version = 2.3.0-rc2
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
name = Creality
|
name = Creality
|
||||||
# Configuration version of this file. Config file will only be installed, if the config_version differs.
|
# Configuration version of this file. Config file will only be installed, if the config_version differs.
|
||||||
# This means, the server may force the PrusaSlicer configuration to be downgraded.
|
# This means, the server may force the PrusaSlicer configuration to be downgraded.
|
||||||
config_version = 0.0.16
|
config_version = 0.0.17
|
||||||
# Where to get the updates from?
|
# Where to get the updates from?
|
||||||
config_update_url = https://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/Creality/
|
config_update_url = https://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/Creality/
|
||||||
# changelog_url = https://files.prusa3d.com/?latest=slicer-profiles&lng=%1%
|
# changelog_url = https://files.prusa3d.com/?latest=slicer-profiles&lng=%1%
|
||||||
|
@ -791,7 +791,7 @@ filament_colour = #C7F935
|
||||||
# Common printer preset
|
# Common printer preset
|
||||||
[printer:*common*]
|
[printer:*common*]
|
||||||
printer_technology = FFF
|
printer_technology = FFF
|
||||||
before_layer_gcode = ;BEFORE_LAYER_CHANGE\nG92 E0\n;[layer_z]\n\n
|
before_layer_gcode = ;BEFORE_LAYER_CHANGE\nG92 E0\n;{layer_z}\n\n
|
||||||
between_objects_gcode =
|
between_objects_gcode =
|
||||||
pause_print_gcode =
|
pause_print_gcode =
|
||||||
deretract_speed = 40
|
deretract_speed = 40
|
||||||
|
@ -816,7 +816,7 @@ machine_max_jerk_y = 8
|
||||||
machine_max_jerk_z = 0.4
|
machine_max_jerk_z = 0.4
|
||||||
machine_min_extruding_rate = 0
|
machine_min_extruding_rate = 0
|
||||||
machine_min_travel_rate = 0
|
machine_min_travel_rate = 0
|
||||||
layer_gcode = ;AFTER_LAYER_CHANGE\n;[layer_z]
|
layer_gcode = ;AFTER_LAYER_CHANGE\n;{layer_z}
|
||||||
max_layer_height = 0.28
|
max_layer_height = 0.28
|
||||||
min_layer_height = 0.08
|
min_layer_height = 0.08
|
||||||
max_print_height = 250
|
max_print_height = 250
|
||||||
|
@ -846,16 +846,20 @@ z_offset = 0
|
||||||
printer_model =
|
printer_model =
|
||||||
default_print_profile = 0.16mm OPTIMAL @CREALITY
|
default_print_profile = 0.16mm OPTIMAL @CREALITY
|
||||||
default_filament_profile = Generic PLA @CREALITY
|
default_filament_profile = Generic PLA @CREALITY
|
||||||
start_gcode = G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S120 ; set temporary nozzle temp to prevent oozing during homing and auto bed leveling\nM140 S[first_layer_bed_temperature] ; set final bed temp\nG4 S10 ; allow partial nozzle warmup\nG28 ; home all axis\nG1 Z50 F240\nG1 X2 Y10 F3000\nM104 S[first_layer_temperature] ; set final nozzle temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp to stabilize\nM109 S[first_layer_temperature] ; wait for nozzle temp to stabilize\nG1 Z0.28 F240\nG92 E0\nG1 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 F5000\nG92 E0\nG1 Y10 E10 F1200 ; prime the nozzle\nG92 E0
|
start_gcode = G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM140 S{first_layer_bed_temperature[0]} ; set final bed temp\nM104 S150 ; set temporary nozzle temp to prevent oozing during homing\nG4 S10 ; allow partial nozzle warmup\nG28 ; home all axis\nG1 Z50 F240\nG1 X2 Y10 F3000\nM104 S{first_layer_temperature[0]} ; set final nozzle temp\nM190 S{first_layer_bed_temperature[0]} ; wait for bed temp to stabilize\nM109 S{first_layer_temperature[0]} ; wait for nozzle temp to stabilize\nG1 Z0.28 F240\nG92 E0\nG1 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 F5000\nG92 E0\nG1 Y10 E10 F1200 ; prime the nozzle\nG92 E0
|
||||||
end_gcode = {if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+2, max_print_height)} F600 ; Move print head up{endif}\nG1 X5 Y{print_bed_max[1]*0.8} F{travel_speed*60} ; present print\n{if max_layer_z < max_print_height-10}G1 Z{z_offset+min(max_layer_z+70, max_print_height-10)} F600 ; Move print head further up{endif}\n{if max_layer_z < max_print_height*0.6}G1 Z{max_print_height*0.6} F600 ; Move print head further up{endif}\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors
|
end_gcode = {if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+2, max_print_height)} F600 ; Move print head up{endif}\nG1 X5 Y{print_bed_max[1]*0.8} F{travel_speed*60} ; present print\n{if max_layer_z < max_print_height-10}G1 Z{z_offset+min(max_layer_z+70, max_print_height-10)} F600 ; Move print head further up{endif}\n{if max_layer_z < max_print_height*0.6}G1 Z{max_print_height*0.6} F600 ; Move print head further up{endif}\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors
|
||||||
|
|
||||||
|
# Intended for printers equipped with a strain gauge mechanism, like the CR-6 series
|
||||||
|
[printer:*straingauge*]
|
||||||
|
start_gcode = G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM140 S{first_layer_bed_temperature[0]} ; set final bed temp\nM109 S{first_layer_temperature[0]-50} ; set temporary nozzle temp to prevent oozing during homing\nM190 S{first_layer_bed_temperature[0]} ; wait for bed temp to stabilize\nG28 ; home all axis\nG1 Z50 F240\nG1 X2 Y10 F3000\nM104 S{first_layer_temperature[0]} ; set final nozzle temp\nM109 S{first_layer_temperature[0]} ; wait for nozzle temp to stabilize\nG1 Z0.28 F240\nG92 E0\nG1 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 F5000\nG92 E0\nG1 Y10 E10 F1200 ; prime the nozzle\nG92 E0
|
||||||
|
|
||||||
# Intended for printers with a smaller bed, like the Ender-3 series
|
# Intended for printers with a smaller bed, like the Ender-3 series
|
||||||
[printer:*fastabl*]
|
[printer:*fastabl*]
|
||||||
start_gcode = G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S120 ; set temporary nozzle temp to prevent oozing during homing and auto bed leveling\nM140 S[first_layer_bed_temperature] ; set final bed temp\nG4 S10 ; allow partial nozzle warmup\nG28 ; home all axis\nG29 ; auto bed levelling\nG1 Z50 F240\nG1 X2 Y10 F3000\nM104 S[first_layer_temperature] ; set final nozzle temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp to stabilize\nM109 S[first_layer_temperature] ; wait for nozzle temp to stabilize\nG1 Z0.28 F240\nG92 E0\nG1 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 F5000\nG92 E0\nG1 Y10 E10 F1200 ; prime the nozzle\nG92 E0
|
start_gcode = G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM140 S{first_layer_bed_temperature[0]} ; set final bed temp\nM104 S150 ; set temporary nozzle temp to prevent oozing during homing and auto bed leveling\nG4 S10 ; allow partial nozzle warmup\nG28 ; home all axis\nG29 ; auto bed levelling\nG1 Z50 F240\nG1 X2 Y10 F3000\nM104 S{first_layer_temperature[0]} ; set final nozzle temp\nM190 S{first_layer_bed_temperature[0]} ; wait for bed temp to stabilize\nM109 S{first_layer_temperature[0]} ; wait for nozzle temp to stabilize\nG1 Z0.28 F240\nG92 E0\nG1 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 F5000\nG92 E0\nG1 Y10 E10 F1200 ; prime the nozzle\nG92 E0
|
||||||
|
|
||||||
# Intended for printers with a larger bed, like the CR-10 series
|
# Intended for printers with a larger bed, like the CR-10 series
|
||||||
[printer:*slowabl*]
|
[printer:*slowabl*]
|
||||||
start_gcode = G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S120 ; set temporary nozzle temp to prevent oozing during homing and auto bed leveling\nM140 S[first_layer_bed_temperature] ; set final bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp to stabilize\nG28 ; home all axis\nG29 ; auto bed levelling\nG1 Z50 F240\nG1 X2 Y10 F3000\nM104 S[first_layer_temperature] ; set final nozzle temp\nM109 S[first_layer_temperature] ; wait for nozzle temp to stabilize\nG1 Z0.28 F240\nG92 E0\nG1 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 F5000\nG92 E0\nG1 Y10 E10 F1200 ; prime the nozzle\nG92 E0
|
start_gcode = G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM140 S{first_layer_bed_temperature[0]} ; set final bed temp\nM104 S150 ; set temporary nozzle temp to prevent oozing during homing and auto bed leveling\nM190 S{first_layer_bed_temperature[0]} ; wait for bed temp to stabilize\nG28 ; home all axis\nG29 ; auto bed levelling\nG1 Z50 F240\nG1 X2 Y10 F3000\nM104 S{first_layer_temperature[0]} ; set final nozzle temp\nM109 S{first_layer_temperature[0]} ; wait for nozzle temp to stabilize\nG1 Z0.28 F240\nG92 E0\nG1 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 F5000\nG92 E0\nG1 Y10 E10 F1200 ; prime the nozzle\nG92 E0
|
||||||
|
|
||||||
# Intended for printers with vendor official firmware verified to support M25
|
# Intended for printers with vendor official firmware verified to support M25
|
||||||
[printer:*pauseprint*]
|
[printer:*pauseprint*]
|
||||||
|
@ -981,13 +985,13 @@ printer_model = CR5PROH
|
||||||
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_CREALITY\nPRINTER_MODEL_CR5PROH\nPRINTER_HAS_BOWDEN
|
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_CREALITY\nPRINTER_MODEL_CR5PROH\nPRINTER_HAS_BOWDEN
|
||||||
|
|
||||||
[printer:Creality CR-6 SE]
|
[printer:Creality CR-6 SE]
|
||||||
inherits = *common*; *pauseprint*
|
inherits = *common*; *straingauge*; *pauseprint*
|
||||||
bed_shape = 5x0,230x0,230x235,5x235
|
bed_shape = 5x0,230x0,230x235,5x235
|
||||||
printer_model = CR6SE
|
printer_model = CR6SE
|
||||||
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_CREALITY\nPRINTER_MODEL_CR6SE\nPRINTER_HAS_BOWDEN
|
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_CREALITY\nPRINTER_MODEL_CR6SE\nPRINTER_HAS_BOWDEN
|
||||||
|
|
||||||
[printer:Creality CR-6 Max]
|
[printer:Creality CR-6 Max]
|
||||||
inherits = *common*; *slowabl*
|
inherits = *common*; *straingauge*
|
||||||
retract_length = 6
|
retract_length = 6
|
||||||
bed_shape = 5x5,395x5,395x395,5x395
|
bed_shape = 5x5,395x5,395x395,5x395
|
||||||
max_print_height = 400
|
max_print_height = 400
|
||||||
|
|
|
@ -243,8 +243,7 @@ namespace Slic3r {
|
||||||
|
|
||||||
if (! tcr.priming) {
|
if (! tcr.priming) {
|
||||||
// Move over the wipe tower.
|
// Move over the wipe tower.
|
||||||
// Retract for a tool change, using the toolchange retract value and setting the priming extra length.
|
gcode += gcodegen.retract();
|
||||||
gcode += gcodegen.retract(true);
|
|
||||||
gcodegen.m_avoid_crossing_perimeters.use_external_mp_once();
|
gcodegen.m_avoid_crossing_perimeters.use_external_mp_once();
|
||||||
gcode += gcodegen.travel_to(
|
gcode += gcodegen.travel_to(
|
||||||
wipe_tower_point_to_object_point(gcodegen, start_pos),
|
wipe_tower_point_to_object_point(gcodegen, start_pos),
|
||||||
|
|
|
@ -316,6 +316,11 @@ std::string GCodeWriter::travel_to_xy(const Vec2d &point, const std::string &com
|
||||||
|
|
||||||
std::string GCodeWriter::travel_to_xyz(const Vec3d &point, const std::string &comment)
|
std::string GCodeWriter::travel_to_xyz(const Vec3d &point, const std::string &comment)
|
||||||
{
|
{
|
||||||
|
// FIXME: This function was not being used when travel_speed_z was separated (bd6badf).
|
||||||
|
// Calculation of feedrate was not updated accordingly. If you want to use
|
||||||
|
// this function, fix it first.
|
||||||
|
std::terminate();
|
||||||
|
|
||||||
/* If target Z is lower than current Z but higher than nominal Z we
|
/* If target Z is lower than current Z but higher than nominal Z we
|
||||||
don't perform the Z move but we only move in the XY plane and
|
don't perform the Z move but we only move in the XY plane and
|
||||||
adjust the nominal Z by reducing the lift amount that will be
|
adjust the nominal Z by reducing the lift amount that will be
|
||||||
|
@ -367,10 +372,14 @@ std::string GCodeWriter::travel_to_z(double z, const std::string &comment)
|
||||||
std::string GCodeWriter::_travel_to_z(double z, const std::string &comment)
|
std::string GCodeWriter::_travel_to_z(double z, const std::string &comment)
|
||||||
{
|
{
|
||||||
m_pos(2) = z;
|
m_pos(2) = z;
|
||||||
|
|
||||||
|
double speed = this->config.travel_speed_z.value;
|
||||||
|
if (speed == 0.)
|
||||||
|
speed = this->config.travel_speed.value;
|
||||||
|
|
||||||
std::ostringstream gcode;
|
std::ostringstream gcode;
|
||||||
gcode << "G1 Z" << XYZF_NUM(z)
|
gcode << "G1 Z" << XYZF_NUM(z)
|
||||||
<< " F" << XYZF_NUM(this->config.travel_speed.value * 60.0);
|
<< " F" << XYZF_NUM(speed * 60.0);
|
||||||
COMMENT(comment);
|
COMMENT(comment);
|
||||||
gcode << "\n";
|
gcode << "\n";
|
||||||
return gcode.str();
|
return gcode.str();
|
||||||
|
|
|
@ -430,7 +430,7 @@ const std::vector<std::string>& Preset::print_options()
|
||||||
#endif /* HAS_PRESSURE_EQUALIZER */
|
#endif /* HAS_PRESSURE_EQUALIZER */
|
||||||
"perimeter_speed", "small_perimeter_speed", "external_perimeter_speed", "infill_speed", "solid_infill_speed",
|
"perimeter_speed", "small_perimeter_speed", "external_perimeter_speed", "infill_speed", "solid_infill_speed",
|
||||||
"top_solid_infill_speed", "support_material_speed", "support_material_xy_spacing", "support_material_interface_speed",
|
"top_solid_infill_speed", "support_material_speed", "support_material_xy_spacing", "support_material_interface_speed",
|
||||||
"bridge_speed", "gap_fill_speed", "gap_fill_enabled", "travel_speed", "first_layer_speed", "perimeter_acceleration", "infill_acceleration",
|
"bridge_speed", "gap_fill_speed", "gap_fill_enabled", "travel_speed", "travel_speed_z", "first_layer_speed", "perimeter_acceleration", "infill_acceleration",
|
||||||
"bridge_acceleration", "first_layer_acceleration", "default_acceleration", "skirts", "skirt_distance", "skirt_height", "draft_shield",
|
"bridge_acceleration", "first_layer_acceleration", "default_acceleration", "skirts", "skirt_distance", "skirt_height", "draft_shield",
|
||||||
"min_skirt_length", "brim_width", "brim_offset", "brim_type", "support_material", "support_material_auto", "support_material_threshold", "support_material_enforce_layers",
|
"min_skirt_length", "brim_width", "brim_offset", "brim_type", "support_material", "support_material_auto", "support_material_threshold", "support_material_enforce_layers",
|
||||||
"raft_layers", "raft_first_layer_density", "raft_first_layer_expansion", "raft_contact_distance", "raft_expansion",
|
"raft_layers", "raft_first_layer_density", "raft_first_layer_expansion", "raft_contact_distance", "raft_expansion",
|
||||||
|
|
|
@ -197,6 +197,7 @@ bool Print::invalidate_state_by_config_options(const ConfigOptionResolver & /* n
|
||||||
|| opt_key == "cooling_tube_length"
|
|| opt_key == "cooling_tube_length"
|
||||||
|| opt_key == "extra_loading_move"
|
|| opt_key == "extra_loading_move"
|
||||||
|| opt_key == "travel_speed"
|
|| opt_key == "travel_speed"
|
||||||
|
|| opt_key == "travel_speed_z"
|
||||||
|| opt_key == "first_layer_speed"
|
|| opt_key == "first_layer_speed"
|
||||||
|| opt_key == "z_offset") {
|
|| opt_key == "z_offset") {
|
||||||
steps.emplace_back(psWipeTower);
|
steps.emplace_back(psWipeTower);
|
||||||
|
|
|
@ -2767,6 +2767,15 @@ void PrintConfigDef::init_fff_params()
|
||||||
def->mode = comAdvanced;
|
def->mode = comAdvanced;
|
||||||
def->set_default_value(new ConfigOptionFloat(130));
|
def->set_default_value(new ConfigOptionFloat(130));
|
||||||
|
|
||||||
|
def = this->add("travel_speed_z", coFloat);
|
||||||
|
def->label = L("Z travel");
|
||||||
|
def->tooltip = L("Speed for movements along the Z axis.\nWhen set to zero, the value "
|
||||||
|
"is ignored and regular travel speed is used instead.");
|
||||||
|
def->sidetext = L("mm/s");
|
||||||
|
def->min = 0;
|
||||||
|
def->mode = comAdvanced;
|
||||||
|
def->set_default_value(new ConfigOptionFloat(0.));
|
||||||
|
|
||||||
def = this->add("use_firmware_retraction", coBool);
|
def = this->add("use_firmware_retraction", coBool);
|
||||||
def->label = L("Use firmware retraction");
|
def->label = L("Use firmware retraction");
|
||||||
def->tooltip = L("This experimental setting uses G10 and G11 commands to have the firmware "
|
def->tooltip = L("This experimental setting uses G10 and G11 commands to have the firmware "
|
||||||
|
|
|
@ -648,6 +648,7 @@ PRINT_CONFIG_CLASS_DEFINE(
|
||||||
((ConfigOptionBool, wipe_tower_no_sparse_layers))
|
((ConfigOptionBool, wipe_tower_no_sparse_layers))
|
||||||
((ConfigOptionString, toolchange_gcode))
|
((ConfigOptionString, toolchange_gcode))
|
||||||
((ConfigOptionFloat, travel_speed))
|
((ConfigOptionFloat, travel_speed))
|
||||||
|
((ConfigOptionFloat, travel_speed_z))
|
||||||
((ConfigOptionBool, use_firmware_retraction))
|
((ConfigOptionBool, use_firmware_retraction))
|
||||||
((ConfigOptionBool, use_relative_e_distances))
|
((ConfigOptionBool, use_relative_e_distances))
|
||||||
((ConfigOptionBool, use_volumetric_e))
|
((ConfigOptionBool, use_volumetric_e))
|
||||||
|
|
|
@ -207,6 +207,12 @@ DPIFrame(NULL, wxID_ANY, "", wxDefaultPosition, wxDefaultSize, wxDEFAULT_FRAME_S
|
||||||
// declare events
|
// declare events
|
||||||
Bind(wxEVT_CLOSE_WINDOW, [this](wxCloseEvent& event) {
|
Bind(wxEVT_CLOSE_WINDOW, [this](wxCloseEvent& event) {
|
||||||
#if ENABLE_PROJECT_DIRTY_STATE
|
#if ENABLE_PROJECT_DIRTY_STATE
|
||||||
|
if (event.CanVeto() && m_plater->canvas3D()->get_gizmos_manager().is_in_editing_mode(true)) {
|
||||||
|
// prevents to open the save dirty project dialog
|
||||||
|
event.Veto();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (m_plater != nullptr)
|
if (m_plater != nullptr)
|
||||||
m_plater->save_project_if_dirty();
|
m_plater->save_project_if_dirty();
|
||||||
|
|
||||||
|
@ -691,12 +697,15 @@ bool MainFrame::can_start_new_project() const
|
||||||
#if ENABLE_PROJECT_DIRTY_STATE
|
#if ENABLE_PROJECT_DIRTY_STATE
|
||||||
bool MainFrame::can_save() const
|
bool MainFrame::can_save() const
|
||||||
{
|
{
|
||||||
return (m_plater != nullptr) && !m_plater->model().objects.empty() && !m_plater->get_project_filename().empty() && m_plater->is_project_dirty();
|
return (m_plater != nullptr) && !m_plater->model().objects.empty() &&
|
||||||
|
!m_plater->canvas3D()->get_gizmos_manager().is_in_editing_mode(false) &&
|
||||||
|
!m_plater->get_project_filename().empty() && m_plater->is_project_dirty();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool MainFrame::can_save_as() const
|
bool MainFrame::can_save_as() const
|
||||||
{
|
{
|
||||||
return (m_plater != nullptr) && !m_plater->model().objects.empty();
|
return (m_plater != nullptr) && !m_plater->model().objects.empty() &&
|
||||||
|
!m_plater->canvas3D()->get_gizmos_manager().is_in_editing_mode(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainFrame::save_project()
|
void MainFrame::save_project()
|
||||||
|
|
|
@ -5373,8 +5373,7 @@ bool Plater::export_3mf(const boost::filesystem::path& output_path)
|
||||||
void Plater::export_3mf(const boost::filesystem::path& output_path)
|
void Plater::export_3mf(const boost::filesystem::path& output_path)
|
||||||
#endif // ENABLE_PROJECT_DIRTY_STATE
|
#endif // ENABLE_PROJECT_DIRTY_STATE
|
||||||
{
|
{
|
||||||
if (p->model.objects.empty()
|
if (p->model.objects.empty())
|
||||||
|| canvas3D()->get_gizmos_manager().is_in_editing_mode(true))
|
|
||||||
#if ENABLE_PROJECT_DIRTY_STATE
|
#if ENABLE_PROJECT_DIRTY_STATE
|
||||||
return false;
|
return false;
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -1545,6 +1545,7 @@ void TabPrint::build()
|
||||||
|
|
||||||
optgroup = page->new_optgroup(L("Speed for non-print moves"));
|
optgroup = page->new_optgroup(L("Speed for non-print moves"));
|
||||||
optgroup->append_single_option_line("travel_speed");
|
optgroup->append_single_option_line("travel_speed");
|
||||||
|
optgroup->append_single_option_line("travel_speed_z");
|
||||||
|
|
||||||
optgroup = page->new_optgroup(L("Modifiers"));
|
optgroup = page->new_optgroup(L("Modifiers"));
|
||||||
optgroup->append_single_option_line("first_layer_speed");
|
optgroup->append_single_option_line("first_layer_speed");
|
||||||
|
|
Loading…
Reference in a new issue