No description
Find a file
Nathan Bland ce03c9e451
feat: add underside ramp reliefs to display cutout frame screw lands
Reduce side_border_mm to 2.5mm and add underside ramp reliefs from screw lands to cutout edge, thinning cutout-facing edge to 2.0mm while preserving full 4.2mm thickness at countersunk screws. Ramp reliefs limited to cutout width to maintain full-thickness side border rails. Update design_spec.md with cutout_edge_thickness_mm and ramp_full_land_y_mm parameters, decision log entries, and corrected outer X dimension (44.0mm). Regenerate assembly
2026-05-01 20:56:52 -06:00
.windsurf/rules docs: add design specification template and mandate design_spec.md for multi-part assemblies 2026-04-01 15:14:06 -06:00
assemblies feat: add parametric shape die with 2-filament press-fit inlays 2026-04-19 19:51:51 -06:00
cable-fastener feat: add left/right cable direction variants with 90-degree elbow geometry 2026-05-01 10:33:20 -06:00
display-cutout-frame feat: add underside ramp reliefs to display cutout frame screw lands 2026-05-01 20:56:52 -06:00
dist feat: add exported STL and PNG artifacts for shape die body 2026-04-19 19:54:57 -06:00
exteranl-docs docs: add OpenSCAD design rules and AI agent guidelines 2026-03-24 15:44:54 -06:00
led-ring-bosl2 docs: add OpenSCAD design rules and AI agent guidelines 2026-03-24 15:44:54 -06:00
lib docs: add OpenSCAD design rules and AI agent guidelines 2026-03-24 15:44:54 -06:00
parts feat: add parametric shape die with 2-filament press-fit inlays 2026-04-19 19:51:51 -06:00
ram-ball-adapter adjust counter bore size 2026-03-27 13:20:04 -06:00
scripts docs: add Bash export script and update documentation for cross-platform support 2026-03-24 21:22:03 -06:00
slide-scanner docs: add OpenSCAD design rules and AI agent guidelines 2026-03-24 15:44:54 -06:00
tools docs: add OpenSCAD design rules and AI agent guidelines 2026-03-24 15:44:54 -06:00
toys/wheelbarrow docs: add OpenSCAD design rules and AI agent guidelines 2026-03-24 15:44:54 -06:00
.gitignore Add parametric cable fastener variants 2026-04-27 12:41:03 -06:00
AGENTS.md docs: add design specification template and mandate design_spec.md for multi-part assemblies 2026-04-01 15:14:06 -06:00
battery-box.scad docs: add OpenSCAD design rules and AI agent guidelines 2026-03-24 15:44:54 -06:00
Gridfinity_Parametric_Integration_Guide.md docs: add OpenSCAD design rules and AI agent guidelines 2026-03-24 15:44:54 -06:00
Joel card box.scad docs: add OpenSCAD design rules and AI agent guidelines 2026-03-24 15:44:54 -06:00
led-strip-ring-holder-single-v1.1.stl docs: add OpenSCAD design rules and AI agent guidelines 2026-03-24 15:44:54 -06:00
led-strip-ring-holder-single-v1.2.stl docs: add OpenSCAD design rules and AI agent guidelines 2026-03-24 15:44:54 -06:00
led-strip-ring-holder-single-v1.3.stl docs: add OpenSCAD design rules and AI agent guidelines 2026-03-24 15:44:54 -06:00
led-strip-ring-holder-single-v1.4.stl docs: add OpenSCAD design rules and AI agent guidelines 2026-03-24 15:44:54 -06:00
led-strip-ring-holder-single-v1.5.stl docs: add OpenSCAD design rules and AI agent guidelines 2026-03-24 15:44:54 -06:00
led-strip-ring-holder-single-v1.6.stl docs: add OpenSCAD design rules and AI agent guidelines 2026-03-24 15:44:54 -06:00
led-strip-ring-holder-single-v1.7.stl docs: add OpenSCAD design rules and AI agent guidelines 2026-03-24 15:44:54 -06:00
led-strip-ring-holder-single-v1.8-single.stl docs: add OpenSCAD design rules and AI agent guidelines 2026-03-24 15:44:54 -06:00
led-strip-ring-holder-single-v1.8.3mf docs: add OpenSCAD design rules and AI agent guidelines 2026-03-24 15:44:54 -06:00
led-strip-ring-holder-single-v1.8.stl docs: add OpenSCAD design rules and AI agent guidelines 2026-03-24 15:44:54 -06:00
led-strip-ring-holder-single-v1.stl docs: add OpenSCAD design rules and AI agent guidelines 2026-03-24 15:44:54 -06:00
led-strip-ring-holder-v1-backup.scad docs: add OpenSCAD design rules and AI agent guidelines 2026-03-24 15:44:54 -06:00
led-strip-ring-holder.scad docs: add OpenSCAD design rules and AI agent guidelines 2026-03-24 15:44:54 -06:00
letters.3mf docs: add OpenSCAD design rules and AI agent guidelines 2026-03-24 15:44:54 -06:00
monarch-holder.scad docs: add OpenSCAD design rules and AI agent guidelines 2026-03-24 15:44:54 -06:00
obj_3_Object_1.stl docs: add OpenSCAD design rules and AI agent guidelines 2026-03-24 15:44:54 -06:00
OpenGrid_Parametric_Integration_Guide.md docs: add OpenSCAD design rules and AI agent guidelines 2026-03-24 15:44:54 -06:00
OpenGrid_vs_Gridfinity_Comparison.md docs: add OpenSCAD design rules and AI agent guidelines 2026-03-24 15:44:54 -06:00
OpenSCAD_Parametric_Design_Guide.md docs: add OpenSCAD design rules and AI agent guidelines 2026-03-24 15:44:54 -06:00
README.md docs: add Bash export script and update documentation for cross-platform support 2026-03-24 21:22:03 -06:00
starlink-mini-base.scad docs: add OpenSCAD design rules and AI agent guidelines 2026-03-24 15:44:54 -06:00
starlink-mini-geometry.md docs: add OpenSCAD design rules and AI agent guidelines 2026-03-24 15:44:54 -06:00
starlink-mini-stl-viewer.scad docs: add OpenSCAD design rules and AI agent guidelines 2026-03-24 15:44:54 -06:00
starlink-mount-spacers.scad docs: add OpenSCAD design rules and AI agent guidelines 2026-03-24 15:44:54 -06:00
Starlink_Mini-reference-design.stl docs: add OpenSCAD design rules and AI agent guidelines 2026-03-24 15:44:54 -06:00

