Shape On request

Change a solid's shape and get a closed, valid solid back.

Cut a solid by a plane into two closed halves, combine two solids by union, intersection or difference, hollow a part to a wall thickness with drain holes, remove small holes, pockets, bosses and text before meshing, or split a solid into convex parts, as for collision detection.

The shape module is granted on request, free for non-commercial use; see access and licensing.

Three views of a punched plate: as exported, with small holes removed, and with larger holes removed.
A punched plate as exported (left), with holes up to 10 across removed (middle), and up to 20 (right).
A nut crank, and the same part hollowed and cut open to show its shell.
A nut crank (left), hollowed to a wall of 1 with a drain hole, then cut open to show the shell (right).

Commands

betti shape cut

Cut a solid by a plane into two closed solids.

betti shape cut -plane z=10 part.stl below.obj above.obj

betti shape boolean

Combine two solids.

betti shape boolean union a.stl b.stl ab.obj

betti shape offset

The surface at a distance outside or inside a solid.

betti shape offset -distance 2 part.stl outer.obj

betti shape hollow

Hollow a solid out to a shell, with drain holes.

betti shape hollow -wall 2 -drain 0,0,0,3 part.stl hollow.3mf

betti shape defeature

Remove small holes, pockets, bosses and text.

betti shape defeature -size 2 part.stl plain.obj

betti shape decompose

Split a solid into convex hulls, as for collision detection.

betti shape decompose part.stl hulls.obj