Compare commits

...

4 Commits

Author SHA1 Message Date
SoftFever
0a09c7da07 Fix an issue that bed temperature for other layers are not set properly 2022-09-24 11:32:57 +08:00
SoftFever
e978388d00 add Chinese translations 2022-09-24 00:18:29 +08:00
SoftFever
fc96fa3bc0 Allow users to set acceleration for outer/inner walls 2022-09-22 23:46:01 +08:00
SoftFever
6ec5e920e2 allow users to adjust bottom infill flowrate 2022-09-19 16:57:26 +08:00
19 changed files with 109 additions and 8 deletions

View File

@@ -2820,6 +2820,9 @@ msgstr ""
msgid "Click to edit preset"
msgstr ""
msgid "Connection"
msgstr ""
msgid "Bed type"
msgstr ""
@@ -4743,6 +4746,20 @@ msgstr ""
msgid "Bridge flow"
msgstr ""
msgid "Top surface flow ratio"
msgstr ""
msgid "Bottom surface flow ratio"
msgstr ""
msgid "This factor affects the amount of material for bottom solid infill"
msgstr ""
msgid ""
"This factor affects the amount of material for top solid infill. "
"You can decrease it slightly to have smooth surface finish"
msgstr ""
msgid ""
"Decrease this value slightly(for example 0.9) to reduce the amount of "
"material for bridge, to improve sag"
@@ -4751,11 +4768,19 @@ msgstr ""
msgid "Only one wall on top surfaces"
msgstr ""
msgid "Only one wall on first layer"
msgstr ""
msgid ""
"Use only one wall on flat top surface, to give more space to the top infill "
"pattern"
msgstr ""
msgid ""
"Use only one wall on first layer, to give more space to the bottom infill "
"pattern"
msgstr ""
msgid "Slow down for overhang"
msgstr ""

View File

