OpenSCAD is very cool, but completely unusable once you understand how great state of the art CAD Software like Fusion or Onshape is.
The big distinction is that those work implicitly, while OpenSCAD requires you to be implicit.
OpenSCAD is very cool, but completely unusable once you understand how great state of the art CAD Software like Fusion or Onshape is.
The big distinction is that those work implicitly, while OpenSCAD requires you to be implicit.
I'm a programmer. I once had an idea stuck in my head for a 3d model that I just needed to get down somewhere. I tried learning the basics of AutoCAD but after 2 days of tutorials I still felt overwhelmed.
I looked into alternatives and learned about OpenSCAD. The immediate visual feedback makes picking up the language a breeze. Within an hour of downloading I familiarized myself with the language and had manifested my idea into a 3d model
I think that's a perfect example of a use-case where OpenSCAD shines. It's extremely easy to pick up if you have programming experience and it might even be a good thing to learn before moving onto more professional CAD software. From a teaching perspective, being able to have almost immediately-useful output is priceless
The BlockSCAD folks are hoeing that row quite effectively to my mind:
https://www.blockscad3d.com/editor/
I just wish that they'd add the balance of the language/fix some bugs.
I think that modern CAD software, like Onshape or Fusion 360 is quite easy to learn. I have no doubt that AutoCAD is difficult to grasp, but it is not a good representative of what is possible.
>It's extremely easy to pick up if you have programming experience and it might even be a good thing to learn before moving onto more professional CAD software.
No, it definitely is not. OpenSCAD makes you think exactly the wrong way about CAD, because it forces you to reason explicitly about your model, when that is something which you need to let the CAD Software do for you. Modern Parametric CAD works by the user defining constraints, which the Software uses to derive the shape of the model, this is not something which conceptually exists in OpenSCAD.
>From a teaching perspective, being able to have almost immediately-useful output is priceless
Which is something which modern CAD does just as well.
I let the library do the heavy lifting(BOLS2) these days. I want to contribute to it but hadn't mastered the many features of the library just yet.
Some of the features I used:
* Attachment & align. I can attach things to faces and I can align things to edges as needed.I wasn't super clear on how it work in the class, but I found that doing a simple exercise of aligning objects around the face of a cube increase my knowledge how it all work and my confidence.
* Chamfer. I am aware of some sort of fillet feature or rounding features but I mostly stick to chamfering my design for now.
* Teardrop shape. Mostly because I need it due to the constraint in FDM 3D printing.
* Some simple shorthand like right, left, up, down for when I don't want to use translate([x,y,z]).
* Constants and directions such as FRONT, BACK, LEFT, RIGHT, and so on, which can be applied to basic shapes.
* Diff. It works differently than openscad's standard difference and as far as I can tell very powerful if you understand how it goes together. I have difficulty in the past in figuring out how to use it, but once it does work, it's very cool. I planned to do an exercise so that I can better understand how it all works.
BOLS2 as far as I can tell is a very deep library so there's lot to learn. I would love to start contributing to it.
Anyway, a lot of OpenSCAD's flaws could be attributed to a lack of library development. I handrolled my own library to use in different projects before I realized that BOLS2 did everything that I could do but better.
Have you ever used a modern CAD tool like Fusion or onshape and done constraint based modeling?
Yep. I am no stranger to using Fusion 360 and OnShape. Not really an expert, however.
Now, in the course of using it, I have issues with these tools as well. A lot of it is just getting used to the interface and the overwhelming complexity. They are not intuitive at all to use. Messing up required debugging why I am in a particular state. It's hard to figure out where the things I need are located. I am fairly certain that I would be real good at it if I stick at it long enough, but I invested more time and energy into OpenSCAD.
I am uncertain as to what you mean by constraint based modeling. I know I used it in these programs, but I don't really need these features nor do I need to do a lot of math in OpenSCAD that I would have need to use without a library. Maybe BOLS2 does do a lot of constraint modeling for me, but the documentation never talked about that with me. All I know is that I don't need to do as much math as I used to.
Rather, my complaint about OpenSCAD is legibility of objects and barebone UI features. Sometime, I don't know which is the front or back of the object, or maybe I want to know certain parameters of the objects unless you do the work beforehand. I want to know something like object.x and object.y for example, or the final compounded object width. Being able to pass information from one object to another is useful but that is lacking in some aspect of the language.
Just being able to label things in OpenSCAD would be tremendously useful for me.
Now, you can program in OpenSCAD with python, which seems to be a gamechanger. However, I have no idea on how it would interact with BOLS2, so I am kind reluctant to try it, but it would make objects in OpenSCAD much more legible to use.
The functional nature of openscad felt like a straitjacket at time but it did force me to get very familiar with recursion and all sort of ways on how to manipulate arrays. So I credited OpenSCAD for stretching my capability as a programmer. I still don't like recursion.
That said, despite the challenge of learning how to use BOLS2 for OpenSCAD, I am loving it especially when I finally grasped how a part of the library work.
The thing is, I've crashed-and-burned every time I've tried to do traditional 3D CAD --- the closest I've come to success was making it all the way through the tutorial for Dune 3D:
https://news.ycombinator.com/item?id=37979758
https://news.ycombinator.com/item?id=40228068
OpenSCAD "just works", even on quite limited hardware, and if one has trouble modeling something, well, arriving at a solution is just a matter of learning the appropriate mathematics.
The way I learned CAD is the same way I approach programming projects. I tackle simple, bite size projects, which then increase in complexity until I have the skills necessary to tackle big complicated projects.
I found that standard CAD to be no simpler than OpenSCAD. Really, the biggest disadvantages that OpenSCAD have is usability and a library which is fixed by using BOLS2.
BOLS2 has the same problem as standard CAD, it is overwhelmingly big. In some cases, I didn't know features were already in BOLS2 so I don't have to reinvent the wheel writing my own inferior library.
So, how to tackle it? Same thing as any learning projects. I just tackle it in bite size chunk.
To be honest, I found Fusion 360 and Onshape very intuitive to learn.
>and if one has trouble modeling something, well, arriving at a solution is just a matter of learning the appropriate mathematics.
Which is the terrible thing about OpenSCAD. YOU need to derive the equations. In a modern CAD program you define the constraints on the object and the equations are derived for you.
excplicitely, you mean?