mirror of
https://git.mirrors.martin98.com/https://github.com/slic3r/Slic3r.git
synced 2025-08-16 19:35:57 +08:00
add "first layer flow" setting, for fuck sake first layer width isn't enough with a cheap printer like an ender3 that can have his bed damaged so easily.
This commit is contained in:
parent
1984df6d49
commit
7f4c9c9a5c
@ -216,6 +216,7 @@ group:Flow
|
|||||||
setting:bridge_flow_ratio
|
setting:bridge_flow_ratio
|
||||||
setting:over_bridge_flow_ratio
|
setting:over_bridge_flow_ratio
|
||||||
setting:fill_top_flow_ratio
|
setting:fill_top_flow_ratio
|
||||||
|
setting:first_layer_flow_ratio
|
||||||
end_line
|
end_line
|
||||||
|
|
||||||
page:Multiple extruders:funnel
|
page:Multiple extruders:funnel
|
||||||
|
@ -3350,6 +3350,7 @@ std::string GCode::_extrude(const ExtrusionPath &path, const std::string &descri
|
|||||||
|
|
||||||
// calculate extrusion length per distance unit
|
// calculate extrusion length per distance unit
|
||||||
double e_per_mm = m_writer.extruder()->e_per_mm3() * path.mm3_per_mm;
|
double e_per_mm = m_writer.extruder()->e_per_mm3() * path.mm3_per_mm;
|
||||||
|
if (this->m_layer_index <= 0) e_per_mm *= this->config().first_layer_flow_ratio.get_abs_value(1);
|
||||||
if (m_writer.extrusion_axis().empty()) e_per_mm = 0;
|
if (m_writer.extrusion_axis().empty()) e_per_mm = 0;
|
||||||
double path_length = 0.;
|
double path_length = 0.;
|
||||||
{
|
{
|
||||||
|
@ -102,6 +102,7 @@ bool Print::invalidate_state_by_config_options(const std::vector<t_config_option
|
|||||||
"filament_cost",
|
"filament_cost",
|
||||||
"first_layer_acceleration",
|
"first_layer_acceleration",
|
||||||
"first_layer_bed_temperature",
|
"first_layer_bed_temperature",
|
||||||
|
"first_layer_flow_ratio",
|
||||||
"first_layer_speed",
|
"first_layer_speed",
|
||||||
"first_layer_infill_speed",
|
"first_layer_infill_speed",
|
||||||
"gcode_comments",
|
"gcode_comments",
|
||||||
|
@ -1244,7 +1244,16 @@ void PrintConfigDef::init_fff_params()
|
|||||||
def->label = L("Top fill");
|
def->label = L("Top fill");
|
||||||
def->full_label = L("Top fill flow ratio");
|
def->full_label = L("Top fill flow ratio");
|
||||||
def->category = OptionCategory::width;
|
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 makle a good fill.");
|
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 = this->add("first_layer_flow_ratio", coFloatOrPercent);
|
||||||
|
def->label = L("First layer");
|
||||||
|
def->full_label = L("First layer flow ratio");
|
||||||
|
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->min = 0;
|
||||||
def->mode = comExpert;
|
def->mode = comExpert;
|
||||||
def->set_default_value(new ConfigOptionFloatOrPercent(100, true));
|
def->set_default_value(new ConfigOptionFloatOrPercent(100, true));
|
||||||
|
@ -1007,6 +1007,7 @@ public:
|
|||||||
ConfigOptionFloat first_layer_acceleration;
|
ConfigOptionFloat first_layer_acceleration;
|
||||||
ConfigOptionInts first_layer_bed_temperature;
|
ConfigOptionInts first_layer_bed_temperature;
|
||||||
ConfigOptionFloatOrPercent first_layer_extrusion_width;
|
ConfigOptionFloatOrPercent first_layer_extrusion_width;
|
||||||
|
ConfigOptionFloatOrPercent first_layer_flow_ratio;
|
||||||
ConfigOptionFloatOrPercent first_layer_speed;
|
ConfigOptionFloatOrPercent first_layer_speed;
|
||||||
ConfigOptionFloatOrPercent first_layer_infill_speed;
|
ConfigOptionFloatOrPercent first_layer_infill_speed;
|
||||||
ConfigOptionInts first_layer_temperature;
|
ConfigOptionInts first_layer_temperature;
|
||||||
@ -1085,6 +1086,7 @@ protected:
|
|||||||
OPT_PTR(first_layer_acceleration);
|
OPT_PTR(first_layer_acceleration);
|
||||||
OPT_PTR(first_layer_bed_temperature);
|
OPT_PTR(first_layer_bed_temperature);
|
||||||
OPT_PTR(first_layer_extrusion_width);
|
OPT_PTR(first_layer_extrusion_width);
|
||||||
|
OPT_PTR(first_layer_flow_ratio);
|
||||||
OPT_PTR(first_layer_speed);
|
OPT_PTR(first_layer_speed);
|
||||||
OPT_PTR(first_layer_infill_speed);
|
OPT_PTR(first_layer_infill_speed);
|
||||||
OPT_PTR(first_layer_temperature);
|
OPT_PTR(first_layer_temperature);
|
||||||
|
@ -452,6 +452,7 @@ const std::vector<std::string>& Preset::print_options()
|
|||||||
"clip_multipart_objects",
|
"clip_multipart_objects",
|
||||||
"over_bridge_flow_ratio",
|
"over_bridge_flow_ratio",
|
||||||
"bridge_overlap",
|
"bridge_overlap",
|
||||||
|
"first_layer_flow_ratio",
|
||||||
"clip_multipart_objects", "enforce_full_fill_volume", "external_infill_margin", "bridged_infill_margin",
|
"clip_multipart_objects", "enforce_full_fill_volume", "external_infill_margin", "bridged_infill_margin",
|
||||||
"elefant_foot_compensation", "xy_size_compensation", "hole_size_compensation",
|
"elefant_foot_compensation", "xy_size_compensation", "hole_size_compensation",
|
||||||
"hole_to_polyhole",
|
"hole_to_polyhole",
|
||||||
|
@ -1746,6 +1746,7 @@ void TabPrint::build()
|
|||||||
line.append_option(optgroup->get_option("bridge_overlap"));
|
line.append_option(optgroup->get_option("bridge_overlap"));
|
||||||
line.append_option(optgroup->get_option("over_bridge_flow_ratio"));
|
line.append_option(optgroup->get_option("over_bridge_flow_ratio"));
|
||||||
line.append_option(optgroup->get_option("fill_top_flow_ratio"));
|
line.append_option(optgroup->get_option("fill_top_flow_ratio"));
|
||||||
|
line.append_option(optgroup->get_option("first_layer_flow_ratio"));
|
||||||
optgroup->append_line(line);
|
optgroup->append_line(line);
|
||||||
|
|
||||||
page = add_options_page(_(L(toString(OptionCategory::extruders))), "funnel");
|
page = add_options_page(_(L(toString(OptionCategory::extruders))), "funnel");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user