5 ms·
to be fair, I did do exactly as you described, and im glad I had both under my belt. But the amount of bs you can get when doing exactly that, "going back and c
by RugnirViking 1y ago
to be fair, I did do exactly as you described, and im glad I had both under my belt. But the amount of bs you can get when doing exactly that, "going back and changing a previous step" can be very annoying. Changing dimensions or previous sketches is usually fine, but anything more complicated often results in everything in your stack breaking with strange errors, leading it to just be easier to re-create the model. For many of my more complex mechanisms, ive made the entire thing three or more times
- jacquesm 1y agoI use OpenSCAD for parametric stuff and it has served me very well, even if it has a learning curve and some serious limitations. The trick is to stop thinking interactively and to treat the shapes you want to make in a more generative manner. For instance, you could try to fillet or chamfer an edge, or you could create that edge using a sphere or a shape tracing a path and then tying it all together with a hull. But it can take a while before you become adept at seeing how shapes decompose into simpler shapes.
- ur-whale 1y agoIf you like to code, OpenSCAD is really the best for simple shapes and my go-to tool for these situations, stuff like making a project box for an electronic contraption. OpenSCAD however fails spectacularly for any kind of complex filetting situation when compared to tools like Fusion or even FreeCAD (FreeCAD's UI is an abomination though). The morphological ops in OpenSCAD (minkowski type stuff) are a very poor substitute to real fillets, and are extremely slow (underlying algos are all polynomials in number of triangles) when your objects get complex, and they are global operations, it is extremely hard to limit their action to a localized part of your object. Even Blender, which was truly never designed for this type of operations can sometimes do better than OpenSCAD for fillets. Another thing that's a real pain in OpenSCAD: you cannot "probe" (measure) your existing object at a certain stage, grab the result of that measurement and re-use it in the rest of the code. MAJOR limitation.
- jacquesm 1y ago> OpenSCAD however fails spectacularly for any kind of complex filetting situation when compared to tools like Fusion or even FreeCAD (FreeCAD's UI is an abomination though). I've never had a problem with this, but I build up from the ground with the edges the way I want them to be. The reason many people struggle with this is that they start from 'hard' primitives such as cubes and triangles and then they want to process the edges once the rough shape is there. That's all but impossible. But you don't have to do it that way at all. > The morphological ops in OpenSCAD (minkowski type stuff) are a very poor substitute to real fillets, and are extremely slow (underlying algos are all polynomials in number of triangles) when your objects get complex, and they are global operations, it is extremely hard to limit their action to a localized part of your object. That's because they're used as 'after the fact' tools. It's a bit like trying to change the shape of a folded piece of metal after the fact. It's much easier to shape it right the first time than to 'fix' it later on. When I start working on a shape like that I use a truncated cube rotated 45/45/0, place copies of that cube on the vertices of the shape I want and then cover the whole thing with a hull. Instant chamfer. If I want to use fillets I'll use a sphere. That's much easier than to first create an arrangement of cubes and other primitives and then to decide where I want the fillets to go. Picking those initial shapes for the corners is the tricky part, after that it is very quick to make (and change) objects. I've done some pretty complex shapes like this, fully parametric that would have cost me days with a traditional workflow. > Another thing that's a real pain in OpenSCAD: you cannot "probe" (measure) your existing object at a certain stage, grab the result of that measurement and re-use it in the rest of the code. MAJOR limitation. Yes, agreed, this kind of second order primitive is not possible. I understand the reason for it (and the reason why you can't change variables on the fly) and it is a serious drawback. This makes it very hard to relate two non-trivial shapes to each other. Interactive CAD programs are better for things like that, but there - usually - the kind of change that takes a second in OpenSCAD means a whole pile of manual work. So my recipe is to stick to OpenSCAD for those things that I think I can make with it and to use an interactive tool for everything else. One thing that OpenSCAD excels at is remixing stuff based on existing STLs, I've yet to find another tool that allows me to do that so easily and with such versatility. Before my 'serious' cad tools have imported a mesh the OpenSCAD workflow is already printing the remixed result. As with everything: the right tool for the job is the key.
- deleted 1y ago[deleted]
- ramses0 1y agoEchoing a sibling comment. OpenSCAD is DEFINITION LANGUAGE and while it feels kindof like a programming language it's wildly not. Here's a comment in a (lengthy) issue that describes in more detail. https://github.com/openscad/openscad/pull/4478#issuecomment-1747429401 https://github.com/openscad/openscad/pull/4478#issuecomment-... My main complaint was you can't say with OpenSCAD: translate(makePen().cap) ; translate(makePen().body) # ...to decompose/modify returned parts of complex objects ...and woefully, you cannot say: pen := new Pen(q,r,s,t); box := new Box( pen.L, pen.W, pen.H ) # ...to be able to make boxes for arbitrary pens ...so it's MATHEMATICALLY parametric, not PROGRAMMABLY parametric, which led me down other CAD-language (eg: CadQuery), or you could use `*.scad` as a _rendering_ language rather than a _development_ language.
- jacquesm 1y agoYes, and it is something that many people that try to use OpenSCAD for some reason do not seem to clue in to.
- Jnr 1y agoGoing back in history works better in Fusion360 than FreeCAD currently, but... In FreeCAD it works but you have to think a bit how you approach it. For example, if you reference an edge that you later on go back and delete, of course it will break things. Also if everything is not correctly constrained and you go back and edit it, it will likely break things. And then there are some bugs as well, but it's free and open source so I am not complaining. :) Similarly as with mesh modeling, where correct modeling style is needed for smoothing not to break things, with CAD you also have to get used to certain approach to modeling, you can't be as chaotic. But the more you do it, the better you will become and in my opinion learning proper CAD modeling approach is easier than proper mesh modeling in Blender.
- commandar 1y ago>Changing dimensions or previous sketches is usually fine, but anything more complicated often results in everything in your stack breaking with strange errors, leading it to just be easier to re-create the model. This is usually the result of design workflows and how you avoid it is going to vary based on the CAD package. It definitely requires being pretty deliberate in design, which can make it harder to draft out an initial design. And the path of least resistance is often one that's more likely to break. One example would be in Fusion, using projected faces in sketches is far more fragile than projecting a body -- but Fusion will happily project faces by default. Which constraint types you use where are another common cause of breakage. The thing that makes it frustrating is that none of this is really well documented anywhere and largely ends up being best practice wisdom passed from one person to another, since a lot of this stuff is really non-obvious. And it's confounded yet again by people cargo culting best practices from one CAD package to another that then gets repeated third and fourth hand. All that said, as you work with it more and delve into more complex designs, you'll end up settling into workflows that result in more resilient models if you're deliberate about it. The "scrap it and start over" cycle is part of the learning experience, IME, as frustrating as it is at the time.