4 ms·
This is an area I'd love to see more development - but the existing tools I've used all have quite major drawbacks. OpenSCAD is simple and relatively intuitive
by leoedin 6y ago
This is an area I'd love to see more development - but the existing tools I've used all have quite major drawbacks.
OpenSCAD is simple and relatively intuitive once you get your head around 3D space and how every object sits in it. The concept - code on the left, visualisation on the right is great. However, it's barely had any improvements in the 8 or so years I've been using it. The tooling is very basic and the performance can be very poor. There's often no way to know if a tiny change will crash (or slow down computation for so long it locks up) the environment (because it doesn't seem to have separation between the render thread and the GUI). Things like fillets, which other CAD environments can do seamlessly, are only possible with a hack which increases rendering time by many orders of magnitude (if it even finishes).
CadQuery seems promising, but in the time I spent with it I found the workplane model quite frustrating. I wanted to write small functional geometries which I could reuse again and again - but I didn't find an easy way to do that. It seems to use global coordinates for all the transformations, so you need to know ahead of time what plane something's on. Maybe I just didn't understand the documentation though - it's incomplete and so you have to piece things together based on examples.
These are of course open source tools, so it's great that they exist at all. In the age of 3D printing, laser cutting and CNC machining fully parametric code based model generation is really exciting.
- dTal 6y agoThere's ZenCad: https://mirmik.github.io/zencad/en/ https://mirmik.github.io/zencad/en/ I'm extremely impressed by what it tries to be, although I found it to be rather hit-and-miss stability-wise. Seems to be the work of a single gifted developer. I would love to see this tool mature because it's pretty much exactly what I want. For programmatic mesh-based modeling - which is popular in the 3d-printing world but basically a non-starter for "real" CAD - Blender is starting to look quite promising. Blender's Python API is actually very nice for dealing with different coordinate systems (albeit a bit baroque when it comes to interacting with blender's knobs and buttons - although it's very discoverable thanks to the helpful API reference in the tooltips).
- alanbernstein 6y agoThanks for sharing this, seems worth a try at least.
- guitarbill 6y agoZenCad seems to wrap OpenCASCADE [0], which is also used by e.g. FreeCAD. I can't help think FreeCAD could be awesome if it tried to do less. I wonder if you forked it, ripped out stuff for e.g. architecture/finite element analysis/CAM/CNC/etc, then you could spend time on the GUI experience, and end up with a nice CAD tool that works better for fewer use-cases. [0] https://dev.opencascade.org/ https://dev.opencascade.org/
- lvh 6y agoI am incredibly glad someone not-me is wrapping OpenCASCADE. It's an incredibly powerful tool, but it's also kind of a beast of an ancient C++ library with all of the trappings that comes with, like its own version of smart pointers and years of accumulated presumably-unused cruft. You know you're in for a bad time when in 2020-something you have to explain to your bindgen what this is; #if defined (__alpha) || defined(DECOSF1)
- guitarbill 6y agoFor sure. I'm not trying to bash ZenCAD or FreeCAD or OpenCASCADE. What I mean is there's clearly a want or need for open-source CAD packages; and it feels like it's holding the "makersphere" back. A lot of people still use Fusion360, because it works. The open-source options are OpenSCAD and FreeCAD. I doubt the amount of work and investment needed to replace OpenCASCADE would happen; at the same time OpenSCAD's engine clearly has some major limitations. So it's no wonder OpenCASCADE is used. I want to like FreeCAD, but it's an insanely complicated piece of software. That leaves OpenSCAD for now. With ZenCAD, maybe rewriting stuff FreeCAD already does is worth it, but you have to worry about a small number of maintainers and adoption.
- dTal 6y agoYou might be interested in SALOME, which presents as a CFD pre/post-processor but - like most such software - has CAD functions as well. It also uses OpenCASCADE and actually shares a lot of code with FreeCAD. I found it to be rather more stable. https://www.salome-platform.org/ https://www.salome-platform.org/
- zyang 6y agoCheckout curv3d. It has a Haskell like scripting language and parametrics. https://github.com/curv3d/curv https://github.com/curv3d/curv