mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-08 23:46:24 -06:00
Set flowrate per object
This commit is contained in:
parent
fb0b7f7b54
commit
7e1a2840e5
6 changed files with 27 additions and 2 deletions
|
@ -3689,7 +3689,7 @@ std::string GCode::_extrude(const ExtrusionPath &path, std::string description,
|
|||
}
|
||||
|
||||
// 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 * this->config().print_flow_ratio.get_abs_value(1);
|
||||
|
||||
double min_speed = double(m_config.slow_down_min_speed.get_at(m_writer.extruder()->id()));
|
||||
// set speed
|
||||
|
|
|
@ -748,9 +748,12 @@ static std::vector<std::string> s_Preset_print_options {
|
|||
"timelapse_type", "internal_bridge_support_thickness",
|
||||
"wall_generator", "wall_transition_length", "wall_transition_filter_deviation", "wall_transition_angle",
|
||||
"wall_distribution_count", "min_feature_size", "min_bead_width",
|
||||
// SoftFever
|
||||
"small_perimeter_speed", "small_perimeter_threshold","bridge_angle", "filter_out_gap_fill", "travel_acceleration","inner_wall_acceleration",
|
||||
"default_jerk", "outer_wall_jerk", "inner_wall_jerk", "top_surface_jerk", "initial_layer_jerk","travel_jerk",
|
||||
"top_solid_infill_flow_ratio","bottom_solid_infill_flow_ratio","only_one_wall_first_layer"
|
||||
"top_solid_infill_flow_ratio","bottom_solid_infill_flow_ratio","only_one_wall_first_layer",
|
||||
"print_flow_ratio"
|
||||
|
||||
};
|
||||
|
||||
static std::vector<std::string> s_Preset_filament_options {
|
||||
|
|
|
@ -1149,6 +1149,17 @@ void PrintConfigDef::init_fff_params()
|
|||
def->mode = comAdvanced;
|
||||
def->set_default_value(new ConfigOptionFloats { 1. });
|
||||
|
||||
def = this->add("print_flow_ratio", coPercent);
|
||||
def->label = L("Flow ratio");
|
||||
def->tooltip = L("The material may have volumetric change after switching between molten state and crystalline state. "
|
||||
"This setting changes all extrusion flow of this filament in gcode proportionally. "
|
||||
"Recommended value range is between 0.95 and 1.05. "
|
||||
"Maybe you can tune this value to get nice flat surface when there has slight overflow or underflow");
|
||||
def->sidetext = L("%");
|
||||
def->mode = comAdvanced;
|
||||
def->min = 2;
|
||||
def->set_default_value(new ConfigOptionPercent(100));
|
||||
|
||||
def = this->add("enable_pressure_advance", coBools);
|
||||
def->label = L("Enable pressure advance");
|
||||
def->tooltip = L("Enable pressure advance, auto calibration result will be overwriten once enabled.");
|
||||
|
|
|
@ -742,6 +742,8 @@ PRINT_CONFIG_CLASS_DEFINE(
|
|||
((ConfigOptionFloat, overhang_4_4_speed))
|
||||
((ConfigOptionBool, only_one_wall_top))
|
||||
((ConfigOptionBool, only_one_wall_first_layer))
|
||||
//SoftFever
|
||||
((ConfigOptionPercent, print_flow_ratio))
|
||||
)
|
||||
|
||||
PRINT_CONFIG_CLASS_DEFINE(
|
||||
|
|
|
@ -598,6 +598,14 @@ void ParamsPanel::set_active_tab(wxPanel* tab)
|
|||
wxString title = cur_tab->type() == Preset::TYPE_FILAMENT ? _L("Filament settings") : _L("Printer settings");
|
||||
dialog->SetTitle(title);
|
||||
}
|
||||
if (cur_tab == m_tab_print) {
|
||||
if (cur_tab)
|
||||
cur_tab->toggle_line("print_flow_ratio", false);
|
||||
}
|
||||
else {
|
||||
if (cur_tab)
|
||||
cur_tab->toggle_line("print_flow_ratio", false);
|
||||
}
|
||||
}
|
||||
|
||||
bool ParamsPanel::is_active_and_shown_tab(wxPanel* tab)
|
||||
|
|
|
@ -1801,6 +1801,7 @@ void TabPrint::build()
|
|||
|
||||
optgroup = page->new_optgroup(L("Advanced"), L"param_advanced");
|
||||
optgroup->append_single_option_line("wall_infill_order");
|
||||
optgroup->append_single_option_line("print_flow_ratio");
|
||||
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");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue