v1
geometry

Export Geometry

Export the caller's OWN working/saved geometry to STEP / IGES / STL bytes.

GATED: CAD export requires the cad_export capability (Pro) AND exports OWN-CUSTOM geometry only. The capability gate runs FIRST (before any geometry is resolved) so a non-Pro user gets a legible 402 upgrade_required rather than a 404. A CATALOG (public) component_id is NEVER the export source — only the caller's OWN custom prop or their inline working geometry. The curated propeller geometry moat thus reaches CAD bytes, not just component specs.

SYNC binary download: lofts the geometry into a watertight N-blade solid in an isolated one-shot subprocess and returns the bytes with a Content-Disposition: attachment header + the CAD MIME per format. NO response_model (raw bytes; mirrors export.csv).

Two input paths (exactly one, enforced by the serializer):

  • inline section_coords + chord/twist/radius — the primary path; the editor already holds these from /v1/geometry/generate (the user's OWN design, no DB read — allowed for a cad_export-capable user).
  • component_id — re-derives the section_coords from the saved spec_json via the deterministic generator, resolved to the caller's OWN CUSTOM prop only (a catalog/public id -> the same 404 as a foreign-private id;, anti-enumeration).

A loft that cannot close to a valid solid -> 422 geometry_not_loftable (CadExportError, never a 500). The filename is sanitized.

post/v1/geometry/export

Request

  • Base URL: https://thrustlab.com
  • URL: https://thrustlab.com/v1/geometry/export
  • Auth: HTTP bearer

Request body

chordnumber[] nullable
component_idstring nullable
diameternumber nullable

Diameter in inches

format'step' | 'iges' | 'stl'
hub_radiusnumber nullable
include_hubboolean nullable

Deprecated no-op: the hub and hub-to-root transition are always included in the exported body.

namestring nullable
num_bladesinteger
radiusnumber[] nullable

Absolute radii in meters

rotation'cw' | 'ccw' nullable
sweepnumber[] nullable
twistnumber[] nullable

Twist in degrees

Response

Successful Response

unknown required

Changes

No recorded changes to this operation across all 1 revision of this API.