docs / features / Extrude
Extrude
Status: Implemented

Extrude sweeps a closed planar profile along its plane normal: straight, two-sided, or drafted into a taper.
Walkthrough

Inputs
id– astring, defaultnull.profile– a single (multiple: false)reference_selectionfiltered toSKETCHandFACE, defaultnull.consumeProfileSketch– aboolean. Whentrue(default), removes the source sketch after a successful extrude. A face profile consumes nothing.distance– anumber: forward distance along the profile-plane normal. Default10.distanceBack– anumber: backward distance for a two-sided extrude. Default10.draftAngle– anumber: draft / taper angle in degrees.0(default) is a straight extrude; a positive angle tapers inward, giving a smaller far cap.boolean– aboolean_operation, default{ targets: [], operation: "NONE", mergeCoplanarFaces: true }.
Behaviour
- Two-sided: the profile plane is translated back by
distanceBackand the solid is swept the totaldistance + distanceBack. - Multi-region and holed profiles extrude: each region becomes a solid and hole loops become over-long through prisms that are subtracted, then the region solids union into one result.
- Draft: the outer loop gets exact drafted walls — tilted planes for
straight segments, cone patches for circular arcs, and exact conic junction edges — with
the far section as the exact in-plane miter offset (
distance · tan θ; straight segments re-intersect at the corners, arcs shrink concentrically). - Two-sided draft is the mould / parting-line form: the sketch plane is the parting plane and a positive draft tapers inward moving away from it in each direction. The two legs are unioned, and the wall-normal break leaves a real ridge edge at the sketch plane.
- Face naming, drafted or not: sidewalls are
{id}:{edgeName}_SWin input-curve order, and the caps are{id}:{sketchId}:PROFILE:L{loopId}_START(the base cap, at−distanceBack) and..._END(at+distance), one pair per region keyed by that region's outer loop identity. The un-keyed{id}:{sketchId}:PROFILE_START/_ENDis registered as the container for all of them, so a reference stored before per-loop naming still resolves. A face profile uses{id}:{faceName}as the cap base and keeps the un-keyed spelling. - A two-sided draft has one wall per leg per edge.
Limitations
Every case below is a loud error:
- a straight extrude with a total length (
distance + distanceBack) of zero. - draft + hole loops — unsupported.
- draft + a negative
distanceBack— unsupported; a two-sided draft also requires a non-negative forwarddistance. - one-sided draft + zero
distance— unsupported. - A draft offset that exceeds the local feature size, so the miter or arc intersections vanish, is a kernel error.