3D Print Design Files

A parametric OpenSCAD repository of 3D-printable parts, assemblies, and tooling. All parts are designed for FDM printing and follow a consistent parametric standard for reproducibility and easy remixing.


Requirements

Required

  • OpenSCAD (latest stable) — 3D modeling and STL/PNG export

    • Must be available on PATH, or supply -OpenSCADExe to the export script
    • Batch export scripts are provided for both PowerShell and Bash
  • BOSL2 — used by several parts (LED ring, RAM ball adapter, etc.)

    • Install to your OpenSCAD libraries folder (e.g., Documents\OpenSCAD\libraries\BOSL2)
    • Or pass the path explicitly via -IncludePath / --include-path when running an export script

Optional

  • ADMesh — STL mesh repair and conversion
  • ImageMagick — contact sheet generation from exported PNGs
  • FreeCAD — re-export DXF files for sheet-metal workflows

Setup

  1. Clone or copy this repository to your local machine.

  2. Install OpenSCAD and verify it is on your PATH:

    openscad --version
    
  3. Install BOSL2 by cloning it into your OpenSCAD libraries directory:

    git clone https://github.com/BelfrySCAD/BOSL2.git "$env:USERPROFILE\Documents\OpenSCAD\libraries\BOSL2"
    
  4. Verify the export script works on a simple part:

    powershell -ExecutionPolicy Bypass -File scripts\openscad_export.ps1 `
      -Scad .\parts\universal\insert_bar.scad `
      -Export png `
      -HQ
    
    ./scripts/openscad_export.sh \
      --scad ./parts/universal/insert_bar.scad \
      --export png \
      --hq
    

    Output appears in dist/.


Repository Structure

.
├── AGENTS.md                          # AI agent rules and design standards
├── README.md                          # This file
├── OpenSCAD_Parametric_Design_Guide.md
├── Gridfinity_Parametric_Integration_Guide.md
├── OpenGrid_Parametric_Integration_Guide.md
├── OpenGrid_vs_Gridfinity_Comparison.md
│
├── parts/
│   ├── universal/                     # Reusable, project-agnostic parts
│   │   ├── insert_bar.scad            # Cylindrical bar with heat-set insert cavities
│   │   ├── l_bracket.scad             # Parametric L-bracket (132 mm wide, counterbored holes)
│   │   ├── platform.scad              # Platform to mate with L-bracket
│   │   └── letter_tiles.scad          # 19.05×19.05 mm letter tiles with recessed text
│   ├── adapters/
│   │   └── opengrid_gridfinity_adapter.scad  # OpenGrid ↔ Gridfinity cross-system adapter
│   ├── fasteners/
│   │   └── 6-32_flat_head_screw.scad  # #6-32 countersunk screw vitamin model
│   ├── gridfinity/
│   │   └── baseplate_template.scad    # Parametric Gridfinity baseplate starter
│   ├── mounts/
│   │   └── mac_mini_monitor_mount.scad
│   └── starlink_mini_cavity_top_mount.scad
│
├── assemblies/
│   └── universal_l_t_assembly.scad    # L-bracket + T-platform composed assembly
│
├── lib/
│   └── gridfinity.scad                # Shared Gridfinity constants and helpers
│
├── tools/
│   ├── mirror_corner_protector.scad   # Right-triangle tape-on corner protector
│   └── starlink-mini-tray-holder/
│
├── led-ring-bosl2/                    # BOSL2 LED ring project (1295 mm centerline radius)
│   ├── main.scad
│   ├── parts/
│   ├── assemblies/
│   └── lib/
│
├── ram-ball-adapter/                  # RAM 1.5" ball ↔ 1/4"-20 female thread adapter
│   ├── main.scad
│   ├── parts/
│   └── lib/
│
├── slide-scanner/
│   └── slider.scad                    # 35mm slide scanner carriage and frame
│
├── scripts/
│   ├── openscad_export.ps1            # Windows PowerShell batch exporter
│   ├── openscad_export.sh             # macOS/Linux Bash batch exporter
│   └── openscad_export.md             # Export script documentation
│
└── dist/                              # Generated STL / 3MF / PNG artifacts (gitignore-able)

Workflows

Open and Preview a Part

Open any .scad file directly in OpenSCAD. All files default to export_mode = "preview" which renders a preview scene. Press F5 for fast preview, F6 for full render.

Export a Single Part (STL + PNG)

powershell -ExecutionPolicy Bypass -File scripts\openscad_export.ps1 `
  -Scad .\parts\universal\l_bracket.scad `
  -Export stl,png `
  -HQ
