Earlier quoted context omitted.
The great thing about OpenSCAD is that it makes creating models which may be described mathematically/programmatically easy. The awful thing about OpenSCAD is that what one can create in it is strongly bounded by one's facility with and fluency in mathematics. I'm curious how the new Python-enabled (I really hope it gets added in to the program itself) will affect this.
The awful thing is that you can only export triangles, so you can't make any true curves. If it was capable to true circles it would do everything I have ever needed to make.
OpenSCAD: The Programmer's Solid 3D CAD Modeller
71–80 of 191 posts
Re: OpenSCAD: The Programmer's Solid 3D CAD Modeller
#72Earlier quoted context omitted.
The great thing about OpenSCAD is that it makes creating models which may be described mathematically/programmatically easy. The awful thing about OpenSCAD is that what one can create in it is strongly bounded by one's facility with and fluency in mathematics. I'm curious how the new Python-enabled (I really hope it gets added in to the program itself) will affect this.
The awful thing is that you can only export triangles, so you can't make any true curves. If it was capable to true circles it would do everything I have ever needed to make.
https://github.com/WillAdams/gcodepreview
See:
https://github.com/WillAdams/gcodepreview/blob/main/export.d...
Re: OpenSCAD: The Programmer's Solid 3D CAD Modeller
#73Earlier quoted context omitted.
For non-commercial use, files are watermarked and can’t be opened later in a commercial or academic licensed version
Sure, but I believe the majority of OpenSCAD users are fine with non-commercial use.
Re: OpenSCAD: The Programmer's Solid 3D CAD Modeller
#74Also written to be a follow along example to help understand how to think about writing OpenSCAD programs.
Re: OpenSCAD: The Programmer's Solid 3D CAD Modeller
#75Earlier quoted context omitted.
The awful thing is that you can only export triangles, so you can't make any true curves. If it was capable to true circles it would do everything I have ever needed to make.
I don't understand this. You can make triangles small enough that you can't tell the difference, and define them mathematically in terms of curves..? Isn't this how any rendering will ultimately work? The primitive is triangles.
As an example, if doing V carving, the appearance will be smoother if the geometry is imported so as to have arcs/curves, deferring the conversion to polylines/straight line movements until the last possible moment on the machine.
Arcs/Curves are also easier to work with if one needs to edit, and are more efficient in terms of representation/disk space/storage.
Re: OpenSCAD: The Programmer's Solid 3D CAD Modeller
#76Earlier quoted context omitted.
For non-commercial use, files are watermarked and can’t be opened later in a commercial or academic licensed version
Sure, but I believe the majority of OpenSCAD users are fine with non-commercial use.
Re: OpenSCAD: The Programmer's Solid 3D CAD Modeller
#77Earlier quoted context omitted.
The awful thing is that you can only export triangles, so you can't make any true curves. If it was capable to true circles it would do everything I have ever needed to make.
I don't understand this. You can make triangles small enough that you can't tell the difference, and define them mathematically in terms of curves..? Isn't this how any rendering will ultimately work? The primitive is triangles.
CAM people, for example drive numerically controlled machines and robots. (CNC machines) These machines are driven by lines, arcs, higher order analytic curves, such as the conic, and recent controllers will accept bsplines.
Having path planning done with real geometric entities brings a lot of benefits along for the ride! Accuracy without a bazillion entities for the look ahead system to manage and for program buffers to drip feed (DNC) to a machine that probably does not have a large enough program memory to deal with that bazillion entities.
In many cases, derivative or extrapolated curves do not convey the right shape or path or are difficult and time consuming to force conformance.
We ended up with the big geometry kernels, such as Parasolid, precisely so that CAD could create a brep (boundary representation model) of sufficient fidelity to make other tasks, such as CAM and simulation, as well as derivative designs possible, practical, repeatable.
Those big code bodies have so damn many man hours of development in them it is very hard to replace it all. And that means we are stuck with some things, like many operations being single threaded, which caps CAD design to be a function of sequential compute speeds.
There are ways to build models to eliminate some dependencies, and the same goes for assemblies, so that multi-processing of some sort is possible. That brings our multi-core CPUs into the game.
But those are hard to teach, a lot of software does not yet support multi-threading anywhere near enough to fully exploit the model work, and, and, and...
In the CAD / CAM world, the primitive is the b-spline, and the surfaces it can represent.
Those generate faces, trim boundaries and sets of those create boundary representation models.
And still those can cause grief. They might be open, or just a surface representation. Or, they may self intersect...
Basically, every edge, which boils down to a b-spline curve that matches up to another b-spline curve serving as a trim boundary of a surface, must be shared by two and only two surfaces or the model is not representative of a real world, manufacturable thing.
Another great observation regarding real world objects is there are no edges, just radii, if only a single molecule big. Just an interesting and perhaps useful aside.
And b-splines are constrained to conform to the properties of lower order entities, such as lines, arcs, and the like. This is a part of why wireframe entities are all called "curves" or "sketch curves." They literally are all b-splines constrained by number and or placement of control points.
Re: OpenSCAD: The Programmer's Solid 3D CAD Modeller
#78Earlier quoted context omitted.
I don't understand this. You can make triangles small enough that you can't tell the difference, and define them mathematically in terms of curves..? Isn't this how any rendering will ultimately work? The primitive is triangles.
Yes, but the representation as arcs allows one to defer the conversion to polylines/triangles until a later time. As an example, if doing V carving, the appearance will be smoother if the geometry is imported so as to have arcs/curves, deferring the conversion to polylines/straight line movements until the last possible moment on the machine. Arcs/Curves are also easier to work with if one needs to edit, and are more…
Re: OpenSCAD: The Programmer's Solid 3D CAD Modeller
#79The commercial CAD systems all have APIs to do the same kind of stuff, but they also have sophisticated UIs on top to make them easier to use visually. NX even lets the user record UI interactions as a function to make creating initial code faster.
In fact, there's a whole niche of CAD programming.
Re: OpenSCAD: The Programmer's Solid 3D CAD Modeller
#80As cool as OpenSCAD is, it's just one way of writing code to work with CAD. The commercial CAD systems all have APIs to do the same kind of stuff, but they also have sophisticated UIs on top to make them easier to use visually. NX even lets the user record UI interactions as a function to make creating initial code faster. In fact, there's a whole niche of CAD programming.