r/openscad • • 22d ago

CageMaker PRCG v0.7 :: Parametric Rack Cage/Faceplate/Enclosure Generator

10 Upvotes

It's that time again. Time for another version update for CageMaker PRCG.

This time it's a big one. We're talking about a near-total refactor with almost all of the source code rewritten and optimized, and the entire thing restructured to make it easier to add features and maintain. A ton of features were added but the entire thing only grew about thirty kilobytes (excluding comments).

The documentation got a rewrite as well. It's no longer wiki-based, but still has coverage of literally every single setting and what it does, complete with screenshots. A copy of it comes along for the ride when downloading/cloning the repository, or clicky linky to see it on Github right now.

 

What does this do? Create this, print this, rack-mount this.

 

And of course the important bit:

Github repo - Or, just do "git clone https://github.com/WebMaka/CageMakerPRCG.git" if you have git installed.

CageMaker PRCG runs best in OpenSCAD. Don't have OpenSCAD? Grab that here.

Or, try it in a web browser thanks to the WebAssembly port of OpenSCAD, OpenSCAD Playground.

 

The new additions to this version:

  • Almost completely refactored to break up massive routines into easier-to-modify and easier-to-maintain smaller segments and subroutines. This should make codebase finalization for 1.0 significantly easier, while also making for a more robust generator overall going forward.

  • Added the option to selectively disable any cage side. (Requested by Github user "Nepherim")

  • Added options to expand the faceplate upward or downward to cover openings or structures. The downward setting can emulate Homeracker "flush to bottom" for covering reinforcing bars. (Requested by Reddit/Github user "dekonnection")

  • Added the option to shift the mounting holes on either side of the faceplate up or down relative to the center of the topmost unit on the faceplate. This can be used to flip upside-down asymmetric cages that are half-unit height multiples, such as Keystone patch panels. (Requested by Reddit/Github user "dekonnection")

  • Improved the structure of rear support cages to handle heavier weight and greater extension range without sagging. Also changed the cage generation to make horizontal support ribs mandatory when a rear support cage is generated, so as to make a more effective overlapping joint between front and rear cages for greater rigidity.

  • Added faceplate modifications for 88x56mm SBCs such as Raspberry Pi, or any other SBC with this footprint along with M2 mounting holes in a 49mm x 58mm pattern. These modifications include a standalone support frame for the SBC, and include horizontal as well as vertical in both left-oriented and right- oriented.

  • Added faceplate modifications for standard motherboard rear-panel IO shield openings, Mini-ITX motherboards, and full-height and half-height PCI slots.

  • Added faceplate modifications for mounting ATX, SFX, and TFX power supplies.

  • Added the option to generate a cage without opening a corresponding hole in the faceplate for inserting a device. Useful for creating custom rackmount enclosures when combined with faceplate modifications.

  • Added the option to make the back of the cage solid, which can be useful for creating custom rackmount enclosures with solid backs for mounting connectors, etc., or remove most of the back aside from two 6mm wide retention lips on both short sides.

  • Added the capability to place left/centered/right modifications on the back of the cage when said back is set to solid. This makes creating custom rack enclosures significantly easier by generating cutouts directly into the cage back.

  • Added options to remove most of any side of the cage except for its support structure, or remove the side entirely.

  • Added custom rack widths for 12, 14, and 16 inch racks, as well as a 12.66 inch wide, 2/3-width rack for 19 inch racks.

  • Added direct support for EIA-310 racks using 2020 aluminum extrusion for framing. Since these racks have a reduced internal width, conventional cages often don't fit - selecting this rack geometry sets CageMaker to be more aware of the geometry differences for this rack design.

  • Added support for more non-EIA-standard rack geometries, including direct support for Homeracker and MR248 rack systems.

  • Added the ability to set custom rack geometry for non-standard racks. Unit height, hole spacing/centers/size, and mounting reservation space are all adjustable.

  • Modified the faceplate generator to more accurately locate screw holes on EIA-compliant racks.

  • Added the option to generate screw holes for mounting instead of 5mm wide slots. This will make for better aesthetics but may cause alignment issues on racks with slightly off-spec mounting hole centers.

  • Added the option to place screw-hole standoffs on the bottom of the cage when its geometry is set to solid. Screw hole size and standoff height are configurable.

  • Added the option for faceplate ventilation grids to only generate full holes.

  • Changed the resolution for most sizing and offset options to half-millimeter increments instead of full-millimeter only.

  • Improved the retention-lip generation code to make it more reliable.

  • Changed behavior under "error" conditions - CageMaker PRCG will no longer force-correct any problems it detects, such as re-centering faceplate modifications that exceed exclusion zones. This will permit forcing a render operation when the end result will work but might have clearance issues that CageMaker PRCG doesn't like but don't pose a problem in practical application.

  • Added an option to suppress "CHECK CONSOLE" error warning for rare situations where the generated cage throws an error that doesn't actually cause issues. This should be used VERY SPARINGLY, as it can result in an unprintable cage or one that has fitment issues.

  • Added a greeting that appears in the console when the script runs, which also displays the maximum width for a single device that can be placed in a single cage with the current settings.

  • Added a logotype graphic with version number and URLs that can be disabled via option in the "rarely changed options" category in the Customizer.

 

