← Ecky CAD / Ecky Language Reference

REFERENCE / 11

Surface and Path Signatures

extrude

  • signature: extrude profile distance
  • result: Solid
  • backend keyword:
  • :symmetric boolean

revolve

  • signature: revolve profile angle
  • result: Solid

loft

  • signature: loft distance profile1 profile2 ...
  • requires at least two profiles after distance
  • result: Solid

sweep

  • signature: sweep profile path
  • result: Solid

Example:

(model
  (part rail
    (sweep
      (circle 1.2)
      (bezier-path ((0 0 0) (0 0 12) (12 0 20) (24 0 20))))))

The circle is the cross-section. The Bézier path carries it upward, then through the bend, producing a capped solid rail.

shell

  • signature: shell thickness solid
  • result: Solid
  • optional keyword:
  • :faces selector

offset

  • signature: offset amount profile
  • result: Sketch
  • optional keyword:
  • :openings sketch-or-sketch-list

offset-rounded

  • signature: offset-rounded amount profile
  • result: Sketch
  • optional keyword:
  • :openings sketch-or-sketch-list

fillet

  • signature: fillet radius solid
  • result: Solid
  • optional keyword:
  • :edges selector

chamfer

  • signature: chamfer distance solid
  • result: Solid
  • optional keyword:
  • :edges selector

taper

  • signature: taper height scale profile
  • signature: taper height scale-x scale-y profile
  • result: Solid
  • FreeCAD caveat: non-uniform taper currently rejected

twist

  • signature: twist height angle profile
  • result: Solid
  • verifier-backed form is 3 positional args

path

  • signature: path point1 point2 ...
  • signature: path point-list
  • each point is 3D
  • result: Path

polyline

  • alias of path

bezier-path

  • signature: bezier-path point-list
  • point list must be 3D
  • result: Path

bspline

  • signature: bspline point-list
  • optional second positional in lowerers: closed
  • optional keywords:
  • :closed boolean
  • :tangents point-list
  • :tangent-scalars numeric list
  • result: Sketch

Notes:

  • verifier only requires point-list first
  • lowerers accept tangent hints
  • tangents list may use 2 entries or one per point in native path

Example:

(model
  (part body
    (extrude
      (bspline
        ((-14 -8) (-8 -14) (8 -14) (14 -8)
         (14 8) (8 14) (-8 14) (-14 8))
        :closed #t)
      4)))