mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-09-09 18:27:00 +00:00
FIX: fix flow ratio calib bug for single extruder printer
2. modify the filament_flow_ratio to nullable jira:none Change-Id: I3f0569ee643cfe9473c6029ca0e04f4b80c8332e (cherry picked from commit ed61d1d31bdc79f064567deacf35e05bd123880d)
This commit is contained in:
@@ -619,8 +619,10 @@ std::string AppConfig::load()
|
||||
for (auto cali_it = calis_j["presets"].begin(); cali_it != calis_j["presets"].end(); cali_it++) {
|
||||
CaliPresetInfo preset_info;
|
||||
preset_info.tray_id = cali_it.value()["tray_id"].get<int>();
|
||||
preset_info.extruder_id = cali_it.value()["extruder_id"].get<int>();
|
||||
preset_info.nozzle_volume_type = NozzleVolumeType(cali_it.value()["nozzle_volume_type"].get<int>());
|
||||
if (cali_it.value().contains("extruder_id"))
|
||||
preset_info.extruder_id = cali_it.value()["extruder_id"].get<int>();
|
||||
if (cali_it.value().contains("nozzle_volume_type"))
|
||||
preset_info.nozzle_volume_type = NozzleVolumeType(cali_it.value()["nozzle_volume_type"].get<int>());
|
||||
preset_info.nozzle_diameter = cali_it.value()["nozzle_diameter"].get<float>();
|
||||
preset_info.filament_id = cali_it.value()["filament_id"].get<std::string>();
|
||||
preset_info.setting_id = cali_it.value()["setting_id"].get<std::string>();
|
||||
|
||||
@@ -1961,7 +1961,8 @@ void PrintConfigDef::init_fff_params()
|
||||
"You may be able to tune this value to get a nice flat surface if there is slight overflow or underflow.");
|
||||
def->max = 2;
|
||||
def->mode = comAdvanced;
|
||||
def->set_default_value(new ConfigOptionFloats { 1. });
|
||||
def->nullable = true;
|
||||
def->set_default_value(new ConfigOptionFloatsNullable { 1. });
|
||||
|
||||
def = this->add("print_flow_ratio", coFloat);
|
||||
def->label = L("Flow ratio");
|
||||
@@ -7214,6 +7215,7 @@ std::set<std::string> print_options_with_variant = {
|
||||
};
|
||||
|
||||
std::set<std::string> filament_options_with_variant = {
|
||||
"filament_flow_ratio",
|
||||
"filament_max_volumetric_speed",
|
||||
//"filament_extruder_id",
|
||||
"filament_extruder_variant",
|
||||
|
||||
@@ -1184,7 +1184,7 @@ PRINT_CONFIG_CLASS_DEFINE(
|
||||
((ConfigOptionBool, enable_arc_fitting))
|
||||
((ConfigOptionString, machine_end_gcode))
|
||||
((ConfigOptionStrings, filament_end_gcode))
|
||||
((ConfigOptionFloats, filament_flow_ratio))
|
||||
((ConfigOptionFloatsNullable, filament_flow_ratio))
|
||||
((ConfigOptionBools, enable_pressure_advance))
|
||||
((ConfigOptionFloats, pressure_advance))
|
||||
// Orca: adaptive pressure advance and calibration model
|
||||
|
||||
@@ -242,7 +242,7 @@ std::string CalibPressureAdvance::draw_line(
|
||||
const double e_per_mm = CalibPressureAdvance::e_per_mm(line_width, layer_height,
|
||||
m_config.option<ConfigOptionFloats>("nozzle_diameter")->get_at(0),
|
||||
m_config.option<ConfigOptionFloats>("filament_diameter")->get_at(0),
|
||||
m_config.option<ConfigOptionFloats>("filament_flow_ratio")->get_at(0));
|
||||
m_config.option<ConfigOptionFloatsNullable>("filament_flow_ratio")->get_at(0));
|
||||
|
||||
const double length = get_distance(Vec2d(m_last_pos.x(), m_last_pos.y()), to_pt);
|
||||
auto dE = e_per_mm * length;
|
||||
|
||||
Reference in New Issue
Block a user