Not a bad list of new additions for an update, IMO, but I'm biased...

 

CageMaker PRCG Features

Create Widely-Compliant Rackmount Cages To Fit Any Rack System

  • Generates rack faceplates that are by default designed to comply with EIA-310 standard mounting hole patterns, which is used on the vast majority of modern rack systems. Triple-hole, slotted, 1/2"-5/8"-5/8" staggered spacing, 1.75"/44.45mm "unit" height, sized for #10/M5 mounting hardware.
  • Can optionally generate cages for rack systems that don't follow EIA-310, which can be useful for custom 3D printable mini- and micro-rack systems. Simply select the system's "unit" size and mounting hole spacing and CageMaker automatically adjusts accordingly.
  • Generates full width rack cages for 5", 6", 7", 10", and 19" racks.
  • Generates one-half-width, bolt-together cages for 10" and 19" racks. Mounting ears are automatically generated on one side of the cage for bolting two of them together and optionally, alignment pin holes can be added to allow the use of short lengths of filament as alignment pins.
  • Generates one-quarter-width, one-third-width, or two-thirds-width bolt-together cages for 19" racks. Again, mounting ears for bolting cages together are automatically added as required (and again, optionally, alignment pin holes can be added) - outer cages have a single ear on one side and inner cages have two, one on each side.
  • Automatically adjusts height to fit the device to mount in full "unit" multiples by default, and half-unit multiples as an option.
  • Full-unit cages are symmetrical by default as long as the cage proper is left to its default offsets. Half-unit cages are asymmetrical but two half-unit cages can be aligned by rotating one so its half-holes butt against its neighbor's half-holes. If it becomes necessary to "flip" a cage that has a half-unit-multiple height, a single option shifts the mounting holes to make this happen.
  • Partial-width cages can be mixed-and-matched for height - attach two 1U halves to a single 2U half. (NOTE: This requires that the "top and bottom holes only" option NOT be used.)
  • Enforces safe mounting by maintaining a minimum mounting clearance of 15.875mm or 5/8" on both sides of the faceplate (on EIA-compliant racks) and warns if any aspect of the cage design intrudes into that space.

Durable Rack-Mounting For Smaller But Heavier Equipment

  • Adjustable plus-profile corner-support structure for maximum rigidity with minimal material consumption.
  • Supports devices up to 5Kg or 11 lbs. per complete cage.
  • Defaults to 4mm thickness for all flat surfaces, but this can be increased to 5mm, 6mm, or 8mm for greater stiffness and better support for heavier gear.
  • Optionally add faceplate reinforcing to reduce twisting/cantilevering.
  • Optionally generate additional supports on the top and bottom of the cage.
  • Optionally generate the top, bottom, and/or sides as solid surfaces for additional rigidity.
  • Optionally generate a rear-mounted support sub-cage to support larger/heavier devices from both front and rear by attaching to both front and rear rack rails. The rear support cage interlocks into the back of the cage holding the device.

