Build123d: A Python CAD programming library

(github.com)

45 points | by Ivoah 20 hours ago

8 comments

  • injidup 1 hour ago
    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 possible nodes within the history-based modeller. The OnShape UI is infinitely extendable beyond the fixed set of tools that comes with the base modeller.

    Build an FOSS CAD front end using something like Build123d as the extension engine, and then add hooks so the user can select edges, surfaces, objects, etc., and feed them to inputs on the scripts. The output of the script is then the new state of the history-based modeller. That would be killer

    • CountVonGuetzli 1 hour ago
      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/

    • rao-v 52 minutes ago
      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!

  • nakedneuron 1 hour ago
    as someone mentioned recently somebody made this build123d-playground on the web:

    https://jojain.github.io/build123d-sandbox/

    learning curve is steep, but the examples get you going in no time..

    though not really CAD, favorite example: https://build123d.readthedocs.io/en/latest/examples_1.html#c...

    shows the ability of this implementation of the open cascade kernel.. i havent found this kind of projection function too often in other cad programs, so this is really cool.. i remember trying to do similar with ptc creo and it was a pain..

  • latenode 1 hour ago
    CAD has needed a proper code-first workflow for years. The existing options always felt like they were built for the GUI first and scripting was bolted on after.
  • wisemanwillhear 1 hour ago
    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.

  • htgb 1 hour ago
    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!
    • beering 1 hour ago
      Mainly OpenSCAD is not a BRep modeling tool! It is not on the same level of power as CAD tools with a BRep kernel and this especially shows when you want to do a fillet over an arbitrary edge. Unfortunately these kernels are hard to make and integrate and I only know of two open-source BRep kernels out there: OpenCASCADE (used by FreeCAD and build123) and truck (not sure what the status of it is).
    • plumbees 1 hour ago
      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.
  • z3ugma 1 hour ago
    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

  • jpleger 34 minutes ago
    This is cool, seems like a next gen cadquery, which was really cool to see.
  • CarVac 1 hour ago
    I like Build123d but I really want a hybrid mouse/code CAD built around it. I want to be able to click on entities and have them show up in the code editor instead of blindly trying to select edges.