I love OpenSCAD and code-based CAD, but even I must admit it's really only good for simple things and is more of a toy than a tool to solve real world problems. The main issue is fundamental, which is that CSG operations change topology in unpredictable ways, and there is no reliable way to refer to the components of the result. This is already bad for a few operations, but becomes exponentially problematic for more complicated models. Even in 2D, suppose I want to make a C-shaped thing out of a box and subtracting a different box out of it. You don't know how many edges the result will have, or even how many connected components the result will have, so how do you go on to perform the next step "on that one part that I want" if it even exists? Of course for a single concrete instantiation this is not really a problem, but the whole point is to have the shape tunable based on parameters, and once you allow that all hell breaks loose.
The great thing about OpenSCAD is that it makes it easy to model objects which may be represented by positioning/stretching/adding/subtracting cubes, spheres, cylinders, and cones using mathematics.
The awful thing about OpenSCAD is what one can model in it is directly limited to ones fluency and facility with using math to position, stretch, add, and subtract cubes, spheres, cylineders, and cones.
There is an entire book series on using it didactically:
Yeah, I oscillate a ton between code-based CAD (OpenSCAD, Build123d) and Fusion 360 and they require very different ways of thinking about things, with different things being easier/harder with each approach.
I hesitate a bit to call code-based CAD "a toy", but there are a lot of times where what I think I actually want is some kind of, sorry for the phrasing here, fusion of Fusion 360 and OpenSCAD. The Fusion timeline is pretty phenomenal and having the ability to do something like code steps and manual "click on all of the edges you want to put a fillet on" steps interwoven seems like it has a lot of potential for my "ultimate CAD workflow". The timeline part is kind of the magic that unlocks the whole thing:
- update a parameter or a piece of code, triggering a recompute
- see that the fillet operation is now missing an edge
- rewind the timeline, tweak the fillet edge set
- fast-forward the timeline to let the rest of the code blocks re-execute
Things like MakerWorld let you upload parametric OpenSCAD files and that's cool and all, but for my own uses I don't care if I need to use the "insert a manual step in the timeline" feature occasionally. OpenSCAD on its own doesn't have that and the idea of trying to do "operations as code" in Fusion (there is a scripting interface) is not super appealing as-is.
Being able to use hand-created objects as function inputs seems pretty powerful too. As an example, instead of needing to manually specify all of the points to make a polygon that I'm going to do a bunch of OpenSCAD extrudes with, just referencing a sketch earlier in the timeline. My current OpenSCAD "hack" for that is to draw those in FreeCAD as DXFs and then import them, but it's not a smooth workflow at all.
I could have written this same comment! For the most part I stick with Fusion, although my experience with build123d has also been great.
At the risk of spamming this thread, check out FluidCad. It has excellent GUI based cad tools, and those same tools generate the equivalent 'code cad' for each operation. Of course you can also use 'code first' instead.
I think it's really exciting, and while it's early in development it is already very usable.
Software like OpenSCAD are mesh models, for engineering purposes they are pretty much useless for design maintenance and accuracy. I'd take them more seriously if they could output STEP files.
I come from the side of being an experienced user in multiple traditional Parametric CAD systems, the code paradigm just makes no sense for how I design parts/systems and I think most CAD users will have similar feelings.
This is exactly why I didn't want to work for Agile when I was invited. This stuff is going to get crushed in the market by cheap AGVs and good systems integration.
It was very sad to watch the ambitions of excited robotics researchers turn towards making what are essentially digital slaves. I am not saying that manufacturing or logistics couldn't, or even shouldn't be automated. But the true factories and distribution centers of the future will have to fundamentally rethink what productivity and coordinated work looks like, including having a greater imagination about work and employment.
Mimicking the human form inelegantly is not going to cut it, let alone reduce labor costs. I am all for the research, but the dream of replacing bin pickers with humanoid robots is cynical and hopeless.
No, the reason why I called them digital slaves is because it is a business pursuit to directly replace workers with unpaid labor automatons. That part is folly. I guess I was baiting a bit. I am not talking about the work itself, or the ethics of using tools - actually in this sense a digital slave would be on it's face ethical because an automaton is a machine, and not a person with rights etc.
I specifically used that term to point out the folly of replacing the human form as a business exercise. It get that it is a very simple business proposition - retrofit existing workspaces designed for humans around digital atomatons that mimic humans and eliminate your labor costs. Theoretically you are eliminating the messy step of systems integration. However, systems integration is a process that you simply can't get away from - you will have to figure out charging stations for these robots, issues will pop up, you will have to maintain them etc. It is not the exchange of money for labor between 2 parties - one is fundamentally a machine and it requires operations and maintenance to keep in working order.
Trying to mimic the human form then starts to undermine the very point of owning a site of business in the first place. While I think that understanding more about our bodies and replicating the motion and control of biomechanics is a very noble research aim, in egineering applications it is a very impractical one. These robots would be much better suited if they were on wheels for instance.
The distance between the pratical applications for these kinds of robots and the imagination that provides them their research and development funding is too much of a gap - it facilitated me leaving the industry to work in software. I found that there was a fundemental mis-alignment. Researchers want to explore motion, business want to solve practical problems. This platform is a compromise that does neither very well.
So the point is that the digital slave term was very intentional, and you actually grokked it pretty well. I wouldn't call a laptop a digital slave - a digital slave would be a human robot that you could program to use your computer for you while you were away from your desktop workstation. That would be a really dumb invention.
> I wouldn't call a laptop a digital slave - a digital slave would be a human robot that you could program to use your computer for you while you were away from your desktop workstation. That would be a really dumb invention.
have you seen Astra's computer use harness? it's literally that.
Does it matter? Whether they are doing it on device or in the cloud, they are still recording what their customers say and collecting data on it without their consent.
reply