-
Notifications
You must be signed in to change notification settings - Fork 20
Description
Summary
In our browser-based OCCT wasm pipeline, BRepBuilderAPI_MakeSolid
sometimes returns a solid-type object without an explicit failure,
but the resulting topology contains zero faces.
Recent diagnostics show that both patterns can occur depending on the
post-solidification route: some routes produce empty-topology results,
while others produce non-empty solid candidates.
As a result, the returned object cannot be used as a valid solid for
downstream operations such as volume computation.
Environment
- OCCT: wasm build used in browser integration
- Runtime: Chrome (browser worker)
- Input: STL-derived geometry after mesh repair
Pipeline used:
STL mesh → sew/heal → force closure → shell → BRepBuilderAPI_MakeSolid
Observed behavior
Across multiple post-solidification attempts we repeatedly observe
diagnostics similar to:
ret = solid/1topo = 0/1/1(face/shell/solid counts)
These diagnostics are generated by my own diagnostic tool.
This indicates that a TopoDS_Solid object is returned, but the
topology effectively contains:
- 0 faces
- 1 shell
- 1 solid container
Because the face count is zero, our pipeline rejects the result
as not a usable solid for downstream geometry operations.
This can occur even when earlier closure diagnostics report no open
edges after the force-closure stage.
Expected behavior
If BRepBuilderAPI_MakeSolid returns a solid object, the resulting
topology would normally represent a usable closed solid (i.e.
non-zero face topology).
Alternatively, if the shell cannot produce a valid solid, it may be
preferable for the operation to fail explicitly.
Request
Could you clarify:
-
Is this behavior expected in some situations when using
BRepBuilderAPI_MakeSolid? -
Are there recommended validation checks after
MakeSolid
before treating the result as a valid solid? -
Are there known prerequisites for STL-repaired shells before
callingMakeSolidin OCCT (particularly in wasm builds)?
Due to confidentiality we cannot share the original STL mesh,
but we can provide sanitized diagnostics and reproducible
parameter settings if helpful.