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 |
||
|---|---|---|
| .windsurf/rules | ||
| assemblies | ||
| cable-fastener | ||
| display-cutout-frame | ||
| dist | ||
| exteranl-docs | ||
| led-ring-bosl2 | ||
| lib | ||
| parts | ||
| ram-ball-adapter | ||
| scripts | ||
| slide-scanner | ||
| tools | ||
| toys/wheelbarrow | ||
| .gitignore | ||
| AGENTS.md | ||
| battery-box.scad | ||
| Gridfinity_Parametric_Integration_Guide.md | ||
| Joel card box.scad | ||
| led-strip-ring-holder-single-v1.1.stl | ||
| led-strip-ring-holder-single-v1.2.stl | ||
| led-strip-ring-holder-single-v1.3.stl | ||
| led-strip-ring-holder-single-v1.4.stl | ||
| led-strip-ring-holder-single-v1.5.stl | ||
| led-strip-ring-holder-single-v1.6.stl | ||
| led-strip-ring-holder-single-v1.7.stl | ||
| led-strip-ring-holder-single-v1.8-single.stl | ||
| led-strip-ring-holder-single-v1.8.3mf | ||
| led-strip-ring-holder-single-v1.8.stl | ||
| led-strip-ring-holder-single-v1.stl | ||
| led-strip-ring-holder-v1-backup.scad | ||
| led-strip-ring-holder.scad | ||
| letters.3mf | ||
| monarch-holder.scad | ||
| obj_3_Object_1.stl | ||
| OpenGrid_Parametric_Integration_Guide.md | ||
| OpenGrid_vs_Gridfinity_Comparison.md | ||
| OpenSCAD_Parametric_Design_Guide.md | ||
| README.md | ||
| starlink-mini-base.scad | ||
| starlink-mini-geometry.md | ||
| starlink-mini-stl-viewer.scad | ||
| starlink-mount-spacers.scad | ||
| Starlink_Mini-reference-design.stl | ||
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-OpenSCADExeto the export script - Batch export scripts are provided for both PowerShell and Bash
- Must be available on
-
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-pathwhen running an export script
- Install to your OpenSCAD libraries folder (e.g.,
Optional
- ADMesh — STL mesh repair and conversion
- ImageMagick — contact sheet generation from exported PNGs
- FreeCAD — re-export DXF files for sheet-metal workflows
Setup
-
Clone or copy this repository to your local machine.
-
Install OpenSCAD and verify it is on your PATH:
openscad --version -
Install BOSL2 by cloning it into your OpenSCAD libraries directory:
git clone https://github.com/BelfrySCAD/BOSL2.git "$env:USERPROFILE\Documents\OpenSCAD\libraries\BOSL2" -
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 \ --hqOutput 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
- Create a new
.scadfile under the appropriateparts/subfolder. - Start with the minimum parametric standard block (resolution, eps, manufacturing params, toggles).
- Define all dimensions as named constants with
_mm/_degsuffixes. - Build geometry 2D-first, then extrude.
- Add an
export_modeharness at the bottom. - Export with
scripts/openscad_export.ps1 -HQ(Windows) orscripts/openscad_export.sh --hq(macOS/Linux) and place outputs indist/.
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.01used 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.gitignoreif 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.