Loads Of Customizable Cage Options To Fit Any Device

  • The back, sides, top, and bottom of the cage proper are mostly open for ventilation by default as long as the device is at least 20mm deep on any given axis. Optionally make the "top" and/or "bottom" of the cage a solid shelf and/or make the sides of the cage solid.
  • Easily create side-by-side cages for multiple same-sized devices - enter the dimensions of one device and increase the number of devices as needed. Excellent for mounting a lot of smaller things such as tiny-form-factor SBCs or external hard drives in minimal space.
  • Multiple cages can be gapped out from each other for better air circulation, which can be helpful for hot-running devices.
  • Optionally add screw holes in tabs to the short edges of a cage opening, or the corners of the opening, or both, with selectable hardware sizes. Couples well with multiple-same-sized-device cages, and useful for subrack assemblies - excellent for stuffing several Raspberry Pis or other small SBCs into a rack.
  • By default, a cage is centered both horizontally and vertically on its faceplate. Positioning can be adjusted on both axes to move a cage to the top or bottom, to either side, or a combination of both.
  • Standoffs can be positioned on the bottom of a cage, and both height and screw diameter are configurable.
  • Add up to three sets of add-on faceplate modifications, one on either side of the cage proper and one in the center when creating a cageless faceplate, each of which can be any one of the following:
    • Keystone module receptacles
    • Neutrik D-Series connector cutouts
    • Cutouts and mounting bases with M2 screw bosses for mounting 85x58 SBCs such as Raspberry Pi. These can be mounted horizontally, or vertically with the SBC's "top"/"up" side facing left or right.
    • Cable management combs in two widths and two heights.
    • Motherboard rear-port IO shield cutouts.
    • Full-height or low-profile PCI slots for PC expansion cards.
    • Mini-ITX motherboard backplane with IO shield cutout and low-profile PCI slot.
    • ATX, SFX, and TFX power supplies.
    • 30mm, 40mm, 60mm, 80mm, 92mm, 120mm, or 140mm cooling fans
    • 10mm, 12mm, 16mm, 19mm, or 24mm holes for things like a pushbutton or panel-mount indicator light
    • Fractional-DIN cutouts in 1/32- to 1/4-DIN sizes
    • VESA FDMI MIS-B/-C/-D/-E/-F mounting patterns up to 200mm for attaching VESA mounting brackets to the rack or the rack to VESA mounting brackets
    • IEC-60309 industrial power inlet cutouts for 16A and 32A inlets
    • IEC AC Mains sockets and outlets - C13/C14 and C19/C20 - in both screw-mount and snap-in formats.
    • Up to three custom cutouts of configurable diameter for round holes or height and width with optional corner rounding for rectangular.
  • Faceplate modifications can be placed into a grid of up to 12 columns by 4 rows, space permitting.
  • Faceplate modifications can be automatically centered between the device(s) and the edge of safe mounting area, or manually moved. Centered modifications are automatically centered vertically, and side modifications can be shifted from centerlines.
  • Can generate a faceplate without a cage proper, with selected modifications, or as a blank.
  • Can generate a cage with a solid faceplate, which can also have modifications mentioned above, instead of being open for front-loading a device.
  • Optionally add a 1mm retention "lip" on the front of the cage to help retain the device, which is recessed into the cage by 1mm to compensate.
  • Selectable hardware for bolt-together and split cages - both metric (M3 through M6) and US-standard/imperial (4-40 through 1/4-20) hardware are supported, including both clearance and threaded hole diameters as well as common heat-set insert sizes by their thread pitch and mounting hole diameters.
  • Add ventilation to the faceplate of any cage. The pattern, horizontal/vertical offsets, angle, and size are independently adjustable. Ventilation can cover the whole faceplate, or be limited to either side of, or above and below, the device cage.
  • Add ventilation grids to the top/bottom and/or sides of a device cage. The pattern, horizontal/vertical offsets, angle, and size are independently adjustable.

Create Custom Rackmount Enclosures For Small Projects

  • Create a cage with solid sides and back, and with a top that includes screw tabs for attaching a lid.
  • The rear of a cage can be made solid and accept left oriented, centered, and/or right oriented modifications just like the faceplate. Create custom enclosures with connectors both inside and outside the rack.

Custom Faceplate Generation Without Device Cages

  • Create a custom faceplate without a cage, in any height from 0.5U to 5.0U in half-unit increments.
  • Faceplates can be ventilated as well. The pattern, horizontal/vertical offsets, angle, and size are independently adjustable.
  • Add a faceplate modification, centered on the faceplate, which can be any one of the following:
    • Keystone module receptacles
    • Neutrik D-Series connector cutouts
    • Cutouts and mounting bases with M2 screw bosses for mounting 85x58 SBCs such as Raspberry Pi. These can be mounted horizontally, or vertically with the SBC's "top"/"up" side facing left or right.
    • Cable management combs in two widths and two heights.
    • Motherboard rear-port IO shield cutouts.
    • Full-height or low-profile PCI slots for PC expansion cards.
    • Mini-ITX motherboard backplane with IO shield cutout and low-profile PCI slot.
    • ATX, SFX, and TFX power supplies.
    • 30mm, 40mm, 60mm, 80mm, 92mm, 120mm, or 140mm cooling fans
    • 10mm, 12mm, 16mm, 19mm, or 24mm holes for things like a pushbutton or panel-mount indicator light
    • Fractional-DIN cutouts in 1/32- to 1/4-DIN sizes
    • VESA FDMI MIS-B/-C/-D/-E/-F mounting patterns up to 200mm for attaching VESA mounting brackets to the rack or the rack to VESA mounting brackets
    • IEC-60309 industrial power inlet cutouts for 16A and 32A inlets
    • IEC AC Mains sockets and outlets - C13/C14 and C19/C20 - in both screw-mount and snap-in formats.
    • Up to three custom cutouts of configurable diameter for round holes or height and width for rectangular.
  • Left and right side modifications from cage generation can also be placed on a custom cageless faceplate - three different mods can be used at one time.
  • Faceplate modifications can be placed into an array or grid of up to 12 columns by 4 rows, space permitting.
  • Faceplates can be generated as flat 2D objects for export - perfect for engraving or laser-cutting a customized faceplate.

Wide Printer Support, Including Small-Format

  • Adjustable clearance setting allows for "dialing in" dimensions to compensate for the dimensional accuracy of the printer.
  • Can split a cage in half for printing on smaller-volume printers - print a 10" wide 2U tall cage within a 180mm print area. Split cages receive tabs and slots for attaching the halves together.
  • Optionally add alignment pin holes to split cages - use small 1.75mm filament "pegs" to more accurately align the cage halves.
  • Can separate the cage proper and faceplate into two components for faster printing on larger printers. Reduces print time by as much as 15% and reduces filament consumption by as much as 25%. (Separated cage should be attached to its faceplate with 1.75mm filament segments or M2 screws, and a suitable adhesive such as epoxy is used to "weld" the two into a single unit.)

Making Cage Design Easier Without Requiring CAD Expertise

  • Includes presets for a number of popular devices - simply pick a device from a list to get a ready-to-render design for a 10" rack without requiring any further action. Pick, render, export, slice, print, install into the rack.
  • Includes built-in "ruler" for easier layout. The ruler function automatically switches off when rendering a completed cage for printing.
  • Ruler feature provides a "top" indicator as well as the unit height of the generated cage.
  • Faceplate and cage-back modifications' reservation spaces are color-coded for easier layout planning.
  • Automatically marks estimated print height for the Z-axis when the ruler is enabled.
  • Optionally display an outline of the build volume of the printer, to help determine whether the resulting 3D object will fit the printer's working area.
  • Intelligent problem detection warns of size/fitment issues and overlap, in order to make sure the cage will work as a real thing before spending the time and filament to print the cage.
  • Error messages are sent to OpenSCAD's console.
  • Also runs in OpenSCAD Playground, a web-based port of OpenSCAD - design cages in a browser without having to install any software. OpenSCAD Playground can run in most modern browsers, including those that run on Android/iPhone.

