Skip to content
ngallodev-softwarePublic

About

No description or website provided.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Rocket Tooling Designer

Parametric rocket-tooling drawings and manufacturing export bundles in the browser, backed by one shared geometry model for preview and CAD generation.

Live: https://ngallodev-software.uk/rts/
Case study: https://ngallodev-software.uk/projects/rts
Export verification: docs/export-verification-checklist.md

Original-work attribution

Original Rocket Tool Sketcher — Nicolaj: original project at ma.dk/rts (historical Flash/Windows application). The archived SWF contains the project URL, a nicolaj@ma.dk contact, and an authoring path under Nicolaj, supporting credit to Nicolaj. His surname is not verified by the surviving source; this deliberately preserves the evidenced name without inventing a surname. The original design and tooling formulas are credited to their original author. Rocket Tooling Designer is an independent browser/CAD adaptation, not an original invention of those formulas.

The original Flash and Windows distributions remain available in Historical tools for attribution and reference.

Summary

  • What it is: a browser tool for designing rocket spindle/rammer tooling from tube dimensions and manufacturing tolerances.
  • What it produces: an annotated preview plus DXF, STEP, STL, OpenSCAD, PDF, and JSON manufacturing/review artifacts.
  • Key design choice: the browser and export service share the same validated geometry model, so preview and generated artifacts are derived from one source of truth.
  • Deployment boundary: interactive design stays in the web UI; CAD generation runs behind the application boundary in the internal Python export service.

Rocket Tooling Designer adapts the original rockettoolsketcher.swf as a browser application while preserving the underlying tooling formulas and making the same validated geometry available to manufacturing exports. The browser handles interactive sizing and review; an internal Python service produces DXF, STEP, STL, OpenSCAD, PDF, and manifest artifacts.

tube + tolerances
      |
      v
validated shared geometry
   |               |
   v               v
browser drawing   internal export service
                      |
                      v
            CAD / PDF / JSON bundle
                      |
                      v
               export verification

Current scope

  • Supports a Custom mode with editable A-I dimensions.
  • Includes the baked-in preset g dimensions for some common device types matching the original flash app.
  • Uses one shared spindle and rammer geometry model for the browser preview and export work.
  • Preserves the original Flash and Windows tools on a clearly marked Historical Tools page, with self-hosted Ruffle playback for the SWF.
  • Generates manufacturing exports from Python:
    • combined clean as well as separate, per-part DXF files and / or annotated DXF files
    • combined and individual STEP and STL 3D models
    • generated parametric OpenSCAD script
    • JSON manifest of the exact derived dimensions

Run the app

npm install

Start both the browser app and export service:

npm run start

The browser will report its local address when it is ready. The development server forwards export requests to the local export service at http://127.0.0.1:8791.

For separate processes, run npm run export:server and npm run dev in different terminals.

Build the app

npm run build

Browser sanity test

After building the app for the /rts/ base path, run:

VITE_BASE_PATH=/rts/ npm run build
npx playwright test

The test uses locally installed Google Chrome and checks that the designer renders, navigation reaches the export view, and the manifest export button issues the scoped /rts/api/export request.

Generate CAD exports

Example using a baked-in preset:

python -m rts_export.cli --preset bp-core-burner --tube-id 0.75 --output exports/bp-core-burner-075

List presets:

python -m rts_export.cli --list-presets

Example using fully custom A-I values:

python -m rts_export.cli --preset custom --output exports/custom ^
  --a 0.75 --b 6 --c 2.5 --d 0.375 --e 1.5 --f 0.413 --g 30 --h 3 --i 0

Export notes

  • The baseline export assumption currently matches the working interpretation used in the refactored geometry model:
    • E from axis
    • G from shoulder face
    • I from face
    • do-not-pass groove modeled as a shallow V-groove
  • The generated DXFs use separate layers for visible profiles, hidden bores, centerlines, dimensions, and text.
  • The default tooling-set.dxf is the import-friendly geometry sheet. tooling-set-annotated.dxf carries the dimensions and titles.
  • STEP, STL, and generated OpenSCAD geometry are written with CAD-interchange scaling in mind. If inputs are inches, the exported 3D geometry is scaled to millimeters.
  • The OpenSCAD output is intended to stay editable by changing the input values at the top of the file.

Export verification

The release gate is [docs/export-verification-checklist.md] Generate a canonical export and run:

python scripts/verify_exports.py exports/core-burner-075-layout-v110

The verifier audits every DXF, checks embedded annotation-zone separation, validates component versions and artifact counts, validates the four-page PDF, and renders its pages for visual review. Automated checks supplement, rather than replace, the Solid Edge/Fusion 360 and rendered-page inspections in the checklist.

Version addendum

Component versions are maintained in [version-manifest.json], embedded in tooling-set.json, copied into every export directory, and included in every download ZIP.

Release 1.0.0 - version baseline

  • Assigned independent 1.0.0 versions to the web UI, export API, geometry model, clean DXF, annotated DXF, annotated PDF, STEP, STL, OpenSCAD, tooling manifest, and verification harness.
  • This release records the accepted functional baseline; it does not claim that earlier prototypes had equivalent release quality.

Release 1.1.0 - annotated DXF zone isolation

  • Changed only the combined annotated-DXF layout behavior; dxf_annotated is now 1.1.0.
  • Replaced fixed part spacing with measured annotation envelopes for the spindle, each rammer, and the overview/table.
  • Intended improvement: a part's title, notes, dimensions, leaders, and geometry cannot overlap or obscure the neighboring part's zone when note content grows.
  • Added invisible RTS_QA zone metadata so the saved DXF can be checked independently by the verifier.
  • Added the permanent export checklist and automated verifier. Geometry formulas and clean DXF, PDF, STEP, STL, and OpenSCAD generation were not intentionally changed in this release.

About

No description or website provided.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages