I'm not sure how complicated things can get, but here's something I designed with OpenSCAD that I thought was fairly complex:

If you sing along, the lyrics are, "A dream is a wish your heart makes."
3DPrinting is a place where makers of all skill levels and walks of life can learn about and discuss 3D printing and development of 3D printed parts and devices.
The r/functionalprint community is now located at: or !functionalprint@fedia.io
There are CAD communities available at: !cad@lemmy.world or !freecad@lemmy.ml
No bigotry - including racism, sexism, ableism, homophobia, transphobia, or xenophobia. Code of Conduct.
Be respectful, especially when disagreeing. Everyone should feel welcome here.
No porn (NSFW prints are acceptable but must be marked NSFW)
No Ads / Spamming / Guerrilla Marketing
Do not create links to reddit
If you see an issue please flag it
No guns
No injury gore posts
If you need an easy way to host pictures, https://catbox.moe/ may be an option. Be ethical about what you post and donate if you are able or use this a lot. It is just an individual hosting content, not a company. The image embedding syntax for Lemmy is ![]()
Moderation policy: Light, mostly invisible
I'm not sure how complicated things can get, but here's something I designed with OpenSCAD that I thought was fairly complex:

If you sing along, the lyrics are, "A dream is a wish your heart makes."
Wow. Here I'm happy with "check out this cylinder I'm using to wedge between things"
(I've done a few other weird things, but I'm most proud of my shims that are the right size)
I've been using openscad to create a dual-filament direct drive print head for my Ender 3. Got the whole thing printed but I have to run a couple more wires up the cable harness to control the new servo and read the filament runout sensor.
Nice! I've used a lot of other people's work to make my dice chandelier, and a handful of other stuff, but I've mostly been using it to model wood panels for a few cabinets, I made a simple module that takes in panel size and makes the panel, but also prints it on the console, so I can make a cutlist later.
It definitely help for re-world modeling, getting things figured out in advance. In the Spring of 2024 I decided to finally build a utility trailer I've been thinking about for years, and I modeled the whole thing in OpenScad down to the wiring and generating material lists (and yes, we got it built and have been using it through this past Summer). The fact that you can't incrementally update variables makes some tasks stupidly difficult requiring a lot of needless redundancy, but I do like being able to write stuff out as code.
Maybe some day I'll try Build123 or something else, but most of my projects are things where I just need to whip out a quick model, so I don't want to deal with learning a whole new system at the same time. Case in point -- yesterday I picked up a keyboard fro the thrift store but realized it was missing one of the folding feet (this one has two different sized stacked feet that fold out from each other). Half an hour later I'm making my first print, and another 15 minutes I'm ready to test the second foot piece. And I could have done it faster if I didn't spend so much time capturing the details of the original feet. Point is, it's hard to change when most of your needs are quickly covered with the existing software.
Wow, that is absolutely mind-blowing. I never expected it to work with such complex designs! Mind sharing some tips or examples of how you accomplished this? I'm really curious about the notes around the ring
i’ve used a little bit of it in the past, but now i’m learning Build123d instead. It seems better about basically everything
Just as I was coming to terms with OpenSCAD syntax…
I can second, build123d is awesome! Splines, fillets, full object-oriented programming techniques if you care to use them including directly referencing properties of existing parts, which is something OpenSCAD fundamentally cannot do. It has two syntaxes you can choose from, one more oriented toward traditional CAD users (builder mode) and one more oriented toward developers (algebra mode). As a developer, I have found it much easier to work with algebra mode versus builder mode.
Huh, I already built my own (very janky) Python wrapper around OpenSCAD's horrible syntax and editor, but that looks like a much better solution. Thanks!
Thanks for this, tried openscad once for a real project. Did okay, but it's a pretty steep learning curve. Will try this next.
I tried it once after stumbling on the fact it existed when searching the software bazaar for cad programs. I did okay, using it. But couldn't get a firm grasp on certain things. Here's a stand for my work laptop that I used openSCAD to create.

Next I'm gonna try the one suggested by the other commenter: https://build123d.readthedocs.io/en/latest/