ENH: add seam parameters and increase wall loops
Signed-off-by: qing.zhang <qing.zhang@bambulab.com> Change-Id: Id5c6cd6e97493f8912ce1857aed56eecace66cee
This commit is contained in:
parent
8905121af5
commit
4f4516357f
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Bambulab",
|
"name": "Bambulab",
|
||||||
"url": "http://www.bambulab.com/Parameters/vendor/BBL.json",
|
"url": "http://www.bambulab.com/Parameters/vendor/BBL.json",
|
||||||
"version": "01.06.00.11",
|
"version": "01.06.00.12",
|
||||||
"force_update": "0",
|
"force_update": "0",
|
||||||
"description": "the initial version of BBL configurations",
|
"description": "the initial version of BBL configurations",
|
||||||
"machine_model_list": [
|
"machine_model_list": [
|
||||||
|
|
|
@ -56,7 +56,7 @@
|
||||||
"only_one_wall_top": "1",
|
"only_one_wall_top": "1",
|
||||||
"inner_wall_line_width": "0.45",
|
"inner_wall_line_width": "0.45",
|
||||||
"inner_wall_speed": "150",
|
"inner_wall_speed": "150",
|
||||||
"wall_loops": "2",
|
"wall_loops": "3",
|
||||||
"print_settings_id": "",
|
"print_settings_id": "",
|
||||||
"raft_layers": "0",
|
"raft_layers": "0",
|
||||||
"seam_position": "aligned",
|
"seam_position": "aligned",
|
||||||
|
|
|
@ -292,7 +292,8 @@ static std::vector<Vec2d> get_path_of_change_filament(const Print& print)
|
||||||
|
|
||||||
/* Reduce feedrate a bit; travel speed is often too high to move on existing material.
|
/* Reduce feedrate a bit; travel speed is often too high to move on existing material.
|
||||||
Too fast = ripping of existing material; too slow = short wipe path, thus more blob. */
|
Too fast = ripping of existing material; too slow = short wipe path, thus more blob. */
|
||||||
double wipe_speed = gcodegen.writer().config.travel_speed.value * 0.8;
|
//softFever
|
||||||
|
double wipe_speed = gcodegen.writer().config.travel_speed.value * gcodegen.config().wipe_speed.value / 100;
|
||||||
|
|
||||||
// get the retraction length
|
// get the retraction length
|
||||||
double length = toolchange
|
double length = toolchange
|
||||||
|
@ -3434,7 +3435,7 @@ std::string GCode::extrude_loop(ExtrusionLoop loop, std::string description, dou
|
||||||
// if polyline was shorter than the clipping distance we'd get a null polyline, so
|
// if polyline was shorter than the clipping distance we'd get a null polyline, so
|
||||||
// we discard it in that case
|
// we discard it in that case
|
||||||
double clip_length = m_enable_loop_clipping ?
|
double clip_length = m_enable_loop_clipping ?
|
||||||
scale_(EXTRUDER_CONFIG(nozzle_diameter)) * LOOP_CLIPPING_LENGTH_OVER_NOZZLE_DIAMETER :
|
scale_(EXTRUDER_CONFIG(nozzle_diameter)) * m_config.seam_gap.value :
|
||||||
0;
|
0;
|
||||||
|
|
||||||
// get paths
|
// get paths
|
||||||
|
|
|
@ -758,6 +758,7 @@ static std::vector<std::string> s_Preset_print_options {
|
||||||
"timelapse_type", "internal_bridge_support_thickness",
|
"timelapse_type", "internal_bridge_support_thickness",
|
||||||
"wall_generator", "wall_transition_length", "wall_transition_filter_deviation", "wall_transition_angle",
|
"wall_generator", "wall_transition_length", "wall_transition_filter_deviation", "wall_transition_angle",
|
||||||
"wall_distribution_count", "min_feature_size", "min_bead_width", "post_process",
|
"wall_distribution_count", "min_feature_size", "min_bead_width", "post_process",
|
||||||
|
"seam_gap", "wipe_speed",
|
||||||
// calib
|
// calib
|
||||||
"print_flow_ratio"
|
"print_flow_ratio"
|
||||||
};
|
};
|
||||||
|
|
|
@ -144,7 +144,10 @@ bool Print::invalidate_state_by_config_options(const ConfigOptionResolver & /* n
|
||||||
"chamber_temperature",
|
"chamber_temperature",
|
||||||
"nozzle_hrc",
|
"nozzle_hrc",
|
||||||
"required_nozzle_HRC",
|
"required_nozzle_HRC",
|
||||||
"upward_compatible_machine"
|
"upward_compatible_machine",
|
||||||
|
//SoftFever
|
||||||
|
"seam_gap",
|
||||||
|
"wipe_speed"
|
||||||
};
|
};
|
||||||
|
|
||||||
static std::unordered_set<std::string> steps_ignore;
|
static std::unordered_set<std::string> steps_ignore;
|
||||||
|
|
|
@ -2333,6 +2333,22 @@ void PrintConfigDef::init_fff_params()
|
||||||
def->mode = comSimple;
|
def->mode = comSimple;
|
||||||
def->set_default_value(new ConfigOptionEnum<SeamPosition>(spAligned));
|
def->set_default_value(new ConfigOptionEnum<SeamPosition>(spAligned));
|
||||||
|
|
||||||
|
def = this->add("seam_gap", coFloat);
|
||||||
|
def->label = L("Seam gap");
|
||||||
|
def->tooltip = L("In order to reduce the visibility of the seam in a closed loop extrusion, the loop is interrupted and shortened by a specified amount.\n" "This amount can be specified in millimeters or as a percentage of the current extruder diameter. The default value for this parameter is 0.15");
|
||||||
|
def->sidetext = L("mm");
|
||||||
|
def->min = 0;
|
||||||
|
def->mode = comDevelop;
|
||||||
|
def->set_default_value(new ConfigOptionFloat(0.15));
|
||||||
|
|
||||||
|
def = this->add("wipe_speed", coPercent);
|
||||||
|
def->label = L("Wipe speed");
|
||||||
|
def->tooltip = L("The wipe speed is determined by the speed setting specified in this configuration." "If the value is expressed as a percentage (e.g. 80%), it will be calculated based on the travel speed setting above." "The default value for this parameter is 80%");
|
||||||
|
def->sidetext = L("%");
|
||||||
|
def->min = 0.01;
|
||||||
|
def->mode = comDevelop;
|
||||||
|
def->set_default_value(new ConfigOptionPercent(80));
|
||||||
|
|
||||||
def = this->add("skirt_distance", coFloat);
|
def = this->add("skirt_distance", coFloat);
|
||||||
def->label = L("Skirt distance");
|
def->label = L("Skirt distance");
|
||||||
def->tooltip = L("Distance from skirt to brim or object");
|
def->tooltip = L("Distance from skirt to brim or object");
|
||||||
|
@ -3161,7 +3177,7 @@ void PrintConfigDef::init_fff_params()
|
||||||
def->enum_labels.push_back(L("Classic"));
|
def->enum_labels.push_back(L("Classic"));
|
||||||
def->enum_labels.push_back(L("Arachne"));
|
def->enum_labels.push_back(L("Arachne"));
|
||||||
def->mode = comAdvanced;
|
def->mode = comAdvanced;
|
||||||
def->set_default_value(new ConfigOptionEnum<PerimeterGeneratorType>(PerimeterGeneratorType::Classic));
|
def->set_default_value(new ConfigOptionEnum<PerimeterGeneratorType>(PerimeterGeneratorType::Arachne));
|
||||||
|
|
||||||
def = this->add("wall_transition_length", coPercent);
|
def = this->add("wall_transition_length", coPercent);
|
||||||
def->label = L("Wall transition length");
|
def->label = L("Wall transition length");
|
||||||
|
|
|
@ -700,6 +700,9 @@ PRINT_CONFIG_CLASS_DEFINE(
|
||||||
((ConfigOptionPercent, min_bead_width))
|
((ConfigOptionPercent, min_bead_width))
|
||||||
((ConfigOptionBool, only_one_wall_top))
|
((ConfigOptionBool, only_one_wall_top))
|
||||||
((ConfigOptionBool, only_one_wall_first_layer))
|
((ConfigOptionBool, only_one_wall_first_layer))
|
||||||
|
// SoftFever
|
||||||
|
((ConfigOptionFloat, seam_gap))
|
||||||
|
((ConfigOptionPercent, wipe_speed))
|
||||||
)
|
)
|
||||||
|
|
||||||
// This object is mapped to Perl as Slic3r::Config::PrintRegion.
|
// This object is mapped to Perl as Slic3r::Config::PrintRegion.
|
||||||
|
|
|
@ -892,6 +892,8 @@ bool PrintObject::invalidate_state_by_config_options(
|
||||||
steps.emplace_back(posSlice);
|
steps.emplace_back(posSlice);
|
||||||
} else if (
|
} else if (
|
||||||
opt_key == "seam_position"
|
opt_key == "seam_position"
|
||||||
|
|| opt_key == "seam_gap"
|
||||||
|
|| opt_key == "wipe_speed"
|
||||||
|| opt_key == "support_speed"
|
|| opt_key == "support_speed"
|
||||||
|| opt_key == "support_interface_speed"
|
|| opt_key == "support_interface_speed"
|
||||||
|| opt_key == "overhang_1_4_speed"
|
|| opt_key == "overhang_1_4_speed"
|
||||||
|
|
|
@ -533,7 +533,7 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig *config, co
|
||||||
{
|
{
|
||||||
bool have_perimeters = config->opt_int("wall_loops") > 0;
|
bool have_perimeters = config->opt_int("wall_loops") > 0;
|
||||||
for (auto el : { "ensure_vertical_shell_thickness", "detect_thin_wall", "detect_overhang_wall",
|
for (auto el : { "ensure_vertical_shell_thickness", "detect_thin_wall", "detect_overhang_wall",
|
||||||
"seam_position", "wall_infill_order", "outer_wall_line_width",
|
"seam_position","seam_gap","wipe_speed", "wall_infill_order", "outer_wall_line_width",
|
||||||
"inner_wall_speed", "outer_wall_speed" })
|
"inner_wall_speed", "outer_wall_speed" })
|
||||||
toggle_field(el, have_perimeters);
|
toggle_field(el, have_perimeters);
|
||||||
|
|
||||||
|
|
|
@ -74,9 +74,9 @@ std::map<std::string, std::vector<SimpleSettingData>> SettingsFactory::OBJECT_C
|
||||||
{
|
{
|
||||||
{ L("Quality"), {{"layer_height", "",1},
|
{ L("Quality"), {{"layer_height", "",1},
|
||||||
//{"initial_layer_print_height", "",2},
|
//{"initial_layer_print_height", "",2},
|
||||||
{"seam_position", "",2},
|
{"seam_position", "",2}, {"seam_gap", "",3}, {"wipe_speed", "",4},
|
||||||
{"slice_closing_radius", "",3}, {"resolution", "",4},
|
{"slice_closing_radius", "",5}, {"resolution", "",6},
|
||||||
{"xy_hole_compensation", "",5}, {"xy_contour_compensation", "",6}, {"elefant_foot_compensation", "",7}
|
{"xy_hole_compensation", "",7}, {"xy_contour_compensation", "",8}, {"elefant_foot_compensation", "",9}
|
||||||
}},
|
}},
|
||||||
{ L("Support"), {{"brim_type", "",1},{"brim_width", "",2},{"brim_object_gap", "",3},
|
{ L("Support"), {{"brim_type", "",1},{"brim_width", "",2},{"brim_object_gap", "",3},
|
||||||
{"enable_support", "",4},{"support_type", "",5},{"support_threshold_angle", "",6},{"support_on_build_plate_only", "",7},
|
{"enable_support", "",4},{"support_type", "",5},{"support_threshold_angle", "",6},{"support_on_build_plate_only", "",7},
|
||||||
|
|
|
@ -1848,6 +1848,8 @@ void TabPrint::build()
|
||||||
|
|
||||||
optgroup = page->new_optgroup(L("Seam"), L"param_seam");
|
optgroup = page->new_optgroup(L("Seam"), L"param_seam");
|
||||||
optgroup->append_single_option_line("seam_position", "Seam");
|
optgroup->append_single_option_line("seam_position", "Seam");
|
||||||
|
optgroup->append_single_option_line("seam_gap", "Seam");
|
||||||
|
optgroup->append_single_option_line("wipe_speed", "Seam");
|
||||||
|
|
||||||
optgroup = page->new_optgroup(L("Precision"), L"param_precision");
|
optgroup = page->new_optgroup(L("Precision"), L"param_precision");
|
||||||
optgroup->append_single_option_line("slice_closing_radius");
|
optgroup->append_single_option_line("slice_closing_radius");
|
||||||
|
|
Loading…
Reference in New Issue