# NativeCAD 0.28.0 "Herreweghe" — generative workflows, class-A surfacing and continuity, wider interop, lightweight assemblies, references that hold

**192 tools (187 in 0.27.0): `cad_gen`, `cad_feature_tree_simplify`, `cad_fair_surface`, `cad_shape_reflection_lines` and `cad_glass_weave` are new. The command schema moves 1.71.0 → 1.82.0, and every 1.71.0 document validates unchanged.** Installs on 0.17.2 and later pick this release up through the self-update.

* **`cad_gen` runs engineering workflows as recipes or pipelines.** The recipes are laminate, layup, FEA case, mesh grading, outgoing gate, mass budget, cost, mechanism sizing, aero envelope and hand-off package. Each recipe describes its own parameters, and a pipeline step can feed the next.
* **`cad_feature_tree_simplify`** finds the tree of plates, struts and gussets with the fewest faces that still meets a stiffness and stress goal in every load case. A long search runs as a job.
* **Class-A surfacing and continuity:**
  * `cad_fair_surface` fairs a B-spline face while holding G0, G1 or G2 to its neighbours within a deviation bound.
  * `cad_shape_reflection_lines` straightens or evens out its zebra and highlight lines.
  * Crease and curvature measurements are now exact, and curvature combs use analytic derivatives.
  * Kinked edge curves are flagged the way Parasolid would split them.
  * `cad_save` and the handoff gate catch G1 creases.
  * `cad_crease_repair` predicts how many pieces a split makes before cutting, and now handles trimmed, holed and seamed faces.
  * Fill-patch corners and three-blend vertices close at G2.
* **`cad_glass_weave`** builds a woven-glass laminate cell, one body per yarn and resin, and meshes it as one conformal tet mesh.
* **Lightweight assemblies.** `cad_assembly_import mode:"lightweight"` opens a 37.8 MB, 2,955-instance engine in about 0.35 s and 44 MB, down from 2.0 s and 376 MB.
  * Parts load only when a call touches them.
  * Clash and contact checks test proxies first.
  * The view streams part by part.
* **`cad_assembly_mate`** takes every face, edge, point and datum class.
* **References that hold.** Faces and edges can be referenced with a split policy (`all`, `largest`, `closest-to-witness`). `cad_feature_edit` re-binds a lost reference, and names survive a STEP export and re-import.
* **Sheet metal:** closed and rolled hems, lofted bends (square-to-round), swept flanges along curved edges, and dimple, bead and louvre forming tools.
* **Sweeps:**
  * Helix tube sweeps can be conical, variable-pitch or planar spirals.
  * `cad_sweep_profile` routes 3-D paths automatically.
* **`cad_move_face` keeps related faces together.** `cad_body_topology` lists relations such as coaxial, tangent and symmetric, and `cad_move_face` can carry the related faces along.
* **Wind tunnel:** transient rotor runs go as background jobs with per-revolution progress, and forward flight is supported.
* **Interop:**
  * **New formats:** Rhino 1.x and SubD-only files, 1989-draft and CSG/AP227 STEP, Open CASCADE `.brep`, FreeCAD `.FCStd`, and JT 8/10 meshes. JT assemblies now come in placed.
  * **Files that open now:** more Parasolid, SolidWorks, NX, Creo, ACIS and Inventor files that used to be refused. IGES files that imported empty or inside out now come in as solids, and a large IGES file imports in 87 s instead of 412 s.
  * **Named refusals:** empty STEP files are named for what they hold.
  * **Heal on import:** mis-wound bounds are healed as files are imported.
  * **Export:** STEP writes typed measures correctly and carries ISO 286 fits as AP242 PMI. Parasolid headers match genuine files. IFC keeps partial tori readable in ifcopenshell.
  * **Checked against other readers:** every export format is checked against independent readers (OCCT, ParaView, lib3mf, ifcopenshell, USD, ezdxf, the glTF validator). STEP passes OCCT on 25 of 25 parts.
* **Faster:** threaded bolt booleans run about 2× faster, and glb/USD export of big curved faces about 5× faster.
* **Safer results:**
  * A boolean with a flipped operand face, or a chamfer or fillet cut short by its time budget, is now refused instead of returned.
  * Heal never leaves a clean body worse.
* **`cad_report_bug`** can attach the file that would not load, opt-in. It shows you the exact bytes first and sends nothing until you confirm.
* **Drawings:** automatic detail views for small features, jogged radii, and ISO 286 fits as semantic PMI.
