mirror of
https://git.mirrors.martin98.com/https://github.com/slic3r/Slic3r.git
synced 2025-08-15 18:26:01 +08:00
#192 make percentage value-only percent-only like for infill ratio.
note: added some code to migrate automatically from float (0.9) to percent (90%). The reverse should not be a problem. fields: bridge_flow_ratio over_bridge_flow_ratio bridge_overlap fill_top_flow_ratio first_layer_flow_ratio
This commit is contained in:
parent
e28213b6eb
commit
a6b055b484
@ -30,7 +30,7 @@ default_materials = Generic PLA @BIBO2; Generic PETG @BIBO2; Generic ABS @BIBO2;
|
||||
avoid_crossing_perimeters = 0
|
||||
bottom_fill_pattern = rectilinear
|
||||
bridge_angle = 0
|
||||
bridge_flow_ratio = 0.95
|
||||
bridge_flow_ratio = 95%
|
||||
bridge_speed = 25
|
||||
brim_width = 0
|
||||
clip_multipart_objects = 1
|
||||
@ -125,7 +125,7 @@ xy_size_compensation = 0
|
||||
inherits = *common*
|
||||
bottom_solid_layers = 10
|
||||
bridge_acceleration = 300
|
||||
bridge_flow_ratio = 0.7
|
||||
bridge_flow_ratio = 70%
|
||||
default_acceleration = 500
|
||||
external_perimeter_speed = 20
|
||||
fill_density = 20%
|
||||
@ -150,7 +150,7 @@ top_solid_layers = 15
|
||||
inherits = *common*
|
||||
bottom_solid_layers = 8
|
||||
bridge_acceleration = 300
|
||||
bridge_flow_ratio = 0.7
|
||||
bridge_flow_ratio = 70%
|
||||
bridge_speed = 20
|
||||
default_acceleration = 1000
|
||||
external_perimeter_speed = 20
|
||||
@ -175,7 +175,7 @@ top_solid_layers = 11
|
||||
[print:*0.10mm*]
|
||||
inherits = *common*
|
||||
bottom_solid_layers = 7
|
||||
bridge_flow_ratio = 0.7
|
||||
bridge_flow_ratio = 70%
|
||||
layer_height = 0.1
|
||||
perimeter_acceleration = 800
|
||||
top_solid_layers = 9
|
||||
@ -241,7 +241,7 @@ top_solid_layers = 4
|
||||
[print:*0.30mm*]
|
||||
inherits = *common*
|
||||
bottom_solid_layers = 4
|
||||
bridge_flow_ratio = 0.95
|
||||
bridge_flow_ratio = 95%
|
||||
external_perimeter_speed = 40
|
||||
infill_acceleration = 1100
|
||||
infill_speed = 60
|
||||
|
@ -406,7 +406,7 @@ inherits = *common*
|
||||
bottom_solid_layers = 7
|
||||
top_solid_layers = 9
|
||||
layer_height = 0.08
|
||||
bridge_flow_ratio = 0.7
|
||||
bridge_flow_ratio = 70%
|
||||
perimeter_acceleration = 400
|
||||
|
||||
[print:*0.16mm*]
|
||||
@ -414,7 +414,7 @@ inherits = *common*
|
||||
bottom_solid_layers = 5
|
||||
top_solid_layers = 6
|
||||
layer_height = 0.16
|
||||
bridge_flow_ratio = 0.9
|
||||
bridge_flow_ratio = 90%
|
||||
|
||||
|
||||
[print:*0.24mm*]
|
||||
@ -422,21 +422,21 @@ inherits = *common*
|
||||
bottom_solid_layers = 4
|
||||
top_solid_layers = 5
|
||||
layer_height = 0.24
|
||||
bridge_flow_ratio = 0.9
|
||||
bridge_flow_ratio = 90%
|
||||
|
||||
[print:*0.32mm*]
|
||||
inherits = *common*
|
||||
bottom_solid_layers = 3
|
||||
top_solid_layers = 4
|
||||
layer_height = 0.32
|
||||
bridge_flow_ratio = 0.9
|
||||
bridge_flow_ratio = 90%
|
||||
|
||||
[print:*0.48mm*]
|
||||
inherits = *common*
|
||||
bottom_solid_layers = 2
|
||||
top_solid_layers = 3
|
||||
layer_height = 0.48
|
||||
bridge_flow_ratio = 0.9
|
||||
bridge_flow_ratio = 90%
|
||||
|
||||
|
||||
[print:*0.05mm*]
|
||||
|
@ -286,8 +286,8 @@ inherits = *CR-10S5*; *0.8nozzle*
|
||||
avoid_crossing_perimeters = 0
|
||||
bridge_acceleration = 1000
|
||||
bridge_angle = 0
|
||||
bridge_flow_ratio = 0.8
|
||||
over_bridge_flow_ratio = 1.1
|
||||
bridge_flow_ratio = 80%
|
||||
over_bridge_flow_ratio = 110%
|
||||
fill_top_flow_ratio = 100%
|
||||
bottom_fill_pattern = rectilineargapfill
|
||||
bridge_speed = 20
|
||||
@ -445,7 +445,7 @@ inherits = *common*
|
||||
bottom_solid_layers = 7
|
||||
top_solid_layers = 9
|
||||
layer_height = 0.08
|
||||
bridge_flow_ratio = 0.7
|
||||
bridge_flow_ratio = 70%
|
||||
perimeter_acceleration = 400
|
||||
|
||||
[print:*0.16mm*]
|
||||
@ -453,7 +453,7 @@ inherits = *common*
|
||||
bottom_solid_layers = 5
|
||||
top_solid_layers = 6
|
||||
layer_height = 0.16
|
||||
bridge_flow_ratio = 0.8
|
||||
bridge_flow_ratio = 80%
|
||||
|
||||
|
||||
[print:*0.24mm*]
|
||||
@ -461,21 +461,21 @@ inherits = *common*
|
||||
bottom_solid_layers = 4
|
||||
top_solid_layers = 5
|
||||
layer_height = 0.24
|
||||
bridge_flow_ratio = 0.9
|
||||
bridge_flow_ratio = 90%
|
||||
|
||||
[print:*0.32mm*]
|
||||
inherits = *common*
|
||||
bottom_solid_layers = 3
|
||||
top_solid_layers = 4
|
||||
layer_height = 0.32
|
||||
bridge_flow_ratio = 0.9
|
||||
bridge_flow_ratio = 90%
|
||||
|
||||
[print:*0.48mm*]
|
||||
inherits = *common*
|
||||
bottom_solid_layers = 2
|
||||
top_solid_layers = 3
|
||||
layer_height = 0.48
|
||||
bridge_flow_ratio = 0.9
|
||||
bridge_flow_ratio = 90%
|
||||
|
||||
[print:0.08mm DETAIL 0.2 nozzle]
|
||||
inherits = *0.08mm*; *0.2nozzle*
|
||||
|
@ -26,7 +26,7 @@ bottom_fill_pattern = rectilinear
|
||||
bottom_solid_layers = 3
|
||||
bridge_acceleration = 500
|
||||
bridge_angle = 0
|
||||
bridge_flow_ratio = 1
|
||||
bridge_flow_ratio = 100%
|
||||
bridge_speed = 30
|
||||
brim_width = 0
|
||||
clip_multipart_objects = 0
|
||||
|
@ -377,7 +377,7 @@ perimeter_extrusion_width = 0.65
|
||||
solid_infill_extrusion_width = 0.65
|
||||
top_infill_extrusion_width = 0.6
|
||||
support_material_extrusion_width = 0.55
|
||||
bridge_flow_ratio = 0.95
|
||||
bridge_flow_ratio = 95%
|
||||
bridge_speed = 25
|
||||
support_material_contact_distance = 0.15
|
||||
support_material_xy_spacing = 80%
|
||||
@ -392,7 +392,7 @@ perimeter_extrusion_width = 0.65
|
||||
solid_infill_extrusion_width = 0.68
|
||||
top_infill_extrusion_width = 0.6
|
||||
support_material_extrusion_width = 0.55
|
||||
bridge_flow_ratio = 0.95
|
||||
bridge_flow_ratio = 95%
|
||||
bridge_speed = 25
|
||||
support_material_contact_distance = 0.15
|
||||
support_material_xy_spacing = 80%
|
||||
@ -432,7 +432,7 @@ support_material_interface_speed = 80%
|
||||
inherits = *common*
|
||||
bottom_solid_layers = 10
|
||||
bridge_acceleration = 300
|
||||
bridge_flow_ratio = 0.7
|
||||
bridge_flow_ratio = 70%
|
||||
default_acceleration = 1000
|
||||
external_perimeter_speed = 20
|
||||
fill_density = 20%
|
||||
@ -497,7 +497,7 @@ fill_density = 20%
|
||||
inherits = *common*
|
||||
bottom_solid_layers = 8
|
||||
bridge_acceleration = 300
|
||||
bridge_flow_ratio = 0.7
|
||||
bridge_flow_ratio = 70%
|
||||
bridge_speed = 20
|
||||
default_acceleration = 1000
|
||||
external_perimeter_speed = 20
|
||||
@ -546,7 +546,7 @@ fill_density = 20%
|
||||
[print:*0.10mm*]
|
||||
inherits = *common*
|
||||
bottom_solid_layers = 7
|
||||
bridge_flow_ratio = 0.7
|
||||
bridge_flow_ratio = 70%
|
||||
compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.4 and num_extruders==1
|
||||
layer_height = 0.1
|
||||
perimeter_acceleration = 800
|
||||
@ -623,7 +623,7 @@ top_solid_layers = 7
|
||||
# MK2 #
|
||||
[print:0.15mm 100mms Linear Advance]
|
||||
inherits = *0.15mm*
|
||||
bridge_flow_ratio = 0.95
|
||||
bridge_flow_ratio = 95%
|
||||
compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2[^\.].*/ and nozzle_diameter[0]==0.4
|
||||
external_perimeter_speed = 50
|
||||
infill_speed = 100
|
||||
@ -646,7 +646,7 @@ top_infill_extrusion_width = 0.45
|
||||
inherits = *0.15mm*; *0.25nozzle*
|
||||
# alias = 0.15mm OPTIMAL
|
||||
bridge_acceleration = 600
|
||||
bridge_flow_ratio = 0.7
|
||||
bridge_flow_ratio = 70%
|
||||
compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2.*/ and nozzle_diameter[0]==0.25
|
||||
external_perimeter_speed = 20
|
||||
infill_acceleration = 1000
|
||||
@ -764,7 +764,7 @@ top_solid_infill_speed = 45
|
||||
[print:*0.20mm*]
|
||||
inherits = *common*
|
||||
bottom_solid_layers = 4
|
||||
bridge_flow_ratio = 0.95
|
||||
bridge_flow_ratio = 95%
|
||||
external_perimeter_speed = 40
|
||||
infill_acceleration = 2000
|
||||
infill_speed = 60
|
||||
@ -890,7 +890,7 @@ top_solid_infill_speed = 45
|
||||
[print:*0.25mm*]
|
||||
inherits = *common*
|
||||
bottom_solid_layers = 4
|
||||
bridge_flow_ratio = 0.95
|
||||
bridge_flow_ratio = 95%
|
||||
external_perimeter_speed = 40
|
||||
perimeter_acceleration = 800
|
||||
layer_height = 0.25
|
||||
@ -904,7 +904,7 @@ top_solid_layers = 4
|
||||
[print:*0.30mm*]
|
||||
inherits = *common*
|
||||
bottom_solid_layers = 4
|
||||
bridge_flow_ratio = 0.95
|
||||
bridge_flow_ratio = 95%
|
||||
external_perimeter_speed = 40
|
||||
infill_acceleration = 2000
|
||||
infill_speed = 60
|
||||
@ -998,7 +998,7 @@ top_solid_layers = 4
|
||||
# MK2 #
|
||||
[print:0.35mm FAST]
|
||||
inherits = *0.35mm*
|
||||
bridge_flow_ratio = 0.95
|
||||
bridge_flow_ratio = 95%
|
||||
compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK2[^\.].*/ and nozzle_diameter[0]==0.4
|
||||
first_layer_extrusion_width = 0.42
|
||||
perimeter_extrusion_width = 0.43
|
||||
@ -1245,7 +1245,7 @@ solid_infill_speed = 80
|
||||
top_solid_infill_speed = 40
|
||||
fill_pattern = gyroid
|
||||
fill_density = 15%
|
||||
bridge_flow_ratio = 0.85
|
||||
bridge_flow_ratio = 85%
|
||||
support_material_xy_spacing = 60%
|
||||
|
||||
[print:0.15mm SPEED @MINI]
|
||||
@ -1258,7 +1258,7 @@ external_perimeter_speed = 40
|
||||
infill_speed = 140
|
||||
solid_infill_speed = 140
|
||||
top_solid_infill_speed = 40
|
||||
bridge_flow_ratio = 0.85
|
||||
bridge_flow_ratio = 85%
|
||||
support_material_xy_spacing = 60%
|
||||
|
||||
[print:0.20mm QUALITY @MINI]
|
||||
|
@ -123,7 +123,7 @@ enum ConfigOptionType {
|
||||
coString = 3,
|
||||
// vector of strings
|
||||
coStrings = coString + coVectorType,
|
||||
// percent value. Currently only used for infill.
|
||||
// percent value. Currently only used for infill & flow ratio.
|
||||
coPercent = 4,
|
||||
// percents value. Currently used for retract before wipe only.
|
||||
coPercents = coPercent + coVectorType,
|
||||
|
@ -247,38 +247,43 @@ void PrintConfigDef::init_fff_params()
|
||||
def->mode = comAdvanced;
|
||||
def->set_default_value(new ConfigOptionInts{ 100 });
|
||||
|
||||
def = this->add("bridge_flow_ratio", coFloatOrPercent);
|
||||
def = this->add("bridge_flow_ratio", coPercent);
|
||||
def->label = L("Bridge");
|
||||
def->full_label = L("Bridge flow ratio");
|
||||
def->sidetext = L("%");
|
||||
def->category = OptionCategory::width;
|
||||
def->tooltip = L("This factor affects the amount of plastic for bridging. "
|
||||
"You can decrease it slightly to pull the extrudates and prevent sagging, "
|
||||
"although default settings are usually good and you should experiment "
|
||||
"with cooling (use a fan) before tweaking this.");
|
||||
def->min = 0;
|
||||
def->max = 2;
|
||||
def->min = 1;
|
||||
def->max = 200;
|
||||
def->mode = comAdvanced;
|
||||
def->set_default_value(new ConfigOptionFloatOrPercent(100, true));
|
||||
def->set_default_value(new ConfigOptionPercent(100));
|
||||
|
||||
def = this->add("over_bridge_flow_ratio", coFloatOrPercent);
|
||||
def = this->add("over_bridge_flow_ratio", coPercent);
|
||||
def->label = L("Above the bridges");
|
||||
def->full_label = L("Above bridge flow ratio");
|
||||
def->sidetext = L("%");
|
||||
def->category = OptionCategory::width;
|
||||
def->tooltip = L("Flow ratio to compensate for the gaps in a bridged top surface. Used for ironing infill"
|
||||
"pattern to prevent regions where the low-flow pass does not provide a smooth surface due to a lack of plastic."
|
||||
" You can increase it slightly to pull the top layer at the correct height. Recommended maximum: 120%.");
|
||||
def->min = 0;
|
||||
def->min = 1;
|
||||
def->max = 200;
|
||||
def->mode = comAdvanced;
|
||||
def->set_default_value(new ConfigOptionFloatOrPercent(100, true));
|
||||
def->set_default_value(new ConfigOptionPercent(100));
|
||||
|
||||
def = this->add("bridge_overlap", coFloatOrPercent);
|
||||
def = this->add("bridge_overlap", coPercent);
|
||||
def->label = L("Bridge overlap");
|
||||
def->full_label = L("Bridge overlap");
|
||||
def->sidetext = L("%");
|
||||
def->category = OptionCategory::width;
|
||||
def->tooltip = L("Amount of overlap between lines of the bridge. If your bridge flow ratio is low, it may be useful to increaase this setting to let lines touch each other. Default to 100%. A value of 200% will create two times more lines.");
|
||||
def->min = 0;
|
||||
def->min = 50;
|
||||
def->max = 200;
|
||||
def->mode = comAdvanced;
|
||||
def->set_default_value(new ConfigOptionFloatOrPercent(105, true));
|
||||
def->set_default_value(new ConfigOptionPercent(100));
|
||||
|
||||
def = this->add("bridge_speed", coFloat);
|
||||
def->label = L("Bridges");
|
||||
@ -1252,23 +1257,25 @@ void PrintConfigDef::init_fff_params()
|
||||
def->enum_labels.push_back(L("Scattered Rectilinear"));
|
||||
def->set_default_value( new ConfigOptionEnum<InfillPattern>(ipStars));
|
||||
|
||||
def = this->add("fill_top_flow_ratio", coFloatOrPercent);
|
||||
def = this->add("fill_top_flow_ratio", coPercent);
|
||||
def->label = L("Top fill");
|
||||
def->full_label = L("Top fill flow ratio");
|
||||
def->sidetext = L("%");
|
||||
def->category = OptionCategory::width;
|
||||
def->tooltip = L("You can increase this to over-extrude on the top layer if there are not enough plastic to make a good fill.");
|
||||
def->min = 0;
|
||||
def->mode = comExpert;
|
||||
def->set_default_value(new ConfigOptionFloatOrPercent(100, true));
|
||||
def->set_default_value(new ConfigOptionPercent(100));
|
||||
|
||||
def = this->add("first_layer_flow_ratio", coFloatOrPercent);
|
||||
def = this->add("first_layer_flow_ratio", coPercent);
|
||||
def->label = L("First layer");
|
||||
def->full_label = L("First layer flow ratio");
|
||||
def->sidetext = L("%");
|
||||
def->category = OptionCategory::width;
|
||||
def->tooltip = L("You can increase this to over-extrude on the first layer if there are not enough plastic because your bed isn't levelled.");
|
||||
def->min = 0;
|
||||
def->mode = comExpert;
|
||||
def->set_default_value(new ConfigOptionFloatOrPercent(100, true));
|
||||
def->set_default_value(new ConfigOptionPercent(100));
|
||||
|
||||
def = this->add("fill_smooth_width", coFloatOrPercent);
|
||||
def->label = L("width");
|
||||
|
@ -562,9 +562,10 @@ class PrintRegionConfig : public StaticPrintConfig
|
||||
public:
|
||||
ConfigOptionFloat bridge_angle;
|
||||
ConfigOptionInt bottom_solid_layers;
|
||||
ConfigOptionFloat bottom_solid_min_thickness; ConfigOptionFloatOrPercent bridge_flow_ratio;
|
||||
ConfigOptionFloatOrPercent over_bridge_flow_ratio;
|
||||
ConfigOptionFloatOrPercent bridge_overlap;
|
||||
ConfigOptionFloat bottom_solid_min_thickness;
|
||||
ConfigOptionPercent bridge_flow_ratio;
|
||||
ConfigOptionPercent over_bridge_flow_ratio;
|
||||
ConfigOptionPercent bridge_overlap;
|
||||
ConfigOptionEnum<InfillPattern> bottom_fill_pattern;
|
||||
ConfigOptionFloatOrPercent bridged_infill_margin;
|
||||
ConfigOptionFloat bridge_speed;
|
||||
@ -587,7 +588,7 @@ public:
|
||||
ConfigOptionFloat fill_angle;
|
||||
ConfigOptionPercent fill_density;
|
||||
ConfigOptionEnum<InfillPattern> fill_pattern;
|
||||
ConfigOptionFloatOrPercent fill_top_flow_ratio;
|
||||
ConfigOptionPercent fill_top_flow_ratio;
|
||||
ConfigOptionFloatOrPercent fill_smooth_distribution;
|
||||
ConfigOptionFloatOrPercent fill_smooth_width;
|
||||
ConfigOptionBool gap_fill;
|
||||
@ -979,7 +980,7 @@ public:
|
||||
ConfigOptionFloat first_layer_acceleration;
|
||||
ConfigOptionInts first_layer_bed_temperature;
|
||||
ConfigOptionFloatOrPercent first_layer_extrusion_width;
|
||||
ConfigOptionFloatOrPercent first_layer_flow_ratio;
|
||||
ConfigOptionPercent first_layer_flow_ratio;
|
||||
ConfigOptionFloatOrPercent first_layer_speed;
|
||||
ConfigOptionFloatOrPercent first_layer_infill_speed;
|
||||
ConfigOptionInts first_layer_temperature;
|
||||
|
@ -155,6 +155,59 @@ void ConfigManipulation::update_print_fff_config(DynamicPrintConfig* config, con
|
||||
apply(config, &new_conf);
|
||||
}
|
||||
|
||||
// check forgotten '%'
|
||||
{
|
||||
struct optDescr {
|
||||
ConfigOptionFloatOrPercent* opt;
|
||||
std::string name;
|
||||
float min;
|
||||
float max;
|
||||
};
|
||||
float diameter = 0.4f;
|
||||
if (config->option<ConfigOptionFloatOrPercent>("extrusion_width")->percent) {
|
||||
//has to be percent
|
||||
diameter = 0;
|
||||
}
|
||||
else {
|
||||
diameter = config->option<ConfigOptionFloatOrPercent>("extrusion_width")->value;
|
||||
}
|
||||
std::vector<optDescr> opts;
|
||||
opts.push_back({ config->option<ConfigOptionFloatOrPercent>("infill_overlap"), "infill_overlap", 0, diameter * 10 });
|
||||
for (int i = 0; i < opts.size(); i++) {
|
||||
if ( (!opts[i].opt->percent) && (opts[i].opt->get_abs_value(diameter) < opts[i].min || opts[i].opt->get_abs_value(diameter) > opts[i].max) ) {
|
||||
wxString msg_text = _(L("Did you forgot to put a '%' in the "+opts[i].name+" field? "
|
||||
"it's currently set to "+std::to_string(opts[i].opt->get_abs_value(diameter)) + " mm."));
|
||||
if (is_global_config)
|
||||
msg_text += "\n\n" + _(L("Shall I add the '%'?"));
|
||||
wxMessageDialog dialog(nullptr, msg_text, _(L("Wipe Tower")),
|
||||
wxICON_WARNING | (is_global_config ? wxYES | wxNO : wxOK));
|
||||
DynamicPrintConfig new_conf = *config;
|
||||
auto answer = dialog.ShowModal();
|
||||
if (!is_global_config || answer == wxID_YES) {
|
||||
new_conf.set_key_value(opts[i].name, new ConfigOptionFloatOrPercent(opts[i].opt->value*100, true));
|
||||
apply(config, &new_conf);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// check changes from FloatOrPercent to percent (useful to migrate cofnig from prusa to slic3r++)
|
||||
{
|
||||
std::vector<std::string> names;
|
||||
names.push_back("bridge_flow_ratio");
|
||||
names.push_back("over_bridge_flow_ratio");
|
||||
names.push_back("bridge_overlap");
|
||||
names.push_back("fill_top_flow_ratio");
|
||||
names.push_back("first_layer_flow_ratio");
|
||||
for (int i = 0; i < names.size(); i++) {
|
||||
if (config->option<ConfigOptionPercent>(names[i])->value <= 2) {
|
||||
DynamicPrintConfig new_conf = *config;
|
||||
new_conf.set_key_value(names[i], new ConfigOptionPercent(config->option<ConfigOptionPercent>(names[i])->value * 100));
|
||||
apply(config, &new_conf);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static bool support_material_overhangs_queried = false;
|
||||
|
||||
if (config->opt_bool("support_material")) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user