Skip to content

Gear primitive, 3MF kit export, section/exploded renders (three field-tested gaps) #846

Description

@ecto

Problem (three smaller gaps, one issue)

1. Involute gear primitive. All rana gears are box-approximated teeth (tangential cubes on the root circle) transcribed from a recipe that happens to print and mesh. It works at m0.5 but is a transcription hazard: one variant shipped with blank gears (pitch cylinders, no teeth) and another brief specified ring teeth tangent to the planet root circle (0.0 clearance). gear(module, teeth, face, backlash, internal=bool) with correct involute (or documented box-approx) geometry, usable in subtraction for internal rings, would end the recipe-copying.

2. 3MF plate/kit export. The rana kits (rana-60c-kit-v6.3mf etc.) are hand-written zip archives — object XML, per-plate model_settings.config, collision-checked layout done by a project script. A vcad kit exporter: parts + plate assignments + XY placements → Bambu/Prusa-compatible 3MF, with radius-based collision/bed-bounds checking. (Field note: Bambu resaves restructure the file, so deterministic output + a "this is ours" marker helps debugging; versioned filenames saved this project twice.)

3. Section & exploded renders in vcad-render. vcad-render does isometric/orthographic line art but no cross-sections and no assemblies, so the project built a python STL rasterizer for cutaways and packs WebGL viewers by hand for exploded views. Asks: --section z=<mm>|plane=... with hatching, --assembly file.loon --explode 0.6 consuming the assembly model (see #844), and a paper/dark palette toggle. The rana build sheets and workshop site all render from shipped STLs — the renderer should be able to do this natively.

Receipts: rana 60c findings row 2 (blank gears shipped), tools/make-kit-60c.py (hand-rolled 3MF), scratch rasterizer + tools/make-buildsheet-60c.py (hand-packed WebGL), docs/rana-100c-section.svg (sections wanted badly enough to build a generator for one file).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions