4 ms·
Wow. Any user of OpenSCAD should check out libfive Studio. It looks amazing.
by mayoff 8y ago
Wow. Any user of OpenSCAD should check out libfive Studio. It looks amazing.
- blt 8y agoThis is really cool but it looks like the constraint solver [1] is not much more complex than the one shown in this web page. I really want a program-driven functional CAD tool like libfive or OpenSCAD, but with powerful 3d constraint solving like, e.g. Solidworks can provide. [1] https://github.com/libfive/libfive/blob/master/libfive/include/libfive/solve/solver.hpp https://github.com/libfive/libfive/blob/master/libfive/inclu...
- pwnna 8y agoI've always wanted this as well but I haven't gotten the time to actually look into writing this. This would solve a lot of complaints I have and have heard about traditional CAD software, as they tend to constrain you with their very complex GUI.
- blt 8y agoIt might not be that difficult to implement a high level DSL around one of the geometric modeling kernels like Parasolid, ACIS, etc. that form the computational core of GUI CAD programs. But I don't know if any equally powerful CAD kernels exist in the open source world.
- sjm-yc-acct 8y agoFreeCAD uses Open CASCADE, which is is a free software (LGPL) CAD kernel. Open CASCADE has a comprehensive modeling API which uses B-rep. For scripting, FreeCAD has a Python interface. CadQuery is another Python tool (DSL) which is a plug-in for FreeCAD. FreeCAD itself already has some constraint functionality. Libfive is layered and can be used without Studio to generate models with its extensible Guile Scheme binding. It uses F-rep modeling. Correct me if I'm wrong, but it should be possible today to add a programmatic (non-GUI) constraint solver to either FreeCAD or Libfive.
- blt 8y agoYou are probably right. I realize my previous post sounded pessimistic but I was only trying to state my ignorance :)
- sjm-yc-acct 8y agoMatt Keeter's Libfive is a very promising project. Our company has written a Common Lisp binding: https://common-lisp.net/project/tovero/ https://common-lisp.net/project/tovero/ and it would be useful to have a constraint solver. We are looking at ways of applying Libfive to mechanical design. I have also developed a prototype of a Libfive viewer--written in Guile Scheme for use with a REPL/Emacs: https://github.com/sjm-tl-gh/inspekt3d https://github.com/sjm-tl-gh/inspekt3d Coding 3D models in Lisp has been an amazing experience (even without a constraint solver). Libfive also has a FFI-friendly C API, so other language bindings (e.g. Python) are very feasible. One feature Libfive is currently missing is a general sweep of a shape along a curve--which seems to not be so straight forward with F-rep modeling.