Live data from Hacker News

Build123d: A Python CAD programming library

github.com

11–20 of 67 posts

Re: Build123d: A Python CAD programming library

#11
post #6

I have been using this library for a few months alongside Gemini 3.1 Fast It's really useful to get an iteration loop going with an LLM. The OCCP viewer extension for VS Code helps make sure you can see and manipulate the resulting model

last time i tried, i didnt get the standalone mode to run.. there seems to have been an update in february, so i will give this another try when there's time..

(context: https://github.com/bernhard-42/vscode-ocp-cad-viewer/)

Re: Build123d: A Python CAD programming library

#12
post #2

These types of CAD scripting tools are great but always try to position themselves as an “alternative” to GUI-driven CAD, whereas in reality they are complementary. OnShape got it right with FeatureScript ( https://cad.onshape.com/FsDoc/ ), which provides a very similar experience to Build123d at the scripting level. However, the insight that OnShape got right is that these scripts automatically become available as p…

I didn't know OnShape had such a feature. Will check it out! What you describe is one of the main reasons why I use Rhino3D. It can be scripted via the Grasshopper plugin, which integrates really nicely with Rhino and its primitives. Sadly, Rhino isn't open source and is quite pricy - https://www.rhino3d.com/ - https://www.grasshopper3d.com/

The fun thing is that onshape itself has a very thin kernel. Most of what you see as built in features are actually featurescript based. Onshape provides the source code for their built in feature set as a reference. https://cad.onshape.com/documents/12312312345abcabcabcdeff/w... You do need an account login ( free ) to view it.

Re: Build123d: A Python CAD programming library

#13
In many ways this looks fun. I love the precise control and programming power of tools like this, but when I need something in real life, I never use them any more. The productivity of graphical tools is so much greater (as far as my brain works).

When I was younger I used POVray for a few small projects, but once I had access to graphical interfaces the difference in output quantity and quality was huge. I still keep tools like POVray installed, but all I ever do with them is tinker once in a while.

Re: Build123d: A Python CAD programming library

#14
post #2

These types of CAD scripting tools are great but always try to position themselves as an “alternative” to GUI-driven CAD, whereas in reality they are complementary. OnShape got it right with FeatureScript ( https://cad.onshape.com/FsDoc/ ), which provides a very similar experience to Build123d at the scripting level. However, the insight that OnShape got right is that these scripts automatically become available as p…

I’d love to see this. It was a frustrating learning curve for me to realize that I couldn’t STEP export work from OpenSCAD to something like Fusion.

Build123d is much better (supports STEP export and import) but a tightly integrated CAD frontend would be ideal!

Re: Build123d: A Python CAD programming library

#16
post #2

These types of CAD scripting tools are great but always try to position themselves as an “alternative” to GUI-driven CAD, whereas in reality they are complementary. OnShape got it right with FeatureScript ( https://cad.onshape.com/FsDoc/ ), which provides a very similar experience to Build123d at the scripting level. However, the insight that OnShape got right is that these scripts automatically become available as p…

I think most GUI CADs have some kind of API like this. In FreeCAD it's Python. In Solidworks, it's VBA or C#. I don't think any are particularly well documented or supported by tutorials.

Re: Build123d: A Python CAD programming library

#17

In many ways this looks fun. I love the precise control and programming power of tools like this, but when I need something in real life, I never use them any more. The productivity of graphical tools is so much greater (as far as my brain works). When I was younger I used POVray for a few small projects, but once I had access to graphical interfaces the difference in output quantity and quality was huge. I still kee…

I remember running across POVray in the early 90's and not having a clue how to do anything more complex than a sphere with a light source.

Some artists have done some truly magical things with it: https://hof.povray.org

Re: Build123d: A Python CAD programming library

#18
post #12

Earlier quoted context omitted.

I didn't know OnShape had such a feature. Will check it out! What you describe is one of the main reasons why I use Rhino3D. It can be scripted via the Grasshopper plugin, which integrates really nicely with Rhino and its primitives. Sadly, Rhino isn't open source and is quite pricy - https://www.rhino3d.com/ - https://www.grasshopper3d.com/

The fun thing is that onshape itself has a very thin kernel. Most of what you see as built in features are actually featurescript based. Onshape provides the source code for their built in feature set as a reference. https://cad.onshape.com/documents/12312312345abcabcabcdeff/w... You do need an account login ( free ) to view it.

Kernel here is ambiguous.. I get what you mean, but parasolid is usually the thing described as the cad kernel.

Re: Build123d: A Python CAD programming library

#19
post #5
post #3

Despite being aware of its existence, I stuck with OpenSCAD out of habit. Only last week did I read through the documentation, and feel strongly that I've been missing out… it seems to solve all of my gripes with OpenSCAD. I'm excited to try it out!

I've been wanting to get into OpenScad. Wondering what you've identified as an issue. I dabbled a little and I think I remember wishing it was more object oriented to make it a bit easier to make reusable adjustable pieces and I had found a python library that does openscad conversions; Wondering what gripes it solves for you.

B-rep (boundary representation) modelers (like build123d via OpenCascade) represent solids using faces, edges, topology geometry

OpenSCAD uses Constructive Solid Geometry (CSG) which represents objects as boolean combinations of primitives (union, difference, intersection). It does not maintain an explicit boundary/face structure internally

Post reply on HN