mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-09-11 11:07:40 +00:00
Let the Remaining Per-Plate Object Scans See Every Instance
get_extruders() and estimate_wipe_tower_size() already ask whether any instance of an object sits on the plate; the support-less extruder scan, the mixed-filament risk check and the nozzle/filament compatibility check still tested instance 0 only, so an object whose copy - not its original - was placed on the plate was skipped by all three.
This commit is contained in:
@@ -1917,7 +1917,7 @@ std::vector<int> PartPlate::get_extruders_without_support(bool conside_custom_gc
|
|||||||
const DynamicPrintConfig& glb_config = wxGetApp().preset_bundle->prints.get_edited_preset().config;
|
const DynamicPrintConfig& glb_config = wxGetApp().preset_bundle->prints.get_edited_preset().config;
|
||||||
|
|
||||||
for (int obj_idx = 0; obj_idx < m_model->objects.size(); obj_idx++) {
|
for (int obj_idx = 0; obj_idx < m_model->objects.size(); obj_idx++) {
|
||||||
if (!contain_instance_totally(obj_idx, 0))
|
if (!contain_any_instance_totally(obj_idx))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
ModelObject* mo = m_model->objects[obj_idx];
|
ModelObject* mo = m_model->objects[obj_idx];
|
||||||
@@ -2088,7 +2088,7 @@ bool PartPlate::check_single_extruder_mixed_filament_risk(const DynamicPrintConf
|
|||||||
"which may significantly increase waste and the risk of nozzle / waste-chute clogging.");
|
"which may significantly increase waste and the risk of nozzle / waste-chute clogging.");
|
||||||
|
|
||||||
for (int obj_idx = 0; obj_idx < (int)m_model->objects.size(); ++obj_idx) {
|
for (int obj_idx = 0; obj_idx < (int)m_model->objects.size(); ++obj_idx) {
|
||||||
if (!contain_instance_totally(obj_idx, 0))
|
if (!contain_any_instance_totally(obj_idx))
|
||||||
continue;
|
continue;
|
||||||
ModelObject *mo = m_model->objects[obj_idx];
|
ModelObject *mo = m_model->objects[obj_idx];
|
||||||
int obj_ext = mo->config.has("extruder") ? mo->config.extruder() : 1;
|
int obj_ext = mo->config.has("extruder") ? mo->config.extruder() : 1;
|
||||||
@@ -2307,7 +2307,7 @@ bool PartPlate::check_compatible_of_nozzle_and_filament(const DynamicPrintConfig
|
|||||||
return wipe_tower_size;
|
return wipe_tower_size;
|
||||||
|
|
||||||
for (int obj_idx = 0; obj_idx < m_model->objects.size(); obj_idx++) {
|
for (int obj_idx = 0; obj_idx < m_model->objects.size(); obj_idx++) {
|
||||||
if (!use_global_objects && !contain_instance_totally(obj_idx, 0))
|
if (!use_global_objects && !contain_any_instance_totally(obj_idx))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
BoundingBoxf3 bbox = m_model->objects[obj_idx]->bounding_box();
|
BoundingBoxf3 bbox = m_model->objects[obj_idx]->bounding_box();
|
||||||
|
|||||||
Reference in New Issue
Block a user