← Ecky CAD / Ecky Language Reference

REFERENCE / 03

Forms and Structure

This is top-level authoring grammar. If source feels mysterious, start here.

model

(model
  ...)
  • root form for one design
  • source must start with (model ...)
  • accepts the direct clauses listed in Complete Compiler Surface: params,

verify, part, feature, topology tags, view, and analysis

  • reusable helper defines and define-component declarations belong before

(model ...); derived values depending on model params belong in let*

part

(part body expr)
(part body "Human Label" expr)
  • positional 1: part id symbol
  • positional 2: optional display label text
  • final positional: expression producing geometry

feature

Two forms exist:

(feature body :role shell expr)
(feature body :role shell :params (width height) expr)
  • positional 1: feature id symbol
  • required keyword: :role
  • optional keyword: :params
  • final positional: expression producing geometry

Use feature when geometry needs explicit semantic identity, role, and parameter-key tracking.

build

(build
  (shape outer expr)
  (shape cavity expr)
  (result expr))
  • local binding block
  • accepts shape bindings plus one result
  • result must come once
  • do not place new shape bindings after result

shape

(shape ribs expr)

shape is not geometry op. It is bind statement inside build.

  • positional 1: local binding name
  • positional 2: expression producing value

Read it as:

  • bind intermediate value
  • give later code a name
  • keep boolean stacks readable

result

(result expr)
  • final value returned by build

assembly (planned)

Reserved shape sketch:

(model
  (assembly exploded_preview
    ...))
  • planned top-level clause for explicit multi-part assembly recipes
  • spelling reserved in book now; runtime/compiler support deferred
  • spec'd grammar reserved now; implementation deferred until views prove the display/manufacturing split
  • intended to formalize what component packages already do at the package layer
  • assemblies stay placement-based as today; no mate/joint solver implied
  • examples here mark intent only, not accepted source today
  • until implementation lands, keep physical bodies as parts, use view for preview-only offsets, and use component packages for solved assembly workflows

export (planned)

Reserved shape sketch:

(model
  (export manufacturing
    ...))
  • planned top-level clause for authored export/manufacturing policy
  • spelling reserved in book now; runtime/compiler support deferred
  • reserved until views prove the display/manufacturing split
  • preview transforms never affect STL or STEP artifacts
  • examples here mark intent only, not accepted source today
  • until implementation lands, use current export commands, artifact manifests, and package output modes outside .ecky source