Remix.run Logo
ur-whale 3 hours ago

> I think OpenSCAD is currently the best and most feature complete choice

As much as I love OpenSCAD, I would strongly disagree with your conclusion.

All the OpenSCAD language can do is boolean operations and moreover, the engine can only implement those on polygonal (triangle actually) meshes.

That's a very far cry from what a modern commercial CAD engine can do.

For example, the following things are very, very hard to do, or even specify using OpenScad:

   - Smooth surfaces, especially spline-based

   - Fillets / Chamfers between two arbitrary surfaces

   - Trimming surfaces

   - Querying partly built models and using the outcome in the subsequent construction (e.g. find the shortest segment between two smooth surfaces, building a cylinder around it and filleting it with the two surfaces, this is an effing nightmare to do within the confines of OpenSCAD)

   - Last but not least: there is no native constraint solver in OpenSCAD, neither in the language nor in the engine (unlike - say - SolveSpace)
I might have misunderstood what you're looking to do, but, yeah, digging deeper feels very much like the right thing to do.
FeepingCreature 3 hours ago | parent | next [-]

(my) fncad doesn't have the querying, but it does have smooth csg! https://fncad.github.io/

Zekio 3 hours ago | parent | prev | next [-]

using BOSL2 alleviates most issues I've run into with OpenScad for chamfers and the like, but it is an extra set of functions you need to remember sadly

https://github.com/BelfrySCAD/BOSL2

ur-whale an hour ago | parent [-]

> BOSL2 ... but it is an extra set of functions you need to remember sadly

It's also extremely slow: it implements chamfers and fillets using morpho, and if you have a large number of fillets, the morpho algorithms (minkowski / hull) are very much non linear in time on polygonal meshes, which leads to compute time explosion if you want a visually smooth result.

Zekio 35 minutes ago | parent [-]

you can get around this somewhat by having less visually smooth previews when editing and higher quality when you want an stl

  $fn = $preview ? 32 : 256;
hrmtst93837 an hour ago | parent | prev [-]

[dead]