mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-09-28 19:31:22 +00:00
Fix option nullable
This commit is contained in:
+3
-3
@@ -1591,7 +1591,7 @@ int CLI::run(int argc, char **argv)
|
|||||||
current_process_name = config.option<ConfigOptionString>("print_settings_id")->value;
|
current_process_name = config.option<ConfigOptionString>("print_settings_id")->value;
|
||||||
current_printer_model = config.option<ConfigOptionString>("printer_model", true)->value;
|
current_printer_model = config.option<ConfigOptionString>("printer_model", true)->value;
|
||||||
current_filaments_name = config.option<ConfigOptionStrings>("filament_settings_id")->values;
|
current_filaments_name = config.option<ConfigOptionStrings>("filament_settings_id")->values;
|
||||||
current_extruder_count = config.option<ConfigOptionFloatsNullable>("nozzle_diameter")->values.size();
|
current_extruder_count = config.option<ConfigOptionFloats>("nozzle_diameter")->values.size();
|
||||||
current_printer_variant_count = config.option<ConfigOptionStrings>("printer_extruder_variant", true)->values.size();
|
current_printer_variant_count = config.option<ConfigOptionStrings>("printer_extruder_variant", true)->values.size();
|
||||||
current_print_variant_count = config.option<ConfigOptionStrings>("print_extruder_variant", true)->values.size();
|
current_print_variant_count = config.option<ConfigOptionStrings>("print_extruder_variant", true)->values.size();
|
||||||
current_is_multi_extruder = current_extruder_count > 1;
|
current_is_multi_extruder = current_extruder_count > 1;
|
||||||
@@ -2834,8 +2834,8 @@ int CLI::run(int argc, char **argv)
|
|||||||
flush_and_exit(ret);
|
flush_and_exit(ret);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (m_print_config.option<ConfigOptionFloatsNullable>("nozzle_diameter")) {
|
if (m_print_config.option<ConfigOptionFloats>("nozzle_diameter")) {
|
||||||
new_extruder_count = m_print_config.option<ConfigOptionFloatsNullable>("nozzle_diameter")->values.size();
|
new_extruder_count = m_print_config.option<ConfigOptionFloats>("nozzle_diameter")->values.size();
|
||||||
new_is_multi_extruder = new_extruder_count > 1;
|
new_is_multi_extruder = new_extruder_count > 1;
|
||||||
new_printer_extruder_variants = m_print_config.option<ConfigOptionStrings>("printer_extruder_variant", true)->values;
|
new_printer_extruder_variants = m_print_config.option<ConfigOptionStrings>("printer_extruder_variant", true)->values;
|
||||||
new_printer_variant_count = new_printer_extruder_variants.size();
|
new_printer_variant_count = new_printer_extruder_variants.size();
|
||||||
|
|||||||
@@ -7899,7 +7899,7 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result)
|
|||||||
add_vector(stream, nozzle_volume_types);
|
add_vector(stream, nozzle_volume_types);
|
||||||
stream << "\"/>\n";
|
stream << "\"/>\n";
|
||||||
|
|
||||||
auto* nozzle_diameter_option = dynamic_cast<const ConfigOptionFloatsNullable*>(config.option("nozzle_diameter"));
|
auto* nozzle_diameter_option = dynamic_cast<const ConfigOptionFloats*>(config.option("nozzle_diameter"));
|
||||||
std::string nozzle_diameters_str;
|
std::string nozzle_diameters_str;
|
||||||
if (nozzle_diameter_option)
|
if (nozzle_diameter_option)
|
||||||
nozzle_diameters_str = nozzle_diameter_option->serialize();
|
nozzle_diameters_str = nozzle_diameter_option->serialize();
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ DynamicPrintConfig PresetBundle::construct_full_config(
|
|||||||
filament_maps.resize(num_filaments, 1);
|
filament_maps.resize(num_filaments, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
auto *extruder_diameter = dynamic_cast<const ConfigOptionFloatsNullable *>(out.option("nozzle_diameter"));
|
auto *extruder_diameter = dynamic_cast<const ConfigOptionFloats *>(out.option("nozzle_diameter"));
|
||||||
// Collect the "compatible_printers_condition" and "inherits" values over all presets (print, filaments, printers) into a single vector.
|
// Collect the "compatible_printers_condition" and "inherits" values over all presets (print, filaments, printers) into a single vector.
|
||||||
std::vector<std::string> compatible_printers_condition;
|
std::vector<std::string> compatible_printers_condition;
|
||||||
std::vector<std::string> compatible_prints_condition;
|
std::vector<std::string> compatible_prints_condition;
|
||||||
|
|||||||
@@ -1556,7 +1556,7 @@ Print::ApplyStatus Print::apply(const Model &model, DynamicPrintConfig new_full_
|
|||||||
// The PrintObject already exists and the copies differ.
|
// The PrintObject already exists and the copies differ.
|
||||||
PrintBase::ApplyStatus status = (*it_old)->print_object->set_instances(std::move(new_instances.instances));
|
PrintBase::ApplyStatus status = (*it_old)->print_object->set_instances(std::move(new_instances.instances));
|
||||||
if (status != PrintBase::APPLY_STATUS_UNCHANGED) {
|
if (status != PrintBase::APPLY_STATUS_UNCHANGED) {
|
||||||
size_t extruder_num = new_full_config.option<ConfigOptionFloatsNullable>("nozzle_diameter")->size();
|
size_t extruder_num = new_full_config.option<ConfigOptionFloats>("nozzle_diameter")->size();
|
||||||
update_apply_status(status == PrintBase::APPLY_STATUS_INVALIDATED);
|
update_apply_status(status == PrintBase::APPLY_STATUS_INVALIDATED);
|
||||||
}
|
}
|
||||||
print_objects_new.emplace_back((*it_old)->print_object);
|
print_objects_new.emplace_back((*it_old)->print_object);
|
||||||
|
|||||||
@@ -980,7 +980,7 @@ void AmsMapingPopup::update_ams_data_multi_machines()
|
|||||||
void AmsMapingPopup::update_title(MachineObject* obj)
|
void AmsMapingPopup::update_title(MachineObject* obj)
|
||||||
{
|
{
|
||||||
const auto& full_config = wxGetApp().preset_bundle->full_config();
|
const auto& full_config = wxGetApp().preset_bundle->full_config();
|
||||||
size_t nozzle_nums = full_config.option<ConfigOptionFloatsNullable>("nozzle_diameter")->values.size();
|
size_t nozzle_nums = full_config.option<ConfigOptionFloats>("nozzle_diameter")->values.size();
|
||||||
if (nozzle_nums > 1)
|
if (nozzle_nums > 1)
|
||||||
{
|
{
|
||||||
if (m_show_type == ShowType::LEFT)
|
if (m_show_type == ShowType::LEFT)
|
||||||
|
|||||||
@@ -2878,7 +2878,7 @@ wxWindow *CreatePrinterPresetDialog::create_page2_dialog_buttons(wxWindow *paren
|
|||||||
if (printer_variant)
|
if (printer_variant)
|
||||||
printer_variant->value = printer_nozzle_name;
|
printer_variant->value = printer_nozzle_name;
|
||||||
|
|
||||||
auto nozzle_diameter = dynamic_cast<ConfigOptionFloatsNullable *>(m_printer_preset->config.option("nozzle_diameter", true));
|
auto nozzle_diameter = dynamic_cast<ConfigOptionFloats *>(m_printer_preset->config.option("nozzle_diameter", true));
|
||||||
if (nozzle_diameter) {
|
if (nozzle_diameter) {
|
||||||
std::unordered_map<std::string, float>::const_iterator iter = nozzle_diameter_map.find(printer_nozzle_name);
|
std::unordered_map<std::string, float>::const_iterator iter = nozzle_diameter_map.find(printer_nozzle_name);
|
||||||
if (nozzle_diameter_map.end() != iter) {
|
if (nozzle_diameter_map.end() != iter) {
|
||||||
@@ -2935,7 +2935,7 @@ bool CreatePrinterPresetDialog::data_init()
|
|||||||
if (iter != m_printer_name_to_preset.end()) {
|
if (iter != m_printer_name_to_preset.end()) {
|
||||||
std::shared_ptr<Preset> printer_preset = iter->second;
|
std::shared_ptr<Preset> printer_preset = iter->second;
|
||||||
if (printer_preset) {
|
if (printer_preset) {
|
||||||
auto nozzle_diameter = dynamic_cast<ConfigOptionFloatsNullable *>(printer_preset->config.option("nozzle_diameter", true));
|
auto nozzle_diameter = dynamic_cast<ConfigOptionFloats *>(printer_preset->config.option("nozzle_diameter", true));
|
||||||
return nozzle_diameter->values.size();
|
return nozzle_diameter->values.size();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3048,7 +3048,7 @@ wxArrayString CreatePrinterPresetDialog::printer_preset_sort_with_nozzle_diamete
|
|||||||
if (iter != m_printer_name_to_preset.end()) {
|
if (iter != m_printer_name_to_preset.end()) {
|
||||||
std::shared_ptr<Preset> printer_preset = iter->second;
|
std::shared_ptr<Preset> printer_preset = iter->second;
|
||||||
if (printer_preset) {
|
if (printer_preset) {
|
||||||
auto nozzle_diameter = dynamic_cast<ConfigOptionFloatsNullable *>(printer_preset->config.option("nozzle_diameter", true));
|
auto nozzle_diameter = dynamic_cast<ConfigOptionFloats *>(printer_preset->config.option("nozzle_diameter", true));
|
||||||
return nozzle_diameter->values.size();
|
return nozzle_diameter->values.size();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ static bool should_pop_up()
|
|||||||
{
|
{
|
||||||
const auto &preset_bundle = wxGetApp().preset_bundle;
|
const auto &preset_bundle = wxGetApp().preset_bundle;
|
||||||
const auto &full_config = preset_bundle->full_config();
|
const auto &full_config = preset_bundle->full_config();
|
||||||
const auto nozzle_diameters = full_config.option<ConfigOptionFloatsNullable>("nozzle_diameter");
|
const auto nozzle_diameters = full_config.option<ConfigOptionFloats>("nozzle_diameter");
|
||||||
return nozzle_diameters->size() > 1;
|
return nozzle_diameters->size() > 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ extern std::string& get_right_extruder_unprintable_text();
|
|||||||
bool try_pop_up_before_slice(bool is_slice_all, Plater* plater_ref, PartPlate* partplate_ref, bool force_pop_up)
|
bool try_pop_up_before_slice(bool is_slice_all, Plater* plater_ref, PartPlate* partplate_ref, bool force_pop_up)
|
||||||
{
|
{
|
||||||
auto full_config = wxGetApp().preset_bundle->full_config();
|
auto full_config = wxGetApp().preset_bundle->full_config();
|
||||||
const auto nozzle_diameters = full_config.option<ConfigOptionFloatsNullable>("nozzle_diameter");
|
const auto nozzle_diameters = full_config.option<ConfigOptionFloats>("nozzle_diameter");
|
||||||
if (nozzle_diameters->size() <= 1)
|
if (nozzle_diameters->size() <= 1)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
|||||||
@@ -1867,7 +1867,7 @@ bool PartPlate::check_mixture_filament_compatible(const DynamicPrintConfig &conf
|
|||||||
|
|
||||||
bool PartPlate::check_compatible_of_nozzle_and_filament(const DynamicPrintConfig &config, const std::vector<std::string> &filament_presets, std::string &error_msg)
|
bool PartPlate::check_compatible_of_nozzle_and_filament(const DynamicPrintConfig &config, const std::vector<std::string> &filament_presets, std::string &error_msg)
|
||||||
{
|
{
|
||||||
float nozzle_diameter = config.option<ConfigOptionFloatsNullable>("nozzle_diameter")->values[0];
|
float nozzle_diameter = config.option<ConfigOptionFloats>("nozzle_diameter")->values[0];
|
||||||
auto volume_type_opt = config.option<ConfigOptionEnumsGeneric>("nozzle_volume_type");
|
auto volume_type_opt = config.option<ConfigOptionEnumsGeneric>("nozzle_volume_type");
|
||||||
|
|
||||||
auto get_filament_alias = [](std::string preset_name) -> std::string {
|
auto get_filament_alias = [](std::string preset_name) -> std::string {
|
||||||
|
|||||||
@@ -6230,7 +6230,7 @@ std::vector<size_t> Plater::priv::load_files(const std::vector<fs::path>& input_
|
|||||||
|
|
||||||
double preset_nozzle_diameter = 0.4;
|
double preset_nozzle_diameter = 0.4;
|
||||||
const ConfigOption *opt = printer_preset.config.option("nozzle_diameter");
|
const ConfigOption *opt = printer_preset.config.option("nozzle_diameter");
|
||||||
if (opt) preset_nozzle_diameter = static_cast<const ConfigOptionFloatsNullable *>(opt)->values[0];
|
if (opt) preset_nozzle_diameter = static_cast<const ConfigOptionFloats *>(opt)->values[0];
|
||||||
float machine_nozzle_diameter = obj->GetExtderSystem()->GetNozzleDiameter(0);
|
float machine_nozzle_diameter = obj->GetExtderSystem()->GetNozzleDiameter(0);
|
||||||
|
|
||||||
std::string machine_type = obj->printer_type;
|
std::string machine_type = obj->printer_type;
|
||||||
@@ -8555,7 +8555,7 @@ void Plater::priv::on_select_preset(wxCommandEvent &evt)
|
|||||||
PresetBundle *preset_bundle = wxGetApp().preset_bundle;
|
PresetBundle *preset_bundle = wxGetApp().preset_bundle;
|
||||||
Preset& cur_preset = preset_bundle->printers.get_edited_preset();
|
Preset& cur_preset = preset_bundle->printers.get_edited_preset();
|
||||||
if (cur_preset.get_printer_type(preset_bundle) == obj->get_show_printer_type()) {
|
if (cur_preset.get_printer_type(preset_bundle) == obj->get_show_printer_type()) {
|
||||||
double preset_nozzle_diameter = cur_preset.config.option<ConfigOptionFloatsNullable>("nozzle_diameter")->values[0];
|
double preset_nozzle_diameter = cur_preset.config.option<ConfigOptionFloats>("nozzle_diameter")->values[0];
|
||||||
bool same_nozzle_diameter = true;
|
bool same_nozzle_diameter = true;
|
||||||
|
|
||||||
const auto& extruders = obj->GetExtderSystem()->GetExtruders();
|
const auto& extruders = obj->GetExtderSystem()->GetExtruders();
|
||||||
@@ -15408,8 +15408,8 @@ void Plater::on_config_change(const DynamicPrintConfig &config)
|
|||||||
t_config_option_keys diff_keys = p->config->diff(config);
|
t_config_option_keys diff_keys = p->config->diff(config);
|
||||||
|
|
||||||
size_t old_nozzle_size = 1, new_nozzle_size = 1;
|
size_t old_nozzle_size = 1, new_nozzle_size = 1;
|
||||||
auto * opt_old = p->config->option<ConfigOptionFloatsNullable>("nozzle_diameter");
|
auto * opt_old = p->config->option<ConfigOptionFloats>("nozzle_diameter");
|
||||||
auto * opt_new = config.option<ConfigOptionFloatsNullable>("nozzle_diameter");
|
auto * opt_new = config.option<ConfigOptionFloats>("nozzle_diameter");
|
||||||
if (opt_old && opt_new) {
|
if (opt_old && opt_new) {
|
||||||
old_nozzle_size = opt_old->values.size();
|
old_nozzle_size = opt_old->values.size();
|
||||||
new_nozzle_size = opt_new->values.size();
|
new_nozzle_size = opt_new->values.size();
|
||||||
|
|||||||
@@ -221,7 +221,7 @@ void SyncAmsInfoDialog::deal_ok()
|
|||||||
bool SyncAmsInfoDialog::get_is_double_extruder()
|
bool SyncAmsInfoDialog::get_is_double_extruder()
|
||||||
{
|
{
|
||||||
const auto &full_config = wxGetApp().preset_bundle->full_config();
|
const auto &full_config = wxGetApp().preset_bundle->full_config();
|
||||||
size_t nozzle_nums = full_config.option<ConfigOptionFloatsNullable>("nozzle_diameter")->values.size();
|
size_t nozzle_nums = full_config.option<ConfigOptionFloats>("nozzle_diameter")->values.size();
|
||||||
bool use_double_extruder = nozzle_nums > 1 ? true : false;
|
bool use_double_extruder = nozzle_nums > 1 ? true : false;
|
||||||
return use_double_extruder;
|
return use_double_extruder;
|
||||||
}
|
}
|
||||||
@@ -1226,7 +1226,7 @@ bool SyncAmsInfoDialog::do_ams_mapping(MachineObject *obj_)
|
|||||||
|
|
||||||
const auto &full_config = wxGetApp().preset_bundle->full_config();
|
const auto &full_config = wxGetApp().preset_bundle->full_config();
|
||||||
const auto &project_config = wxGetApp().preset_bundle->project_config;
|
const auto &project_config = wxGetApp().preset_bundle->project_config;
|
||||||
size_t nozzle_nums = full_config.option<ConfigOptionFloatsNullable>("nozzle_diameter")->values.size();
|
size_t nozzle_nums = full_config.option<ConfigOptionFloats>("nozzle_diameter")->values.size();
|
||||||
m_filaments_map = wxGetApp().plater()->get_partplate_list().get_curr_plate()->get_real_filament_maps(project_config);
|
m_filaments_map = wxGetApp().plater()->get_partplate_list().get_curr_plate()->get_real_filament_maps(project_config);
|
||||||
|
|
||||||
int filament_result = 0;
|
int filament_result = 0;
|
||||||
@@ -1415,7 +1415,7 @@ bool SyncAmsInfoDialog::build_nozzles_info(std::string &nozzles_info)
|
|||||||
|
|
||||||
PresetBundle *preset_bundle = wxGetApp().preset_bundle;
|
PresetBundle *preset_bundle = wxGetApp().preset_bundle;
|
||||||
if (!preset_bundle) return false;
|
if (!preset_bundle) return false;
|
||||||
auto opt_nozzle_diameters = preset_bundle->printers.get_edited_preset().config.option<ConfigOptionFloatsNullable>("nozzle_diameter");
|
auto opt_nozzle_diameters = preset_bundle->printers.get_edited_preset().config.option<ConfigOptionFloats>("nozzle_diameter");
|
||||||
if (opt_nozzle_diameters == nullptr) {
|
if (opt_nozzle_diameters == nullptr) {
|
||||||
BOOST_LOG_TRIVIAL(error) << "build_nozzles_info, opt_nozzle_diameters is nullptr";
|
BOOST_LOG_TRIVIAL(error) << "build_nozzles_info, opt_nozzle_diameters is nullptr";
|
||||||
return false;
|
return false;
|
||||||
@@ -1907,7 +1907,7 @@ bool SyncAmsInfoDialog::is_same_nozzle_diameters(NozzleType &tag_nozzle_type, fl
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
PresetBundle *preset_bundle = wxGetApp().preset_bundle;
|
PresetBundle *preset_bundle = wxGetApp().preset_bundle;
|
||||||
auto opt_nozzle_diameters = preset_bundle->printers.get_edited_preset().config.option<ConfigOptionFloatsNullable>("nozzle_diameter");
|
auto opt_nozzle_diameters = preset_bundle->printers.get_edited_preset().config.option<ConfigOptionFloats>("nozzle_diameter");
|
||||||
|
|
||||||
const ConfigOptionEnumsGenericNullable *nozzle_type = preset_bundle->printers.get_edited_preset().config.option<ConfigOptionEnumsGenericNullable>("nozzle_type");
|
const ConfigOptionEnumsGenericNullable *nozzle_type = preset_bundle->printers.get_edited_preset().config.option<ConfigOptionEnumsGenericNullable>("nozzle_type");
|
||||||
std::vector<std::string> preset_nozzle_types(nozzle_type->size());
|
std::vector<std::string> preset_nozzle_types(nozzle_type->size());
|
||||||
@@ -2379,7 +2379,7 @@ void SyncAmsInfoDialog::update_show_status()
|
|||||||
if (m_ams_mapping_result.empty()) { do_ams_mapping(obj_); }
|
if (m_ams_mapping_result.empty()) { do_ams_mapping(obj_); }
|
||||||
|
|
||||||
const auto &full_config = wxGetApp().preset_bundle->full_config();
|
const auto &full_config = wxGetApp().preset_bundle->full_config();
|
||||||
size_t nozzle_nums = full_config.option<ConfigOptionFloatsNullable>("nozzle_diameter")->values.size();
|
size_t nozzle_nums = full_config.option<ConfigOptionFloats>("nozzle_diameter")->values.size();
|
||||||
|
|
||||||
// the nozzle type of preset and machine are different
|
// the nozzle type of preset and machine are different
|
||||||
if (nozzle_nums > 1) {
|
if (nozzle_nums > 1) {
|
||||||
@@ -2730,7 +2730,7 @@ void SyncAmsInfoDialog::reset_and_sync_ams_list()
|
|||||||
if (!dev_manager) return;
|
if (!dev_manager) return;
|
||||||
MachineObject *obj_ = dev_manager->get_selected_machine();
|
MachineObject *obj_ = dev_manager->get_selected_machine();
|
||||||
const auto & full_config = wxGetApp().preset_bundle->full_config();
|
const auto & full_config = wxGetApp().preset_bundle->full_config();
|
||||||
size_t nozzle_nums = full_config.option<ConfigOptionFloatsNullable>("nozzle_diameter")->values.size();
|
size_t nozzle_nums = full_config.option<ConfigOptionFloats>("nozzle_diameter")->values.size();
|
||||||
if (nozzle_nums > 1) {
|
if (nozzle_nums > 1) {
|
||||||
m_mapping_popup.set_show_type(ShowType::LEFT_AND_RIGHT);//special
|
m_mapping_popup.set_show_type(ShowType::LEFT_AND_RIGHT);//special
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1908,23 +1908,23 @@ void Tab::on_value_change(const std::string& opt_key, const boost::any& value)
|
|||||||
if (m_preset_bundle->get_printer_extruder_count() > 1){
|
if (m_preset_bundle->get_printer_extruder_count() > 1){
|
||||||
int extruder_idx = std::atoi(opt_key.substr(opt_key.find_last_of('#') + 1).c_str());
|
int extruder_idx = std::atoi(opt_key.substr(opt_key.find_last_of('#') + 1).c_str());
|
||||||
if (opt_key.find("min_layer_height") != std::string::npos) {
|
if (opt_key.find("min_layer_height") != std::string::npos) {
|
||||||
auto min_layer_height_from_nozzle = m_preset_bundle->full_config().option<ConfigOptionFloatsNullable>("min_layer_height")->values;
|
auto min_layer_height_from_nozzle = m_preset_bundle->full_config().option<ConfigOptionFloats>("min_layer_height")->values;
|
||||||
if (extruder_idx < min_layer_height_from_nozzle.size()) {
|
if (extruder_idx < min_layer_height_from_nozzle.size()) {
|
||||||
double value = min_layer_height_from_nozzle[extruder_idx];
|
double value = min_layer_height_from_nozzle[extruder_idx];
|
||||||
std::fill(min_layer_height_from_nozzle.begin(), min_layer_height_from_nozzle.end(), value);
|
std::fill(min_layer_height_from_nozzle.begin(), min_layer_height_from_nozzle.end(), value);
|
||||||
}
|
}
|
||||||
auto new_conf = *m_config;
|
auto new_conf = *m_config;
|
||||||
new_conf.set_key_value("min_layer_height", new ConfigOptionFloatsNullable(min_layer_height_from_nozzle));
|
new_conf.set_key_value("min_layer_height", new ConfigOptionFloats(min_layer_height_from_nozzle));
|
||||||
m_config_manipulation.apply(m_config, &new_conf);
|
m_config_manipulation.apply(m_config, &new_conf);
|
||||||
}
|
}
|
||||||
else if (opt_key.find("max_layer_height") != std::string::npos) {
|
else if (opt_key.find("max_layer_height") != std::string::npos) {
|
||||||
auto max_layer_height_from_nozzle = m_preset_bundle->full_config().option<ConfigOptionFloatsNullable>("max_layer_height")->values;
|
auto max_layer_height_from_nozzle = m_preset_bundle->full_config().option<ConfigOptionFloats>("max_layer_height")->values;
|
||||||
if (extruder_idx < max_layer_height_from_nozzle.size()) {
|
if (extruder_idx < max_layer_height_from_nozzle.size()) {
|
||||||
double value = max_layer_height_from_nozzle[extruder_idx];
|
double value = max_layer_height_from_nozzle[extruder_idx];
|
||||||
std::fill(max_layer_height_from_nozzle.begin(), max_layer_height_from_nozzle.end(), value);
|
std::fill(max_layer_height_from_nozzle.begin(), max_layer_height_from_nozzle.end(), value);
|
||||||
}
|
}
|
||||||
auto new_conf = *m_config;
|
auto new_conf = *m_config;
|
||||||
new_conf.set_key_value("max_layer_height", new ConfigOptionFloatsNullable(max_layer_height_from_nozzle));
|
new_conf.set_key_value("max_layer_height", new ConfigOptionFloats(max_layer_height_from_nozzle));
|
||||||
m_config_manipulation.apply(m_config, &new_conf);
|
m_config_manipulation.apply(m_config, &new_conf);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -212,7 +212,7 @@ wxString WipingDialog::BuildTableObjStr()
|
|||||||
auto full_config = wxGetApp().preset_bundle->full_config();
|
auto full_config = wxGetApp().preset_bundle->full_config();
|
||||||
auto filament_colors = full_config.option<ConfigOptionStrings>("filament_colour")->values;
|
auto filament_colors = full_config.option<ConfigOptionStrings>("filament_colour")->values;
|
||||||
auto flush_multiplier = full_config.option<ConfigOptionFloats>("flush_multiplier")->values;
|
auto flush_multiplier = full_config.option<ConfigOptionFloats>("flush_multiplier")->values;
|
||||||
int nozzle_num = full_config.option<ConfigOptionFloatsNullable>("nozzle_diameter")->values.size();
|
int nozzle_num = full_config.option<ConfigOptionFloats>("nozzle_diameter")->values.size();
|
||||||
auto raw_matrix_data = full_config.option<ConfigOptionFloats>("flush_volumes_matrix")->values;
|
auto raw_matrix_data = full_config.option<ConfigOptionFloats>("flush_volumes_matrix")->values;
|
||||||
auto nozzle_flush_dataset = full_config.option<ConfigOptionIntsNullable>("nozzle_flush_dataset")->values;
|
auto nozzle_flush_dataset = full_config.option<ConfigOptionIntsNullable>("nozzle_flush_dataset")->values;
|
||||||
|
|
||||||
|
|||||||
@@ -273,7 +273,7 @@ static bool check_nozzle_diameter_and_type(const DynamicPrintConfig &full_config
|
|||||||
static void init_multi_extruder_params_for_cali(DynamicPrintConfig& config, const CalibInfo& calib_info)
|
static void init_multi_extruder_params_for_cali(DynamicPrintConfig& config, const CalibInfo& calib_info)
|
||||||
{
|
{
|
||||||
int extruder_count = 1;
|
int extruder_count = 1;
|
||||||
auto nozzle_diameters_opt = dynamic_cast<const ConfigOptionFloatsNullable*>(config.option("nozzle_diameter"));
|
auto nozzle_diameters_opt = dynamic_cast<const ConfigOptionFloats*>(config.option("nozzle_diameter"));
|
||||||
if (nozzle_diameters_opt != nullptr) {
|
if (nozzle_diameters_opt != nullptr) {
|
||||||
extruder_count = (int)(nozzle_diameters_opt->size());
|
extruder_count = (int)(nozzle_diameters_opt->size());
|
||||||
}
|
}
|
||||||
@@ -761,7 +761,7 @@ void CalibUtils::calib_pa_pattern(const CalibInfo &calib_info, Model& model)
|
|||||||
|
|
||||||
int index = get_index_for_extruder_parameter(print_config, "outer_wall_speed", calib_info.extruder_id, calib_info.extruder_type, calib_info.nozzle_volume_type);
|
int index = get_index_for_extruder_parameter(print_config, "outer_wall_speed", calib_info.extruder_id, calib_info.extruder_type, calib_info.nozzle_volume_type);
|
||||||
float wall_speed = CalibPressureAdvance::find_optimal_PA_speed(full_config, print_config.get_abs_value("line_width"), print_config.get_abs_value("layer_height"), calib_info.extruder_id, 0);
|
float wall_speed = CalibPressureAdvance::find_optimal_PA_speed(full_config, print_config.get_abs_value("line_width"), print_config.get_abs_value("layer_height"), calib_info.extruder_id, 0);
|
||||||
ConfigOptionFloatsNullable *wall_speed_speed_opt = print_config.option<ConfigOptionFloatsNullable>("outer_wall_speed");
|
ConfigOptionFloats *wall_speed_speed_opt = print_config.option<ConfigOptionFloats>("outer_wall_speed");
|
||||||
wall_speed_speed_opt->values[index] = wall_speed;
|
wall_speed_speed_opt->values[index] = wall_speed;
|
||||||
|
|
||||||
for (const auto& opt : SuggestedConfigCalibPAPattern().nozzle_ratio_pairs) {
|
for (const auto& opt : SuggestedConfigCalibPAPattern().nozzle_ratio_pairs) {
|
||||||
@@ -800,8 +800,8 @@ void CalibUtils::set_for_auto_pa_model_and_config(const std::vector<CalibInfo> &
|
|||||||
{
|
{
|
||||||
DynamicPrintConfig print_config = calib_infos[0].print_prest->config;
|
DynamicPrintConfig print_config = calib_infos[0].print_prest->config;
|
||||||
|
|
||||||
float nozzle_diameter = full_config.option<ConfigOptionFloatsNullable>("nozzle_diameter")->get_at(0);
|
float nozzle_diameter = full_config.option<ConfigOptionFloats>("nozzle_diameter")->get_at(0);
|
||||||
int extruder_count = full_config.option<ConfigOptionFloatsNullable>("nozzle_diameter")->values.size();
|
int extruder_count = full_config.option<ConfigOptionFloats>("nozzle_diameter")->values.size();
|
||||||
|
|
||||||
for (const auto opt : SuggestedConfigCalibPAPattern().float_pairs) { print_config.set_key_value(opt.first, new ConfigOptionFloat(opt.second)); }
|
for (const auto opt : SuggestedConfigCalibPAPattern().float_pairs) { print_config.set_key_value(opt.first, new ConfigOptionFloat(opt.second)); }
|
||||||
|
|
||||||
@@ -815,11 +815,11 @@ void CalibUtils::set_for_auto_pa_model_and_config(const std::vector<CalibInfo> &
|
|||||||
float wall_speed = CalibPressureAdvance::find_optimal_PA_speed(full_config, print_config.get_abs_value("line_width"), print_config.get_abs_value("layer_height"),
|
float wall_speed = CalibPressureAdvance::find_optimal_PA_speed(full_config, print_config.get_abs_value("line_width"), print_config.get_abs_value("layer_height"),
|
||||||
calib_info.extruder_id, 0);
|
calib_info.extruder_id, 0);
|
||||||
|
|
||||||
ConfigOptionFloatsNullable *wall_speed_speed_opt = print_config.option<ConfigOptionFloatsNullable>("outer_wall_speed");
|
ConfigOptionFloats *wall_speed_speed_opt = print_config.option<ConfigOptionFloats>("outer_wall_speed");
|
||||||
std::vector<double> new_speeds = wall_speed_speed_opt->values;
|
std::vector<double> new_speeds = wall_speed_speed_opt->values;
|
||||||
new_speeds[index] = wall_speed;
|
new_speeds[index] = wall_speed;
|
||||||
ModelObject* object = model.objects[calib_info.index];
|
ModelObject* object = model.objects[calib_info.index];
|
||||||
object->config.set_key_value("outer_wall_speed", new ConfigOptionFloatsNullable(new_speeds));
|
object->config.set_key_value("outer_wall_speed", new ConfigOptionFloats(new_speeds));
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const auto opt : SuggestedConfigCalibPAPattern().nozzle_ratio_pairs) {
|
for (const auto opt : SuggestedConfigCalibPAPattern().nozzle_ratio_pairs) {
|
||||||
@@ -983,7 +983,7 @@ bool CalibUtils::calib_generic_auto_pa_cali(const std::vector<CalibInfo> &calib_
|
|||||||
else if (params.mode == CalibMode::Calib_Auto_PA_Line)
|
else if (params.mode == CalibMode::Calib_Auto_PA_Line)
|
||||||
js["cali_type"] = "cali_auto_pa_line";
|
js["cali_type"] = "cali_auto_pa_line";
|
||||||
|
|
||||||
const ConfigOptionFloatsNullable *nozzle_diameter_config = printer_config.option<ConfigOptionFloatsNullable>("nozzle_diameter");
|
const ConfigOptionFloats *nozzle_diameter_config = printer_config.option<ConfigOptionFloats>("nozzle_diameter");
|
||||||
assert(nozzle_diameter_config->values.size() > 0);
|
assert(nozzle_diameter_config->values.size() > 0);
|
||||||
float nozzle_diameter = nozzle_diameter_config->values[0];
|
float nozzle_diameter = nozzle_diameter_config->values[0];
|
||||||
|
|
||||||
@@ -1484,7 +1484,7 @@ bool CalibUtils::check_printable_status_before_cali(const MachineObject* obj, co
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
const ConfigOptionFloatsNullable *nozzle_diameter_config = cali_info.printer_prest->config.option<ConfigOptionFloatsNullable>("nozzle_diameter");
|
const ConfigOptionFloats *nozzle_diameter_config = cali_info.printer_prest->config.option<ConfigOptionFloats>("nozzle_diameter");
|
||||||
float nozzle_diameter = nozzle_diameter_config->values[0];
|
float nozzle_diameter = nozzle_diameter_config->values[0];
|
||||||
|
|
||||||
float diameter = obj->GetExtderSystem()->GetNozzleDiameter(cali_info.extruder_id);
|
float diameter = obj->GetExtderSystem()->GetNozzleDiameter(cali_info.extruder_id);
|
||||||
|
|||||||
Reference in New Issue
Block a user