Skip to content

Fix clipped legacy emboss modifiers by refreshing convex hulls - #15829

Open
bunnybones1 wants to merge 1 commit into
prusa3d:masterfrom
bunnybones1:fix/legacy-emboss-slicing-bounds
Open

Fix clipped legacy emboss modifiers by refreshing convex hulls#15829
bunnybones1 wants to merge 1 commit into
prusa3d:masterfrom
bunnybones1:fix/legacy-emboss-slicing-bounds

Conversation

@bunnybones1

Copy link
Copy Markdown

Importing a PrusaSlicer 2.x project with embossed modifier volumes can drop parts of the text during slicing even though the complete mesh is present. In an affected 2.9.6 project, alpha11 prints only the upper loop of an “8”; all eight numbered tags lose their lower portions.

fix_volume_transformation() transforms the mesh and applies the inverse transform to the volume, preserving its position. The cached convex hull remains in the old local coordinates. PrintApply.cpp::update_volume_bboxes() then uses that stale hull to bound modifier regions and can exclude valid slices. Recalculate the hull after transforming the mesh.

Includes a small synthetic legacy 3MF fixture with two cuboids and an emboss transform. The regression checks that the imported modifier's hull bounds match its mesh bounds; no font or printer preset is required.

Validation on macOS 26.6:

  • Regression: six bound checks fail with the hull update removed; all 12 assertions pass with it restored.
  • Full slic3r-app-cli-tests suite passes.
  • Stock alpha11 ARM64 and Intel under Rosetta both reproduce the clipped digits. With this correction, the unchanged project produces all eight complete digits in CLI slicing and completes GUI slicing. For “8”, text-colour outer-wall paths extend down to Z=1.2 mm instead of stopping at Z=6.4 mm.

The validation build used GMP 6.3.0 for a separately investigated Apple Silicon crash; that dependency change is not part of this PR. The failing/passing regression used the same dependency build.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant