mirror of
https://git.mirrors.martin98.com/https://github.com/prusa3d/PrusaSlicer.git
synced 2025-08-15 12:35:55 +08:00
Wipe tower: added an option to change spacing of the lines
This commit is contained in:
parent
7df4cfb453
commit
cd70954758
@ -512,6 +512,7 @@ WipeTower::WipeTower(const PrintConfig& config, const std::vector<std::vector<fl
|
|||||||
m_wipe_tower_width(float(config.wipe_tower_width)),
|
m_wipe_tower_width(float(config.wipe_tower_width)),
|
||||||
m_wipe_tower_rotation_angle(float(config.wipe_tower_rotation_angle)),
|
m_wipe_tower_rotation_angle(float(config.wipe_tower_rotation_angle)),
|
||||||
m_wipe_tower_brim_width(float(config.wipe_tower_brim_width)),
|
m_wipe_tower_brim_width(float(config.wipe_tower_brim_width)),
|
||||||
|
m_extra_spacing(float(config.wipe_tower_extra_spacing/100.)),
|
||||||
m_y_shift(0.f),
|
m_y_shift(0.f),
|
||||||
m_z_pos(0.f),
|
m_z_pos(0.f),
|
||||||
m_bridging(float(config.wipe_tower_bridging)),
|
m_bridging(float(config.wipe_tower_bridging)),
|
||||||
@ -1334,8 +1335,6 @@ void WipeTower::generate(std::vector<std::vector<WipeTower::ToolChangeResult>> &
|
|||||||
if (m_plan.empty())
|
if (m_plan.empty())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
m_extra_spacing = 1.f;
|
|
||||||
|
|
||||||
plan_tower();
|
plan_tower();
|
||||||
for (int i=0;i<5;++i) {
|
for (int i=0;i<5;++i) {
|
||||||
save_on_last_wipe();
|
save_on_last_wipe();
|
||||||
|
@ -461,7 +461,7 @@ static std::vector<std::string> s_Preset_print_options {
|
|||||||
"top_infill_extrusion_width", "support_material_extrusion_width", "infill_overlap", "infill_anchor", "infill_anchor_max", "bridge_flow_ratio",
|
"top_infill_extrusion_width", "support_material_extrusion_width", "infill_overlap", "infill_anchor", "infill_anchor_max", "bridge_flow_ratio",
|
||||||
"elefant_foot_compensation", "xy_size_compensation", "threads", "resolution", "gcode_resolution", "wipe_tower", "wipe_tower_x", "wipe_tower_y",
|
"elefant_foot_compensation", "xy_size_compensation", "threads", "resolution", "gcode_resolution", "wipe_tower", "wipe_tower_x", "wipe_tower_y",
|
||||||
"wipe_tower_width", "wipe_tower_rotation_angle", "wipe_tower_brim_width", "wipe_tower_bridging", "single_extruder_multi_material_priming", "mmu_segmented_region_max_width",
|
"wipe_tower_width", "wipe_tower_rotation_angle", "wipe_tower_brim_width", "wipe_tower_bridging", "single_extruder_multi_material_priming", "mmu_segmented_region_max_width",
|
||||||
"wipe_tower_no_sparse_layers", "compatible_printers", "compatible_printers_condition", "inherits",
|
"wipe_tower_no_sparse_layers", "wipe_tower_extra_spacing", "compatible_printers", "compatible_printers_condition", "inherits",
|
||||||
"perimeter_generator", "wall_transition_length", "wall_transition_filter_deviation", "wall_transition_angle",
|
"perimeter_generator", "wall_transition_length", "wall_transition_filter_deviation", "wall_transition_angle",
|
||||||
"wall_distribution_count", "min_feature_size", "min_bead_width"
|
"wall_distribution_count", "min_feature_size", "min_bead_width"
|
||||||
};
|
};
|
||||||
|
@ -206,6 +206,7 @@ bool Print::invalidate_state_by_config_options(const ConfigOptionResolver & /* n
|
|||||||
|| opt_key == "wipe_tower_width"
|
|| opt_key == "wipe_tower_width"
|
||||||
|| opt_key == "wipe_tower_brim_width"
|
|| opt_key == "wipe_tower_brim_width"
|
||||||
|| opt_key == "wipe_tower_bridging"
|
|| opt_key == "wipe_tower_bridging"
|
||||||
|
|| opt_key == "wipe_tower_extra_spacing"
|
||||||
|| opt_key == "wipe_tower_no_sparse_layers"
|
|| opt_key == "wipe_tower_no_sparse_layers"
|
||||||
|| opt_key == "wiping_volumes_matrix"
|
|| opt_key == "wiping_volumes_matrix"
|
||||||
|| opt_key == "parking_pos_retraction"
|
|| opt_key == "parking_pos_retraction"
|
||||||
|
@ -3150,6 +3150,15 @@ void PrintConfigDef::init_fff_params()
|
|||||||
def->min = 0.;
|
def->min = 0.;
|
||||||
def->set_default_value(new ConfigOptionFloat(2.));
|
def->set_default_value(new ConfigOptionFloat(2.));
|
||||||
|
|
||||||
|
def = this->add("wipe_tower_extra_spacing", coPercent);
|
||||||
|
def->label = L("Wipe tower purge lines spacing");
|
||||||
|
def->tooltip = L("Spacing of purge lines on the wipe tower.");
|
||||||
|
def->sidetext = L("%");
|
||||||
|
def->mode = comExpert;
|
||||||
|
def->min = 100.;
|
||||||
|
def->max = 200.;
|
||||||
|
def->set_default_value(new ConfigOptionPercent(100.));
|
||||||
|
|
||||||
def = this->add("wipe_into_infill", coBool);
|
def = this->add("wipe_into_infill", coBool);
|
||||||
def->category = L("Wipe options");
|
def->category = L("Wipe options");
|
||||||
def->label = L("Wipe into this object's infill");
|
def->label = L("Wipe into this object's infill");
|
||||||
|
@ -823,6 +823,7 @@ PRINT_CONFIG_CLASS_DERIVED_DEFINE(
|
|||||||
((ConfigOptionFloat, wipe_tower_per_color_wipe))
|
((ConfigOptionFloat, wipe_tower_per_color_wipe))
|
||||||
((ConfigOptionFloat, wipe_tower_rotation_angle))
|
((ConfigOptionFloat, wipe_tower_rotation_angle))
|
||||||
((ConfigOptionFloat, wipe_tower_brim_width))
|
((ConfigOptionFloat, wipe_tower_brim_width))
|
||||||
|
((ConfigOptionPercent, wipe_tower_extra_spacing))
|
||||||
((ConfigOptionFloat, wipe_tower_bridging))
|
((ConfigOptionFloat, wipe_tower_bridging))
|
||||||
((ConfigOptionFloats, wiping_volumes_matrix))
|
((ConfigOptionFloats, wiping_volumes_matrix))
|
||||||
((ConfigOptionFloats, wiping_volumes_extruders))
|
((ConfigOptionFloats, wiping_volumes_extruders))
|
||||||
|
@ -320,7 +320,7 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig* config)
|
|||||||
|
|
||||||
bool have_wipe_tower = config->opt_bool("wipe_tower");
|
bool have_wipe_tower = config->opt_bool("wipe_tower");
|
||||||
for (auto el : { "wipe_tower_x", "wipe_tower_y", "wipe_tower_width", "wipe_tower_rotation_angle", "wipe_tower_brim_width",
|
for (auto el : { "wipe_tower_x", "wipe_tower_y", "wipe_tower_width", "wipe_tower_rotation_angle", "wipe_tower_brim_width",
|
||||||
"wipe_tower_bridging", "wipe_tower_no_sparse_layers", "single_extruder_multi_material_priming" })
|
"wipe_tower_extra_spacing", "wipe_tower_bridging", "wipe_tower_no_sparse_layers", "single_extruder_multi_material_priming" })
|
||||||
toggle_field(el, have_wipe_tower);
|
toggle_field(el, have_wipe_tower);
|
||||||
|
|
||||||
toggle_field("avoid_crossing_curled_overhangs", !config->opt_bool("avoid_crossing_perimeters"));
|
toggle_field("avoid_crossing_curled_overhangs", !config->opt_bool("avoid_crossing_perimeters"));
|
||||||
|
@ -2016,7 +2016,7 @@ Plater::priv::priv(Plater *q, MainFrame *main_frame)
|
|||||||
, config(Slic3r::DynamicPrintConfig::new_from_defaults_keys({
|
, config(Slic3r::DynamicPrintConfig::new_from_defaults_keys({
|
||||||
"bed_shape", "bed_custom_texture", "bed_custom_model", "complete_objects", "duplicate_distance", "extruder_clearance_radius", "skirts", "skirt_distance",
|
"bed_shape", "bed_custom_texture", "bed_custom_model", "complete_objects", "duplicate_distance", "extruder_clearance_radius", "skirts", "skirt_distance",
|
||||||
"brim_width", "brim_separation", "brim_type", "variable_layer_height", "nozzle_diameter", "single_extruder_multi_material",
|
"brim_width", "brim_separation", "brim_type", "variable_layer_height", "nozzle_diameter", "single_extruder_multi_material",
|
||||||
"wipe_tower", "wipe_tower_x", "wipe_tower_y", "wipe_tower_width", "wipe_tower_rotation_angle", "wipe_tower_brim_width",
|
"wipe_tower", "wipe_tower_x", "wipe_tower_y", "wipe_tower_width", "wipe_tower_rotation_angle", "wipe_tower_brim_width", "wipe_tower_extra_spacing",
|
||||||
"extruder_colour", "filament_colour", "material_colour", "max_print_height", "printer_model", "printer_technology",
|
"extruder_colour", "filament_colour", "material_colour", "max_print_height", "printer_model", "printer_technology",
|
||||||
// These values are necessary to construct SlicingParameters by the Canvas3D variable layer height editor.
|
// These values are necessary to construct SlicingParameters by the Canvas3D variable layer height editor.
|
||||||
"layer_height", "first_layer_height", "min_layer_height", "max_layer_height",
|
"layer_height", "first_layer_height", "min_layer_height", "max_layer_height",
|
||||||
|
@ -1602,6 +1602,7 @@ void TabPrint::build()
|
|||||||
optgroup->append_single_option_line("wipe_tower_rotation_angle");
|
optgroup->append_single_option_line("wipe_tower_rotation_angle");
|
||||||
optgroup->append_single_option_line("wipe_tower_brim_width");
|
optgroup->append_single_option_line("wipe_tower_brim_width");
|
||||||
optgroup->append_single_option_line("wipe_tower_bridging");
|
optgroup->append_single_option_line("wipe_tower_bridging");
|
||||||
|
optgroup->append_single_option_line("wipe_tower_extra_spacing");
|
||||||
optgroup->append_single_option_line("wipe_tower_no_sparse_layers");
|
optgroup->append_single_option_line("wipe_tower_no_sparse_layers");
|
||||||
optgroup->append_single_option_line("single_extruder_multi_material_priming");
|
optgroup->append_single_option_line("single_extruder_multi_material_priming");
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user