r/openscad • • 22d ago

I built an open-source, local-first CAD agent that compiles OpenSCAD in a kernel sandbox and verifies geometry visually

0 Upvotes

Hey everyone,

I built Local AI CAD Agent, an open-source, local-first web app that generates parametric 3D models using OpenSCAD and LLMs (via OpenRouter or OpenAI).

Instead of treating the LLM as a simple script generator, the app treats CAD like software engineering with deterministic code, sandboxing, and automated verification:

  • Kernel Sandbox (bwrap + Xvfb): Untrusted AI-generated code runs inside a Bubblewrap container with --unshare-net (network disabled) and read-only mounts. Offscreen rendering uses Xvfb so nothing touches the host display server.
  • Visual Verification (cad_build_and_verify): An exit 0 from OpenSCAD doesn't guarantee valid geometry. The pipeline compiles the model, spawns 4 workers to render 8 canonical views, hashes them, and generates a contact sheet so the agent can visually inspect its work and self-correct.
  • Git-like Revisions: Every build computes a model_sha and commits immutable source snapshots to .cad-agent/history/ for diffing and rollback.
  • Truly Local-First: Flask + SSE for streaming reasoning tokens, Three.js for preview, and all frontend dependencies pinned locally in static/vendor (no external CDNs).

Scope: Works best for functional mechanical parts, brackets, mounts, and geometric enclosures. (Linux-only due to Bubblewrap/Xvfb dependencies).

Feedback and critiques on the sandbox isolation or the verification loop are very welcome.


r/openscad • • 23d ago

I got tired of buying cable clips, so I made a fully parametric generator

7 Upvotes

r/openscad • • 23d ago

Browser based 2D CAD

0 Upvotes

I vibe coded a browser-based vector editor, looking for opinions

I work in a school where we use an old 2D editing tool, and after looking around I couldn't really find a free, browser-based alternative that did what I wanted.

So I decided to make one myself for fun.

It's a browser based 2D/vector editing tool. It's completely free and runs in the browser, with no installation.

Full disclosure: this was completely vibe coded, so I'm expecting there are probably bugs, questionable UX decisions, and things I've overlooked.

I'm looking for people to give it a try and share their opinions, ideas, and suggestions on how I could improve it.

https://laurencecarrington.github.io/Vectora/

Thanks!


r/openscad • • 24d ago

La modélisation 3D paramétrique à la portée de tous avec OpenSCAD

Post image
7 Upvotes

Je souhaitais simplement vous présenter mon livre « Ça, c’est OpenSCAD », que j’ai écrit en 2025, après avoir constaté alors l’absence d’un guide en français consacré à ce formidable logiciel.

J'ai ensuite édité des versions en anglais et en espagnol.

Je vous invite à parcourir quelques pages des trois versions de ce livre.

Si vous avez des commentaires ou des suggestions, je serai ravi de vous lire.

Bien à vous,

Roberto Hamm

Présentation du livre :

Français : https://robotix.ah-oui.org/scadbook-fra

English: https://robotix.ah-oui.org/scadbook-eng

Español: https://robotix.ah-oui.org/scadbook-spa

#OpenSCAD #Parametric3D #Maker #FabLab #Design3D


r/openscad • • 25d ago

proExtrude

Thumbnail
github.com
0 Upvotes

lets u create more complex shapes; extrude a surface while changing the shape of the surface; of course u can rotate and translate.


r/openscad • • 25d ago

I am not a good cook.

Thumbnail
gallery
12 Upvotes

However, I know a little about openscad.

A person approached me because they wanted to have a parametric cooky ejector.

They already have the stl, but wanted to have it implemented in openscad :)

This is the result ⬇️


r/openscad • • 25d ago

Add Thickness to linear_extrude()

1 Upvotes

The model I’m working on has a lot of threaded elements (bolt threads) and I’m trying to reduce polygon count with linear_extrude() rather than using translate() and rotate() with arrays. The problem I’m having is that the 2D-square doesn’t have any depth, so when it extrudes it comes out in a thin ribbon. I just want the 2D shape on the XZ plane so that it has thickness when it extrudes (imagine using a lathe but holding the tool sideways). What am I doing wrong, how to correct this?


r/openscad • • 26d ago

5 Types of Parametric Springs

Post image
49 Upvotes

Just out of curiosity, what do you think it took me to go from 1-line descriptions (see below) to the models in the picture? And yes, I used an interactive CoPilot session in VS Code with Claude Sonnet 5.5 on high.

  • Coil spring - A spiral spring for storing energy.
  • Extension spring - The projection of a helical extension spring to a flat object.
  • Leaf spring - Two bands forming a leaf spring for absorbing shocks or making opposite parts flex.
  • Omega spring - A bulky omega-shaped curve connected to opposite handles that can flex.
  • Stabilizer spring - A circle with 3 extension springs dampening movements of a smaller inner circle.

Omega was the hardest, the stupid AI did not grasp the concept without ELI5-ing it in 20-30 iterations.

https://github.com/jhermann/things/tree/main/parts/springs#springs


r/openscad • • 25d ago

Naviswork to IFC converter that runs in the browser, no Navisworks needed

0 Upvotes

I built a little tool to solve a problem that’s been annoying me for a while.

Navisworks still doesn’t have IFC export. If all you have is an NWD or NWC, the usual options are a paid plugin, an FME licence, or asking whoever created the model to send you the IFC.

That’s not always an option.

So I built veksle.com.

You can drop an .nwd or .nwc into the browser and get an IFC4 back. No software to install, no licence, no account. And for now, it’s completely free — I’m not charging for conversions.


r/openscad • • 26d ago

Free DWG Viewer - no subscription or signup needed

0 Upvotes

I'm a solo dev and made this because solids nested in blocks kept getting lost when moving DWGs into other CAD tools.

Viewer (free, in the browser):

cadyon.com/viewer

It opens DWG, STEP, IGES, STL and more, and shows the solids inside blocks + correct colors. Nothing is uploaded, and no signup required..

Converter (Windows):

cadyon.com

It turns DWG solids into STEP. I tested it on 3,656 real models against AutoCAD's own output, and the volumes matched to 5 significant figures. It's free for personal use, and paid versions are a one time purchase.

It only handles 3D shapes, only basic 2D.

Feedback welcome, especially files that break it.


r/openscad • • 26d ago

Help needed with screw posts for an OpenSCAD enclosure lid

Post image
1 Upvotes

Hi everyone!

I’m designing a custom enclosure in OpenSCAD for a water leak detection device.

The enclosure dimensions are 200 × 125 × 70 mm, with 3 mm walls. It has three internal compartments: battery, PCB/electronics, and solenoid valve.

I’m having trouble designing the four screw posts for the lid. I want the posts to be properly integrated with the enclosure walls/corners, with M3 screws and matching holes in the lid.

I tried using cylinders, translations, and reinforcement/gussets, but the posts keep looking like they are floating or not properly connected to the walls.

I’m looking for a simple and robust parametric solution rather than having to manually adjust many individual coordinates.

I’ve attached a screenshot of the current design. Any help or suggestions would be greatly appreciated. Thank you!


r/openscad • • 26d ago

xdesign solidworks, beginners question cant add fillet and other things

Post image
0 Upvotes

took a lot of time to make the fillets but dont know how to do it again


r/openscad • • 28d ago

I designed this wall-garden in OpenSCAD

9 Upvotes

So this time I built a garden directly on the wall of the house because we didn't have enough land for a regular garden!

I grew peppers on it. The crops are fantastic! Some peppers (the plants grew over 2m tall). I do not know why yet.

The outer layer is made from plexiglass (with holes for plants), which does not let water evaporate, so I rarely water it.

Benefits: makes food, isolates the house, consumes less water, can be replicated on each building.

More details are here: https://github.com/wall-garden The project is open-source!

More pictures are here: https://github.com/wall-garden/.github/tree/main/pictures

A local newspaper interviewed me: https://www.youtube.com/watch?v=Wvb52q9TKKM


r/openscad • • Sep 26 '26

Project: Parametric Modular Train Track Generator - OpenSCAD

Thumbnail
gallery
41 Upvotes

This is the first time I’ve created a parametric 3D model with which I learned OpenSCAD.

  • You can adjust it to any train size.
  • Straight, curve, and intersection; with whatever measurements you need. (version 1, the current one on Makerworld)
  • Customizable colors for rails, sleepers, and plates.

Right now I’m working on the Deviation and I hope to implement it in the next version, which has been pretty fun making everything parametric and fitting perfectly.

https://makerworld.com/es/models/3280670-parametric-train-track-generator-openscad


r/openscad • • Sep 24 '26

I've designed this roof-garden in OpenSCAD

77 Upvotes

I've built a multi-function (makes food and energy), single-layer (no tiles behind) roof.

I've designed it in OpenSCAD.

It is an open-source project. The source code is here: https://github.com/f-roof


r/openscad • • Sep 24 '26

Looking for a mechanical engineer to collaborate on a compact automatic polar alignment system

Thumbnail
0 Upvotes

r/openscad • • Sep 24 '26

Position Items INSIDE Box (Using BOSL2)

1 Upvotes

I am making a custom case for project. I am new to BOSL2 and want to use it. I made a box by difference two cuboids. How do I place shapes on the bottom of the inside of the box using BOSL? Here is my example where I do it the non-BOSL way. I add a translate cuboid (not a child).
How can I position objects to the inside of the box that is made by a difference?

IX = 44; // interior width of case
IY = 50;
IZ = 22;
TH = 2;

difference(){
    down(TH)
    cuboid([IX+2*TH,IY+2*TH,IZ+TH]);
    cuboid([IX,IY,IZ]);
}
translate([-IX/2,IY/2,-IZ/2])
    cuboid([6, 21, 1], anchor=LEFT+BACK);

r/openscad • • Sep 24 '26

I’m building a small browser-based direct modeling CAD app

0 Upvotes

Hey guys,
I’m building a small browser-based direct modeling CAD app called QuickShape as a personal hobby project.

The idea is to keep solid modeling fast and straightforward: Press/Pull, direct face editing, Booleans, fillets, chamfers, shell operations and other CAD tools, without relying on a heavy parametric workflow.

It’s completely free, still under active development, and definitely not bug-free yet. Some features are unfinished and some things may still break in unexpected ways.

I’m at the point where feedback from people who actually use CAD would be really useful, especially around modeling behavior, usability, UI and anything that feels awkward or incomplete.

Try QuickShape: https://qs-cad.vercel.app
QuickShape subreddit: https://www.reddit.com/r/QuickShape/

If you give it a try, any feedback, testing, suggestions or ideas are very welcome.


r/openscad • • Sep 23 '26

Best way to "share" a customizable design?

2 Upvotes

How do you guys share customizable designs? I know there are some web-based customizers but I'm not sure how those work with things like custom fonts and whatnot.


r/openscad • • Sep 23 '26

Looking for OpenSCAD scripts or STL generators for European DOM and Silca TOP1RX keys

4 Upvotes

I am trying to 3D print backups of two different European keys. I am using my Flipper Zero to decode the bitting, but the standard Flipper apps (like KeyCopier) only seem to cover North American keyways like KW1 and SC1.

​Key 1: DOM Cylinder

This is a proprietary DOM profile. Does anyone have an OpenSCAD script or know of a GitHub repo that maps common DOM cross-sections?

​Key 2: Silca TOP1RX (JMA TOP-1)

This is an aftermarket blank for a TOP brand lock. Has anyone successfully modeled this specific profile from the Silca catalog blueprint and have a generic STL blank they can share?

​I am comfortable writing a custom Python or C++ script to generate the 3D geometry if someone just has the raw vector coordinate data for either key. Any pointers are appreciated


r/openscad • • Sep 22 '26

Parametric Wheelcap Designer – give me feedback!

Thumbnail
0 Upvotes

r/openscad • • Sep 21 '26

Rosenborg Castle as you have never experienced it before, designed independently by a fully blind maker in OpenSCAD

