mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2026-03-10 21:37:06 -06:00
FIX: add a new way to calc params size
jira: NONE Signed-off-by: xun.zhang <xun.zhang@bambulab.com> Change-Id: I75a983a8c2ec1d9e4b691e32e8beead0868d2644 (cherry picked from commit 55162b1f7d4f9e0abc3de961fda5085b66f73b2f) (cherry picked from commit c86da564e0cd4155b155b84debd7f0f0da1b20d4)
This commit is contained in:
parent
b351fa3b50
commit
d6a8f881de
1 changed files with 23 additions and 21 deletions
|
|
@ -7789,27 +7789,29 @@ void handle_legacy_sla(DynamicPrintConfig &config)
|
|||
|
||||
size_t DynamicPrintConfig::get_parameter_size(const std::string& param_name, size_t extruder_nums)
|
||||
{
|
||||
if (extruder_nums > 1) {
|
||||
size_t volume_type_size = 2;
|
||||
auto nozzle_volume_type_opt = dynamic_cast<const ConfigOptionEnumsGeneric *>(this->option("nozzle_volume_type"));
|
||||
if (nozzle_volume_type_opt) {
|
||||
volume_type_size = nozzle_volume_type_opt->values.size();
|
||||
}
|
||||
if (printer_options_with_variant_1.count(param_name) > 0) {
|
||||
return extruder_nums * volume_type_size;
|
||||
}
|
||||
else if (printer_options_with_variant_2.count(param_name) > 0) {
|
||||
return extruder_nums * volume_type_size * 2;
|
||||
}
|
||||
else if (filament_options_with_variant.count(param_name) > 0) {
|
||||
return extruder_nums * volume_type_size;
|
||||
}
|
||||
else if (print_options_with_variant.count(param_name) > 0) {
|
||||
return extruder_nums * volume_type_size;
|
||||
}
|
||||
else {
|
||||
return extruder_nums;
|
||||
}
|
||||
constexpr size_t default_param_length = 1;
|
||||
size_t filament_variant_length = default_param_length;
|
||||
size_t process_variant_length = default_param_length;
|
||||
size_t machine_variant_length = default_param_length;
|
||||
|
||||
if (this->has("filament_extruder_variant"))
|
||||
filament_variant_length = this->option<ConfigOptionStrings>("filament_extruder_variant")->size();
|
||||
if (this->has("print_extruder_variant"))
|
||||
process_variant_length = this->option<ConfigOptionStrings>("print_extruder_variant")->size();
|
||||
if (this->has("printer_extruder_variant"))
|
||||
machine_variant_length = this->option<ConfigOptionStrings>("printer_extruder_variant")->size();
|
||||
|
||||
if (printer_options_with_variant_1.count(param_name) > 0) {
|
||||
return machine_variant_length;
|
||||
}
|
||||
else if (printer_options_with_variant_2.count(param_name) > 0) {
|
||||
return machine_variant_length * 2;
|
||||
}
|
||||
else if (filament_options_with_variant.count(param_name) > 0) {
|
||||
return filament_variant_length;
|
||||
}
|
||||
else if (print_options_with_variant.count(param_name) > 0) {
|
||||
return process_variant_length;
|
||||
}
|
||||
return extruder_nums;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue