REFERENCE / 13
Special / Custom Operations
These operations cover grouping, incomplete geometry, threads, and sampled surfaces.
hole
Typed placeholder op. Use to mark missing geometry intentionally.
- signature:
hole :type kind - signature:
hole :type kind :goal "why this hole exists" - required keyword:
:type- optional keyword:
:goal
Allowed :type values:
solidsketchpathshape
Current behavior:
- compiler accepts it as typed placeholder
- lowerers reject it until replaced with real geometry
compound
- signature:
compound shape1 shape2 ... - groups shapes without boolean merge semantics
helical-ridge
Keyword-only thread-like ridge generator.
- required keywords:
:radius:pitch:height:base-width:crest-width:depth- optional keywords:
:female:clearance:lefthand
Example:
(helical-ridge
:radius 10
:pitch 2
:height 18
:base-width 1.2
:crest-width 0.4
:depth 0.7
:female #t
:clearance 0.15
:lefthand #t)sampled-radial-loft
Sample radial sections along Z and join them into a loft. :radius is evaluated at each sample using the three bound coordinates.
(sampled-radial-loft
(theta z fz)
:height 40
:z-steps 6
:theta-steps 24
:radius expr
:z-map expr)- binder list must be exactly
(theta z fz) - required keywords:
:height:z-steps:theta-steps:radius- optional keyword:
:z-map
wall-pattern
Apply a procedural mesh pattern to a supported shell or solid surface.
Example call:
(wall-pattern
(:mode gyroid :depth 0.6 :uFreq 4 :vFreq 5 :phase 0.2)
shape)Options:
:mode:depth:uFreq:vFreq:phase
Modes include:
gyroidcellularfbmribs
Backend caveat:
- native OCCT handles BREP operations;
wall-patternremains mesh-only
surface-trim
Trim an imported triangle mesh along an anchored loop. This is the source form written by the surface-trim tool; anchors must refer to the exact imported mesh.
(surface-trim
(import-stl path)
:schema-version 1
:source-digest digest
:loop (anchor-a anchor-b anchor-c)
:keep-seed anchor-inside
:path-mode "shortest"
:cap "open")This is a fragment. path and digest identify the source mesh. Each anchor has the form (mesh-anchor triangle-index b0 b1 b2): one triangle index and three barycentric weights. The loop requires at least three anchors; keep-seed selects the region to retain.
All six keywords are required. :path-mode accepts "shortest" or "feature". :cap accepts "open", "flat", or "surface-fill". Use the app's mesh selection tools to create anchors; editing triangle indices after replacing the source mesh invalidates their meaning.