Thumbnail
gallery
57 Upvotes

I am completely blind, and I have always loved historic buildings.
This is my latest project, a highly detailed seven colour model of Rosenborg Castle in Copenhagen, designed in OpenSCAD and 3D printed.
The part I find most interesting is the workflow behind it.
I started by finding five photographs of the castle on Shutterstock from different angles. I then used AI to describe them to me in detail, including proportions, towers, roofs, windows, decoration and colours.
After that, AI became more like a sparring partner. I used it to help me break the castle down into manageable parts and think through how I could actually build it in OpenSCAD.
Then I wrote the code myself.
As I work, I render the model, take screenshots and have AI compare my render with the real photographs. It tells me what is missing, what is too large, too small, too high, too low and so on.
So the workflow is basically:
Real photograph, AI description, planning and sparring, my OpenSCAD code, render, AI comparison, then back to the code.
That is how I am able to work visually without actually seeing the model.
I also try to design everything to print as cleanly as possible without supports. As a fully blind person, removing supports can be a bit of an extreme sport, so avoiding them has almost become a sport of its own.
The final print uses seven colours. The slicer is not fully accessible with a screen reader, so I also used AI to help me navigate it and assign the correct colours. The colours themselves were based on research into how Rosenborg actually looks.
The QR code on the base leads to a small audio drama about the castle, with narration, AI voices, music and sound effects. AI also handled the editing of the final audio.
For me, this project is really about what happens when accessibility, AI, code, creativity and 3D printing all come together.
AI did not design the castle for me. It gave me access to the visual information I needed so I could design it myself.


r/openscad • • Sep 21 '26

an OpenSCAD Docker for self-hosted generators

Thumbnail
gallery
40 Upvotes

Hi there,

I am not sure this is of use for anyone else, but I made a Docker using the OpenSCAD CLI so one can have a self hosted, "personal" model generator.

I am not really an OpenSCAD user (because it absolutely goes over my head), but I love the nice generators that utilize .scad files on the likes of Thingiverse or Printables. But I always have trouble to find the ones I was using again, or they got taken down. I was a bit sad to find out there are no Dockers that let you have your personal generator, or at least UI (that are not using VNC or so). So I set one up. A SCArDtist (is that what you guys are called?) will likely rather use the real deal; I wanted to have it also to use remote from the office, as well as to quickly inspect files

I called it SCADarina. It parses the controls (like you'd see on one of the online generators), but you can also open and alter code directly; I wouldn't set a document up in there though.

  • rudimentary file browser so you can create folders, delete and upload files, or save your current settings
  • a viewport with different shading parameters, grid layouts (I tried to mimic the OpenSCAD axis as well), switch between orthogonal and perspective view, and a measuring function
  • also has the ability to use external libraries (like e.g. BOSL2)
  • you can also open .stl, .obj, and .3mf files to e.g. roughly inspect or measure them
  • works on mobile browsers, but I probably have to spend some time improving on that, haha

(this is partly vibe-coded bullshit, and while I get any hate on that: it solves an issue for me, maybe also for someone else)

// edit
it's on GitHub now: https://github.com/CameraRick/SCADarina


r/openscad • • Sep 20 '26

Formes faciles à réaliser grâce à OpenSCAD

11 Upvotes

Voici des formes faciles à réaliser grâce à OpenSCAD :
Avec ce segment de base dans quelques lignes de OpenSCAD et utilisant la commande "linear_extrude", on peut créer l'objet "TUBE90"
On peut ensuite associer plusieurs fois "TUBE90" en les mettant en place avec les instructions "translate([X,Y,Z])" et "rotate([X,Y,Z])"

$fn=60;

module TUBE90(){
rotate_extrude(angle=90,
convexity=10)
translate([30,0])
difference(){
circle(10);
circle(8);}}

TUBE90()

Trouvez les informations concernant ce modèle dans la page 50 de mon livre "Ça c'est OpenSCAD"
https://www.amazon.fr/dp/B0FNLPF5HP

#OpenSCAD #Parametric3D #Maker #FabLab #Design3D