Appearance
Features DSL
Import
ts
import {
extrude,
plane,
revolve,
sweep,
pipe,
shell,
mirror,
deleteFace,
replaceFace,
moveFace,
moveBody,
splitBody,
splitFace,
curveIntersect,
thicken,
unwrap,
hole,
fillet,
variableFillet,
chamfer,
variableChamfer,
thread,
draft,
patternLinear,
patternCircular,
booleanOp,
} from "trueform/dsl/features";Features
extrude(id, profile, depth, result?, deps?, opts?) -> Extrudeplane(id, width, height, result?, opts?) -> Planesurface(id, profile, result?, deps?) -> Surfacerevolve(id, profile, axis, angle, result?, opts?) -> Revolveloft(id, profiles, result?, deps?, opts?) -> Loftsweep(id, profile, path, result?, deps?, opts?) -> Sweeppipe(id, axis, length, outerDiameter, innerDiameter?, result?, opts?) -> Pipeshell(id, source, thickness, result?, deps?, opts?) -> Shellmirror(id, source, plane, result?, deps?) -> MirrordeleteFace(id, source, faces, result?, deps?, opts?) -> DeleteFacereplaceFace(id, source, faces, tool, result?, deps?, opts?) -> ReplaceFacemoveFace(id, source, faces, result?, deps?, opts?) -> MoveFacemoveBody(id, source, result?, deps?, opts?) -> MoveBodysplitBody(id, source, tool, result?, deps?, opts?) -> SplitBodysplitFace(id, faces, tool, result?, deps?) -> SplitFacecurveIntersect(id, first, second, result?, deps?) -> CurveIntersect(staging)draft(id, source, faces, neutralPlane, pullDirection, angle, result?, deps?) -> Draftthicken(id, surface, thickness, result?, deps?, opts?) -> Thickenunwrap(id, source, result?, deps?, opts?) -> Unwrap(strict/default and experimental modes)thread(id, axis, length, majorDiameter, pitch, result?, deps?, opts?) -> Thread(modeled)hole(id, onFace, axis, diameter, depth, opts?) -> Holefillet(id, edges, radius, depsOrOpts?) -> FilletvariableFillet(id, source, entries, result?, deps?) -> VariableFilletchamfer(id, edges, distance, depsOrOpts?) -> ChamfervariableChamfer(id, source, entries, result?, deps?) -> VariableChamferbooleanOp(id, op, left, right, result?, deps?) -> BooleanOppatternLinear(id, origin, spacing, count, depsOrOpts?) -> PatternLinearpatternCircular(id, origin, axis, count, depsOrOpts?) -> PatternCircular
Compatibility helpers (still exported):
pipeSweep(id, path, outerDiameter, innerDiameter?, result?, opts?) -> PipeSweephexTubeSweep(id, path, outerAcrossFlats, innerAcrossFlats?, result?, opts?) -> HexTubeSweepunion(id, left, right, result?, deps?) -> BooleanOpcut(id, left, right, result?, deps?) -> BooleanOp(subtract)intersect(id, left, right, result?, deps?) -> BooleanOp
Examples:
- Extrude
- Surface
- Curve Intersect (Staging)
- Revolve
- Loft
- Sweep
- Sweep (Arbitrary Sketch)
- Pipe
- Helix Path
- Spiral Path
- Shell
- Mirror
- Move Body
- Delete Face
- Replace Face
- Move Face
- Draft
- Thicken
- Unwrap (Box Net)
- Hole
- Fillet
- Variable Fillet
- Chamfer
- Variable Chamfer
- Boolean
- Boolean Subtract
- Boolean Intersect
- Pattern
- Pattern Circular
Consolidation Notes
- Prefer
sweep+ explicitprofileCircle(...)/profilePoly(...)for path sweeps. - Prefer
booleanOp(..., "union" | "subtract" | "intersect", ...)as the canonical boolean surface. pipeSweep,hexTubeSweep,union,cut, andintersectremain as compatibility aliases.
Unwrap options (opts):
mode?: "strict" | "experimental"(default:"strict").strict: reliable templates only (single-face planar/cylindrical, full cylinder solids, axis-aligned box nets, thin-sheet solids).experimental: broader best-effort unwrap for complex multi-face/solid inputs.
Thread
Defaults use an ISO-style profile (60 deg flank angle with crest/root flats derived from pitch and minor diameter). Override profileAngle, crestFlat, or rootFlat to customize the profile.
Options (opts):
origin?: Point3DminorDiameter?: Scalarhandedness?: "right" | "left"segmentsPerTurn?: ScalarprofileAngle?: Scalar(radians)crestFlat?: ScalarrootFlat?: Scalar
Thread is a stable feature in the runtime stage registry. As with all modeled threads, validate geometry/performance on your target parts when using dense pitch or long thread lengths.