@@ -2894,6 +2894,9 @@ msgstr "材料切换"
msgid "Click to edit preset"
msgstr "点击编辑配置"
msgid "Connection"
msgstr "连接打印机"
msgid "Bed type"
msgstr "热床类型"
@@ -4862,6 +4865,20 @@ msgstr ""
msgid "Bridge flow"
msgstr "桥接流量"
msgid "Top surface flow ratio"
msgstr "顶面流量"
msgid "Bottom surface flow ratio"
msgstr "首层流量"
msgid "This factor affects the amount of material for bottom solid infill"
msgstr "首层流量调整系数默认为1.0"
msgid ""
"This factor affects the amount of material for top solid infill. "
"You can decrease it slightly to have smooth surface finish"
msgstr "稍微减小这个数值比如0.97)可以来改善顶面的光滑程度。"
msgid ""
"Decrease this value slightly(for example 0.9) to reduce the amount of "
"material for bridge, to improve sag"
@@ -4879,7 +4896,7 @@ msgid "Only one wall on top surfaces"
msgstr "顶面单层墙"
msgid ""
"Use only one wall on first layer, to give more space to the bottom infill pattern "
"Use only one wall on first layer, to give more space to the bottom infill "
"pattern"
msgstr "首层只使用单层墙,从而更多的空间能够使用底部填充图案"
@@ -5296,6 +5313,13 @@ msgid ""
"adhensive"
msgstr "首层加速度。使用较低值可以改善和构建板的粘接。"
msgid "Acceleration of outer walls"
msgstr "外墙的加速度。它通常使用比内壁速度慢的加速度,以获得更好的质量。。"
msgid "Acceleration of inner walls"
msgstr "内圈墙加速度。使用较低值可以改善质量。"
msgid "Line width of initial layer"
msgstr "首层的线宽"

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -55,6 +55,16 @@ inline bool is_perimeter(ExtrusionRole role)
|| role == erOverhangPerimeter;
}
inline bool is_internal_perimeter(ExtrusionRole role)
{
return role == erPerimeter;
}
inline bool is_external_perimeter(ExtrusionRole role)
{
return role == erExternalPerimeter;
}
inline bool is_infill(ExtrusionRole role)
{
return role == erBridgeInfill

View File

@@ -2045,7 +2045,7 @@ void GCode::get_bed_temperature(const int extruder_id, const bool is_first_layer
{
temps_per_bed.resize((int)BedType::btCount, 0);
for (int bed_type = 0; bed_type < BedType::btCount; bed_type++) {
std::string bed_temp_key = is_first_layer ? get_bed_temp_key((BedType)bed_type) : get_bed_temp_1st_layer_key((BedType)bed_type);
std::string bed_temp_key = is_first_layer ? get_bed_temp_1st_layer_key((BedType)bed_type) : get_bed_temp_key((BedType)bed_type);
const ConfigOptionInts* bed_temp_opt = m_config.option<ConfigOptionInts>(bed_temp_key);
temps_per_bed[bed_type] = bed_temp_opt->get_at(extruder_id);
@@ -3539,6 +3539,10 @@ std::string GCode::_extrude(const ExtrusionPath &path, std::string description,
} else if (m_config.perimeter_acceleration.value > 0 && is_perimeter(path.role())) {
acceleration = m_config.perimeter_acceleration.value;
#endif
} else if (m_config.outer_wall_acceleration.value > 0 && is_external_perimeter(path.role())) {
acceleration = m_config.outer_wall_acceleration.value;
} else if (m_config.inner_wall_acceleration.value > 0 && is_internal_perimeter(path.role())) {
acceleration = m_config.inner_wall_acceleration.value;
} else if (m_config.top_surface_acceleration.value > 0 && is_top_surface(path.role())) {
acceleration = m_config.top_surface_acceleration.value;
} else {

View File

@@ -658,7 +658,7 @@ static std::vector<std::string> s_Preset_print_options {
"inner_wall_speed", "outer_wall_speed", "sparse_infill_speed", "internal_solid_infill_speed",
"top_surface_speed", "support_speed", "support_object_xy_distance", "support_interface_speed",
"bridge_speed", "gap_infill_speed", "travel_speed", "travel_speed_z", "initial_layer_speed",
"initial_layer_acceleration", "top_surface_acceleration", "default_acceleration", "skirt_loops", "skirt_distance", "skirt_height", "draft_shield",
"outer_wall_acceleration", "inner_wall_acceleration", "initial_layer_acceleration", "top_surface_acceleration", "default_acceleration", "skirt_loops", "skirt_distance", "skirt_height", "draft_shield",
"brim_width", "brim_object_gap", "brim_type", "enable_support", "support_type", "support_threshold_angle", "enforce_support_layers",
"raft_layers", "raft_first_layer_density", "raft_first_layer_expansion", "raft_contact_distance", "raft_expansion",
"support_base_pattern", "support_base_pattern_spacing", "support_style",
@@ -685,7 +685,7 @@ static std::vector<std::string> s_Preset_print_options {
"initial_layer_infill_speed", "only_one_wall_top", "only_one_wall_first_layer",
"timelapse_type",
//SoftFever
"top_solid_infill_flow_ratio"
"top_solid_infill_flow_ratio","bottom_solid_infill_flow_ratio"
};

View File

@@ -90,6 +90,8 @@ bool Print::invalidate_state_by_config_options(const ConfigOptionResolver & /* n
"filament_diameter",
"filament_density",
"filament_cost",
"outer_wall_acceleration",
"inner_wall_acceleration",
"initial_layer_acceleration",
"top_surface_acceleration",
// BBS

View File

@@ -644,11 +644,21 @@ void PrintConfigDef::init_fff_params()
def->label = L("Top surface flow ratio");
def->category = L("Advanced");
def->tooltip = L("This factor affects the amount of material for top solid infill. "
"You can decrease it slightly to have smooth surface finish.");
"You can decrease it slightly to have smooth surface finish");
def->min = 0;
def->max = 2;
def->mode = comAdvanced;
def->set_default_value(new ConfigOptionFloat(1));
def = this->add("bottom_solid_infill_flow_ratio", coFloat);
def->label = L("Bottom surface flow ratio");
def->category = L("Advanced");
def->tooltip = L("This factor affects the amount of material for bottom solid infill");
def->min = 0;
def->max = 2;
def->mode = comAdvanced;
def->set_default_value(new ConfigOptionFloat(1));
def = this->add("only_one_wall_top", coBool);
def->label = L("Only one wall on top surfaces");
@@ -1240,6 +1250,22 @@ void PrintConfigDef::init_fff_params()
#endif // HAS_LIGHTNING_INFILL
def->set_default_value(new ConfigOptionEnum<InfillPattern>(ipCubic));
def = this->add("outer_wall_acceleration", coFloat);
def->label = L("Outer wall");
def->tooltip = L("Acceleration of outer walls");
def->sidetext = L("mm/s²");
def->min = 0;
def->mode = comAdvanced;
def->set_default_value(new ConfigOptionFloat(3000));
def = this->add("inner_wall_acceleration", coFloat);
def->label = L("Inner wall");
def->tooltip = L("Acceleration of inner walls");
def->sidetext = L("mm/s²");
def->min = 0;
def->mode = comAdvanced;
def->set_default_value(new ConfigOptionFloat(7000));
def = this->add("top_surface_acceleration", coFloat);
def->label = L("Top surface");
def->tooltip = L("Acceleration of top surface infill. Using a lower value may improve top surface quality");

View File

@@ -655,6 +655,7 @@ PRINT_CONFIG_CLASS_DEFINE(
((ConfigOptionFloat, bridge_speed))
((ConfigOptionEnum<InfillPattern>, top_surface_pattern))
((ConfigOptionFloat, top_solid_infill_flow_ratio))
((ConfigOptionFloat, bottom_solid_infill_flow_ratio))
((ConfigOptionEnum<InfillPattern>, bottom_surface_pattern))
((ConfigOptionFloat, outer_wall_line_width))
((ConfigOptionFloat, outer_wall_speed))
@@ -825,6 +826,8 @@ PRINT_CONFIG_CLASS_DERIVED_DEFINE(
((ConfigOptionBools, reduce_fan_stop_start_freq))
((ConfigOptionInts, fan_cooling_layer_time))
((ConfigOptionStrings, filament_colour))
((ConfigOptionFloat, outer_wall_acceleration))
((ConfigOptionFloat, inner_wall_acceleration))
((ConfigOptionFloat, top_surface_acceleration))
((ConfigOptionFloat, initial_layer_acceleration))
((ConfigOptionFloat, initial_layer_line_width))

View File

@@ -25,8 +25,12 @@ Flow PrintRegion::flow(const PrintObject &object, FlowRole role, double layer_he
double flow_ratio = 1.0;
// Get extrusion width from configuration.
// (might be an absolute value, or a percent value, or zero for auto)
if (first_layer && print_config.initial_layer_line_width.value > 0) {
config_width = print_config.initial_layer_line_width;
if (first_layer) {
if(role != frExternalPerimeter)
flow_ratio = m_config.bottom_solid_infill_flow_ratio;
if(print_config.initial_layer_line_width.value > 0) {
config_width = print_config.initial_layer_line_width;
}
} else if (role == frExternalPerimeter) {
config_width = m_config.outer_wall_line_width;
} else if (role == frPerimeter) {

View File

@@ -483,7 +483,7 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig *config, co
bool have_default_acceleration = config->opt_float("default_acceleration") > 0;
//BBS
for (auto el : { "initial_layer_acceleration", "top_surface_acceleration" })
for (auto el : { "outer_wall_acceleration", "inner_wall_acceleration", "initial_layer_acceleration", "top_surface_acceleration" })
toggle_field(el, have_default_acceleration);
bool have_skirt = config->opt_int("skirt_loops") > 0;

View File

@@ -1783,6 +1783,7 @@ void TabPrint::build()
optgroup->append_single_option_line("wall_infill_order");
optgroup->append_single_option_line("bridge_flow");
optgroup->append_single_option_line("top_solid_infill_flow_ratio");
optgroup->append_single_option_line("bottom_solid_infill_flow_ratio");
optgroup->append_single_option_line("only_one_wall_top");
optgroup->append_single_option_line("only_one_wall_first_layer");
optgroup->append_single_option_line("detect_overhang_wall");
@@ -1840,6 +1841,8 @@ void TabPrint::build()
optgroup->append_single_option_line("travel_speed");
optgroup = page->new_optgroup(L("Acceleration"), 15);
optgroup->append_single_option_line("outer_wall_acceleration");
optgroup->append_single_option_line("inner_wall_acceleration");
optgroup->append_single_option_line("initial_layer_acceleration");
optgroup->append_single_option_line("top_surface_acceleration");
optgroup->append_single_option_line("default_acceleration");