./scripts/openscad_export.sh \
  --scad ./parts/universal/l_bracket.scad \
  --export stl,png \
  --hq

Export Multiple Named Modes

powershell -ExecutionPolicy Bypass -File scripts\openscad_export.ps1 `
  -Scad .\parts\universal\letter_tiles.scad `
  -Export stl `
  -HQ `
  -Modes preview,tiles,inlays `
  -ModeVar export_mode
./scripts/openscad_export.sh \
  --scad ./parts/universal/letter_tiles.scad \
  --export stl \
  --hq \
  --modes preview,tiles,inlays \
  --mode-var export_mode

Export Segmented Parts (e.g., LED Ring)

powershell -ExecutionPolicy Bypass -File scripts\openscad_export.ps1 `
  -Scad .\led-ring-bosl2\main.scad `
  -Segments 12 `
  -Export stl `
  -HQ `
  -IncludePath "$env:USERPROFILE\Documents\OpenSCAD\libraries"
./scripts/openscad_export.sh \
  --scad ./led-ring-bosl2/main.scad \
  --segments 12 \
  --export stl \
  --hq \
  --include-path "$HOME/Documents/OpenSCAD/libraries"

Pass Additional Defines

powershell -ExecutionPolicy Bypass -File scripts\openscad_export.ps1 `
  -Scad .\main.scad `
  -Export stl `
  -HQ `
  -Define 'split_enable=true' 'segments=6'
./scripts/openscad_export.sh \
  --scad ./main.scad \
  --export stl \
  --hq \
  --define 'split_enable=true' \
  --define 'segments=6'

Export Orthographic Technical PNG

powershell -ExecutionPolicy Bypass -File scripts\openscad_export.ps1 `
  -Scad .\parts\universal\platform.scad `
  -Export png `
  -HQ `
  -Ortho `
  -ImgSize "2400,1800"
./scripts/openscad_export.sh \
  --scad ./parts/universal/platform.scad \
  --export png \
  --hq \
  --ortho \
  --imgsize 2400,1800

Build a PNG Contact Sheet

./scripts/openscad_export.sh \
  --scad ./starlink-mini-mount.scad \
  --export png \
  --modes preview,crossbar,bracket,platform,receiver,mount,assembly \
  --mode-var export_mode \
  --contact-sheet starlink-mini-mount-sheet.png

Add a New Part

  1. Create a new .scad file under the appropriate parts/ subfolder.
  2. Start with the minimum parametric standard block (resolution, eps, manufacturing params, toggles).
  3. Define all dimensions as named constants with _mm / _deg suffixes.
  4. Build geometry 2D-first, then extrude.
  5. Add an export_mode harness at the bottom.
  6. Export with scripts/openscad_export.ps1 -HQ (Windows) or scripts/openscad_export.sh --hq (macOS/Linux) and place outputs in dist/.

Design Standards

All parts in this repo follow the rules in AGENTS.md. Key points:

  • All units in millimeters; variable names suffixed with unit (diameter_mm, angle_deg).
  • No magic numbers — every dimension is a named constant.
  • 2D-first modeling with linear_extrude() / rotate_extrude().
  • eps = 0.01 used in all boolean operations to prevent coincident faces.
  • $fn = 0; curvature controlled via $fs / $fa (coarse for preview, fine for export).
  • Export harness in every file keyed on export_mode.
  • All generated artifacts in dist/.

Guides

Guide Purpose
OpenSCAD_Parametric_Design_Guide.md Full parametric rules, patterns, snippets, export checklist
Gridfinity_Parametric_Integration_Guide.md Gridfinity spec, OpenSCAD helpers, cross-compat with OpenGrid
OpenGrid_Parametric_Integration_Guide.md OpenGrid spec, snap system, modeling helpers
OpenGrid_vs_Gridfinity_Comparison.md Quick-reference alignment, pitfalls, 84 mm LCM
scripts/openscad_export.md Full export script parameter reference and examples

Notes

  • dist/ contains generated artifacts and can be added to .gitignore if preferred, or committed for reference.
  • Large STL reference files (e.g., Starlink_Mini-reference-design.stl) are used as vitamin overlays for fit verification and are not printed parts.
  • Parts in toys/ are one-off experiments and may not follow the full parametric standard.