top | item 41544104

(no title)

wiw2 | 1 year ago

I poked around with CadQuery and Build123D.

The learning curve required a paradigm shifted in abstraction. That was too much.

I just want OpenSCAD simplicity, but with modern programming language syntax.

I ended up settling with PythonScad. I was able to hit the ground running and leverage what I already know about python within a day.

It's new, but the author is extremely active and collaborative on github (https://github.com/gsohler/openscad) and reddit (https://www.reddit.com/r/pythonscad/). The author actually pushed for merging this into OpenSCAD mainline, but got gatekeeped out since OpenSCAD maintainers believed Python went against OpenSCAD's mantra of being 'secure'.

I recommend PythonSCAD to anyone that liked OpenSCAD simplicity in abstraction but feel handicapped by the lack of expressiveness.

discuss

order

throwgfgfd25|1 year ago

> The learning curve required a paradigm shifted in abstraction.

This is true! And I think that brute-force simplicity of OpenSCAD is the appeal. I am still ultimately a CAD greenhorn but it got me started, and I don't blame you.

But I guess the point I am getting to is, that paradigm shift is where you really want to be. It's certainly where I think most competent programmers who want to really build in 3D should want to be.

Because it unlocks the ability to reason about the shapes you're creating, within the code that creates them. You can for example place a feature in the centre of a face of an object you just created, without having to recalculate the location of the centre of the face or the normal etc.

You can write code that is truly parametric with real encapsulations, and without a battery of variable definitions and calculations for every single element -- because you can reflect on what you've already made.

(You can also export STEP files to other packages, import STEP files and reason about/analyse those as objects rather than meshes.)

rollcat|1 year ago

As someone who's dabbled a little bit with OpenSCAD, SolidWorks, etc:

> Because it unlocks the ability to reason about the shapes you're creating, within the code that creates them. You can for example place a feature in the centre of a face of an object you just created, without having to recalculate the location of the centre of the face or the normal etc.

I can definitely see the appeal of this; would it be possible to refit such capability back into OpenSCAD's model (even if it meant breaking some backwards compatibility)? Like, you're not just executing imperative "drawing" operations, but the models you've created become available as first-class objects to be further referenced & poked at?

wiw2|1 year ago

Thankfully I have been able to do what I want to do without learning the complexity that comes with Build123d etc.

Perhaps someday, but I havent had the need to get there thus far.

Also: Encapsulation etc was achievable with Python, which is something I already know. PythonSCAD checked all the boxes for me without the learning curve.

msephton|1 year ago

I find it quite surprising that you're a self-proclaimed greenhorn, but very opinionated about what apps people should be using.