Add preextrusion_ops and cavity etch regression test#169
Draft
Add preextrusion_ops and cavity etch regression test#169
Conversation
Add a preextrusion_ops field to SolidModelTarget that allows operations (e.g., 2D metal patterning) to run before layer extrusions. This prevents OCC recursive deletion from cascading across dimensions when 3D boolean operations consume surfaces that were shared with 2D groups. Pipeline order is now: preextrusion_ops → extrusion_ops → postrender_ops → intersection_ops Also adds a "Cavity Etch" test that exercises the substrate/cavity/vacuum domain decomposition workflow with overlapping 2D surfaces extruded to different depths, boolean cuts, and 3D meshing.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
preextrusion_opskeyword toSolidModelTargetfor operations that mustrun before layer extrusions (e.g., 2D metal patterning that would otherwise be
destroyed by OCC's recursive deletion when 3D extrusions are consumed by boolean ops)
decomposition with overlapping 2D surfaces extruded to different depths
The postrender pipeline order is now:
preextrusion_ops → extrusion_ops → postrender_ops → intersection_opsCavity etch test
The new test creates a geometry with three concentric rectangles (cavity, metal_negative,
chip_area/simulated_area), extrudes them into volumes at different heights, performs boolean
domain decomposition (substrate = chip - cavity, vacuum = sim - substrate), then verifies
physical groups exist and 3D meshing succeeds.
This test currently requires a patched Gmsh 4.15.0 to pass. Stock 4.15.0 produces
PLC mesh errors due to two bugs in
booleanOperator's preserve-numbering path:_unbindA patch for
GModelIO_OCC.cpphas been prepared against Gmsh master and will be submittedupstream. Once a patched
gmsh_jllis available (via Yggdrasil), this test will pass in CI.Test plan
preextrusion_ops=[]default is backward-compatible — no existing behavior changes