Live data from Hacker News

OpenSCAD: The Programmer's Solid 3D CAD Modeller

openscad.org

71–80 of 191 posts

Re: OpenSCAD: The Programmer's Solid 3D CAD Modeller

#71
post #70

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.

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.

Re: OpenSCAD: The Programmer's Solid 3D CAD Modeller

#72
post #70

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.

I added the ability to export to arcs/circles when writing out DXFs using PythonSCAD in the library:

https://github.com/WillAdams/gcodepreview

See:

https://github.com/WillAdams/gcodepreview/blob/main/export.d...

Re: OpenSCAD: The Programmer's Solid 3D CAD Modeller

#73

Earlier 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.

Generally people who preferred niche apps like OpenSCAD preferred not to be restricted in how they can use the app.

Re: OpenSCAD: The Programmer's Solid 3D CAD Modeller

#75
post #70

Earlier 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.

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 efficient in terms of representation/disk space/storage.

Re: OpenSCAD: The Programmer's Solid 3D CAD Modeller

#76

Earlier 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.

If they were, they would probably be using TinkerCAD.

Re: OpenSCAD: The Programmer's Solid 3D CAD Modeller

#77
post #70

Earlier 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.

There is a big world out there beyond rendering.

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

#78

Earlier 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…

All true. Great comment.

Re: OpenSCAD: The Programmer's Solid 3D CAD Modeller

#79
As 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.

Re: OpenSCAD: The Programmer's Solid 3D CAD Modeller

#80

As 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.

I made macros for Solidworks and Catia v5 during my Mechanical Engineering days and Visual Basic for applications + most Windows program is so powerful. But at the same time, VBA can be such a painful language because some language behavior is not typical.
Post reply on HN