Earlier quoted context omitted.
Fornjot[0][1] is also really impressive as a CAD kernel. It is written in Rust, and is still a WIP, but I think is turning out nicely. [0] https://www.fornjot.app/ [1] https://github.com/hannobraun/fornjot
I was extremely excited about Fornjot for both personal and professional reasons, but the author has shared important updates that would deter me from using it outside of hobbyist contexts: May 2023 https://www.fornjot.app/blog/a-new-direction/ I don't know how things will shake out long-term, but for now, I'm going to reduce my effort to one day per week... As of now, the goal of Fornjot is no longer to build a CAD…
OpenSCAD: The Programmer's Solid 3D CAD Modeller
171–180 of 191 posts
Re: OpenSCAD: The Programmer's Solid 3D CAD Modeller
#172Earlier quoted context omitted.
> OpenSCAD is a one-way, declarative CSG environment that essentially only outputs mesh formats This is why such a basic-seeming thing as “how do i get the bounding box for this CSG frankenobject I’ve created?” comes up again and again on stackoverflow etc. it’s apparently not possible without some hacks. I’ll take a look at the alternatives you mentioned, thanks.
OpenSCAD is often said to be for programmers, but in some ways it's more for mathematicians. If you know the formula/code for the object, you can calculate the bounding box, but that isn't a way most programmers are used to thinking.
It’s like programming without higher level language constructs. Yes, lower level languages are still Turing-complete so can technically do everything. But the necessary housekeeping distracts from the real problem I’m trying to solve.
Re: OpenSCAD: The Programmer's Solid 3D CAD Modeller
#173OpenSCAD of course is not as powerful as other tools, but it has a lot of pros (depending on what you consider a pro): - Free, unlike other tools such as Fusion or SolidWorks - Open Source, unlike other tools such as Tinkercad or OnShape - 100% based on a programming language: compared to others is like comparing plain HTML with HTML + JS - Parameterizable (as a consequence of being based on a programming language),…
Re: OpenSCAD: The Programmer's Solid 3D CAD Modeller
#174Earlier quoted context omitted.
I can see where you are coming from, and I've thought about similar ideas. But ultimately, I think this fails for separation-of-concern reasons. Describing the part is different from describing how to make the part. The same part might be sent to 3D printing for a non-functional fit prototype, sent to a prototyping machine shop to make 5 or so units on basic CNC machines that require 3 set-ups to complete it, and aft…
> Describing the part is different from describing how to make the part. The same part might be sent to 3D printing for a non-functional fit prototype, sent to a prototyping machine shop to make 5 or so units on basic CNC machines that require 3 set-ups to complete it, and after a few design iterations scaled to production on a multi-spindle Swiss-style lathe that drops finished parts into the basket all night long,…
Re: OpenSCAD: The Programmer's Solid 3D CAD Modeller
#175Earlier quoted context omitted.
This is not true anymore with PythonSCAD. There is a mesh() function which can yield the points and triangles from any Object. The User is free to modify these points and faces and finally create a new solid from it "polyhedron" You could use this to skew your model in a fancy way by altering the point coordinates but it might be more difficult to alter on the triangles.
By "faces" I don't mean triangles. I mean the true geometry of the object. Say for example a single six-sided die: six faces, twelve edges. But this would be twelve mesh triangles, right? None of which individually represent a face -- and six of the mesh edges are not edges in the true geometry. A rounded six-sided die might have 26 faces (including the curved edges, rounded corners). 48 edges between them. etc. But…
IIRC STLs are triangular meshes. Would bRep programs like build123d able to "convert" them to "true geometric objects"?
I would presume the answer is no.
Re: OpenSCAD: The Programmer's Solid 3D CAD Modeller
#176Earlier quoted context omitted.
By "faces" I don't mean triangles. I mean the true geometry of the object. Say for example a single six-sided die: six faces, twelve edges. But this would be twelve mesh triangles, right? None of which individually represent a face -- and six of the mesh edges are not edges in the true geometry. A rounded six-sided die might have 26 faces (including the curved edges, rounded corners). 48 edges between them. etc. But…
What if I tend to import STLs from thing verse and modify them? IIRC STLs are triangular meshes. Would bRep programs like build123d able to "convert" them to "true geometric objects"? I would presume the answer is no.
You can make an almost perfect analogy with raster and vector image formats. They both have their niches; however: it's trivial to rasterize a vector drawing, but it's a ton of work to vectorize an raster image well.
So, all things being equal, it makes sense to start your designs at the 'high ground'.
Re: OpenSCAD: The Programmer's Solid 3D CAD Modeller
#177A better system would enable true constraint-based parametric design, but I think doing so would involve an order of magnitude more complexity in the implementation, and quite probably infeasable compute times.
Re: OpenSCAD: The Programmer's Solid 3D CAD Modeller
#178Earlier quoted context omitted.
This is not true anymore with PythonSCAD. There is a mesh() function which can yield the points and triangles from any Object. The User is free to modify these points and faces and finally create a new solid from it "polyhedron" You could use this to skew your model in a fancy way by altering the point coordinates but it might be more difficult to alter on the triangles.
By "faces" I don't mean triangles. I mean the true geometry of the object. Say for example a single six-sided die: six faces, twelve edges. But this would be twelve mesh triangles, right? None of which individually represent a face -- and six of the mesh edges are not edges in the true geometry. A rounded six-sided die might have 26 faces (including the curved edges, rounded corners). 48 edges between them. etc. But…
however, openscad does not have an internal B-REP kernel and you would have to rewrite the program to change that.
Re: OpenSCAD: The Programmer's Solid 3D CAD Modeller
#179If you want to do code-CAD for anything substantial and you haven't yet developed a significant dependency on OpenSCAD, do your brain a favour and spend at least some time with CadQuery, Build123D or (if you prefer JS to Python) Replicad. As impressive as NopSCADlib and BOSL2 are (and OMG they are, when you consider what they have to work with!) , OpenSCAD is a one-way, declarative CSG environment that essentially on…
Perhaps I just wasn't fully understanding how to use it and it wasn't supposed to be mainly CSG focused, but it ended up being much more effective for me to spend a day just fiddling around in FreeCAD to learn how to use it.
Re: OpenSCAD: The Programmer's Solid 3D CAD Modeller
#180Earlier quoted context omitted.
I’d recommend taking a look at SolidWorks. For hobbyist use, it’s $50 / year or $15 for a month. You will save yourself so much time and headaches and develop a skill that could be useful for your resume.
Siemens Solid Edge is also available in a free community edition. https://resources.sw.siemens.com/en-US/download-solid-edge-c...
Is commercial use allowed?