Compare commits

...

4 Commits

Author SHA1 Message Date
Ian Chua
e9ea8a8eb7 remove diagnostic logging 2026-05-25 10:34:47 +08:00
Ian Chua
8c6f0b4b47 Merge branch 'main' into fix/cli-segfault 2026-05-25 10:15:00 +08:00
Ian Chua
1a2118f696 Merge branch 'main' into fix/cli-segfault 2026-05-21 15:38:33 +08:00
Ian Chua
899bbafc99 fix: cli painted segmentation crash with mismatched filament counts 2026-05-21 15:37:00 +08:00
2 changed files with 2 additions and 2 deletions

View File

@@ -2195,7 +2195,7 @@ std::vector<std::vector<ExPolygons>> segmentation_by_painting(const PrintObject
// Returns multi-material segmentation based on painting in multi-material segmentation gizmo // Returns multi-material segmentation based on painting in multi-material segmentation gizmo
std::vector<std::vector<ExPolygons>> multi_material_segmentation_by_painting(const PrintObject &print_object, const std::function<void()> &throw_on_cancel_callback) { std::vector<std::vector<ExPolygons>> multi_material_segmentation_by_painting(const PrintObject &print_object, const std::function<void()> &throw_on_cancel_callback) {
const size_t num_facets_states = print_object.print()->config().filament_colour.size() + 1; const size_t num_facets_states = print_object.print()->config().filament_diameter.size() + 1;
const float max_width = float(print_object.config().mmu_segmented_region_max_width.value); const float max_width = float(print_object.config().mmu_segmented_region_max_width.value);
const float interlocking_depth = float(print_object.config().mmu_segmented_region_interlocking_depth.value); const float interlocking_depth = float(print_object.config().mmu_segmented_region_interlocking_depth.value);
const bool interlocking_beam = print_object.config().interlocking_beam.value; const bool interlocking_beam = print_object.config().interlocking_beam.value;

View File

@@ -883,7 +883,6 @@ static inline void apply_mm_segmentation(PrintObject &print_object, ThrowOnCance
double z = print_object.get_layer(int(range.begin()))->slice_z; double z = print_object.get_layer(int(range.begin()))->slice_z;
auto it_layer_range = layer_range_first(layer_ranges, z); auto it_layer_range = layer_range_first(layer_ranges, z);
// BBS // BBS
const size_t num_extruders = print_object.print()->config().filament_diameter.size();
struct ByExtruder { struct ByExtruder {
ExPolygons expolygons; ExPolygons expolygons;
@@ -903,6 +902,7 @@ static inline void apply_mm_segmentation(PrintObject &print_object, ThrowOnCance
it_layer_range = layer_range_next(layer_ranges, it_layer_range, layer.slice_z); it_layer_range = layer_range_next(layer_ranges, it_layer_range, layer.slice_z);
const PrintObjectRegions::LayerRangeRegions &layer_range = *it_layer_range; const PrintObjectRegions::LayerRangeRegions &layer_range = *it_layer_range;
// Gather per extruder expolygons. // Gather per extruder expolygons.
const size_t num_extruders = segmentation[layer_id].size();
by_extruder.assign(num_extruders, ByExtruder()); by_extruder.assign(num_extruders, ByExtruder());
by_region.assign(layer.region_count(), ByRegion()); by_region.assign(layer.region_count(), ByRegion());
bool layer_split = false; bool layer_split = false;