mirror of
https://git.mirrors.martin98.com/https://github.com/bambulab/BambuStudio.git
synced 2025-09-21 04:23:15 +08:00
FIX: layer height cannot exceed limits
Jira: STUDIO-4279 Change-Id: I9c580f9192f7d37123d76e72a62022a48c2a5315
This commit is contained in:
parent
b3d9ff95ec
commit
76f3f22bcc
@ -1188,11 +1188,23 @@ StringObjectException Print::validate(StringObjectException *warning, Polygons*
|
|||||||
if (layer_height > min_nozzle_diameter)
|
if (layer_height > min_nozzle_diameter)
|
||||||
return {L("Layer height cannot exceed nozzle diameter"), object, "layer_height"};
|
return {L("Layer height cannot exceed nozzle diameter"), object, "layer_height"};
|
||||||
|
|
||||||
|
double min_layer_height_from_nozzle = 0.01;
|
||||||
|
double max_layer_height_from_nozzle = std::numeric_limits<double>::max();
|
||||||
|
for (unsigned int extruder_id : extruders) {
|
||||||
|
min_layer_height_from_nozzle = std::max(min_layer_height_from_nozzle, m_config.min_layer_height.get_at(extruder_id));
|
||||||
|
max_layer_height_from_nozzle = std::min(max_layer_height_from_nozzle, m_config.max_layer_height.get_at(extruder_id));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (layer_height > max_layer_height_from_nozzle ||
|
||||||
|
layer_height < min_layer_height_from_nozzle) {
|
||||||
|
return { L("Layer height cannot exceed the limit in Printer Settings -> Extruder -> Layer height limits"), object, "layer_height" };
|
||||||
|
}
|
||||||
|
|
||||||
for (auto range : object->m_model_object->layer_config_ranges) {
|
for (auto range : object->m_model_object->layer_config_ranges) {
|
||||||
double range_layer_height = range.second.opt_float("layer_height");
|
double range_layer_height = range.second.opt_float("layer_height");
|
||||||
if (range_layer_height > object->m_slicing_params.max_layer_height ||
|
if (range_layer_height > max_layer_height_from_nozzle ||
|
||||||
range_layer_height < object->m_slicing_params.min_layer_height)
|
range_layer_height < min_layer_height_from_nozzle)
|
||||||
return { L("Layer height cannot exceed nozzle diameter"), nullptr, "layer_height" };
|
return { L("Layer height cannot exceed the limit in Printer Settings -> Extruder -> Layer height limits"), nullptr, "layer_height" };
|
||||||
}
|
}
|
||||||
|
|
||||||
// Validate extrusion widths.
|
// Validate extrusion widths.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user