Hacker News new | ask | show | jobs
by Klaus23 261 days ago
Blender is great, but it still can't replace a CAD program. I tried using it for simple CAD tasks (before geometry nodes were released), but the experience was so poor that I quickly switched to FreeCAD. It was worth it, even though it took some time to learn how to use the new program.

FreeCAD is pretty buggy, confusing, and sometimes limited, but its workflow can't really be replicated with Blender. Once you have worked with a CAD program for a while, you realise that certain things that are almost impossible or annoyingly difficult in Blender can actually be pretty easy.

It would be great if the two programs could be merged. Blender could benefit from better CAD functions, and FreeCAD could benefit from everything else Blender provides.

2 comments

The CAD Sketcher add-on goes a long way towards making it more usable. I’ve been hacking away at it myself (should go back to finish what I was adding…).
Nice. That wasn't on my radar. I was already happy when Blender made significant progress in parametric modelling with geometry nodes. Together with CAD Sketcher, it looks pretty usable for modelling. I hope the whole thing improves quickly, but I suspect they have a long way to go before Blender can be considered a proper CAD program.
Can you explain more? Which things are impossible in blender
Spiritually, Blender is to FreeCAD what Gimp is to Inkscape or what BMP is to SVG. With Blender you're massaging piles of anonymous polygons so they look right aestheticallY, while with CAD you're composing geometric primitives to make a precise blueprint for a 3D object that just happens to be rendered with polygons. The former is better for art while the latter is better for manufacturing.
Any there any open CAD file formats that lay a foundation for describing this kind of 3D data without classic triangles?
A .step or .stp file encodes the model as mathematical shapes, rather than approximating it with polygons, but it doesn't save the entire parametric workflow or history, only the final result. As far as I know, there is no widely adopted file format that also saves this information.
Parent's comparison is pretty great, but it shouldn't be "overdone". It's not really the format that's different/a problem (it's not hard to make a blender object from a CAD design - the same way an SVG can be rendered to PNG, and similarly irreversible in both cases), it's the whole design flow.

CAD uses geometry primitives with parameters and exact sizing (e.g. you draw a rectangle of this size, and cut a whole into it this and this offset from one of the corners, and you expand this shape to 3D). As mentioned this can be approximated via geometry nodes, but they are very different in "ideology".

For architecture, there is Industry Foundation Classes (IFC). IFC is a standard for describing building. FreeCAD supports this natively. There's a tutorial here: https://yorik.uncreated.net/?blog%2F2025%2F002-nativeifc-tut...

Blender has and extension for IFC called Bonsai. https://extensions.blender.org/add-ons/bonsai/

CAD modeller are good at producing parametric 3d models. You can make use of spreadsheets and constraints to create a piece, that will later super easily be changed.

https://en.wikipedia.org/wiki/Constraint_(computer-aided_des...

> CAD modeller are good at producing parametric 3d models

If that's the only thing they do better than Blender, then it sounds like their days are numbered. Has to be more benefits right? Blender exposes a pretty wide Python API, loading spreadsheets ends up pretty simple, and together with Geometry Nodes, you can even visualize it in a way that makes somewhat sense. Constraints been existing for a long time in Blender too.

They are better at it on a fundamental level. It’s a completely different approach for data representation, offering precision and repeatability which is not possible with Blender's data model.

Blender may as well replace CAD apps in the hobbyist 3D printing space, but it will never replace them in the industry and professional work. Solid modeling CAD software commonly features more than just creating mathematically precise digital 3D objects, but also planning for CNC machining, FEM analysis, assembly and so on.

> It’s a completely different approach for data representation, offering precision and repeatability which is not possible with Blender's data model.

How exactly? And why not?

You need useful measurements/units, reproducibility, parameters, constraints, and I guess something more? As Blender can give you those things, it's not impossible in Blender. Want to have 3D objects automatically created based on values from CSVs together with constraints? Blender can already do that today, just as one example.

I don't really mind if Blender has a chance of replacing CAD apps or not, more curious about why exactly people find it so fundamentally impossible for Blender to be a useful alternative, and I have yet to hear any convincing arguments.

An analogy is the difference between vector and bitmap graphics.

CAD programs aren't just a different set of operations on the same data, they use an entirely different representation (b-rep [1] vs Blender's points, vertices, and polygons).

These representations are much more powerful but also much more complex to work with. You typically need a geometric kernel [2] to perform useful operations and even get renderable solids out of them.

So sure, I suppose you could build all of that into Blender. But it's the equivalent of building an entire new complex program into an existing one. It also raises major interoperation issues. These two representations do not easily convert back and forth.

So at that point, you basically have two very different programs in a trenchcoat. So far the ecosystem has evolved towards instead building two different tools that are masters of their respective domains. Perhaps because of the very different complexities inherent in each, perhaps because it makes the handover / conversion from one domain to the other explicit.

1. https://en.m.wikipedia.org/wiki/Boundary_representation

2. https://en.m.wikipedia.org/wiki/Geometric_modeling_kernel

I don’t have explanatory knowledge on the matter, sorry.

If you are interested you may look up the difference between solid, surface and mesh modeling. They all have strengths and weaknesses.

Ultimately you have to translate any model into a lossy representation/approximation due to discrete numerical control requirements and so on. However, the gist if it is, with mesh modeling this happens earlier in the design process. Even with procedural and parametric modeling in Blender, you will always encounter issues with approximation and floating point precision, which are inherent to the data representation.

For 3D printing that often doesn’t matter, because mesh approximation is precise enough. For hobbyists, CAD apps are kinda too niche and bothersome to be worth learning for simple models in 3D printing. The overall versatility of Blender and basic CAD-like capabilities are much more valuable and rewarding, in this space. In the end, you probably massively benefit from learning something like Blender anyway, because it’s much better suited for quickly conceptualizing an idea in 3D, than CAD. I think CAD works best, if the shape and specs of the object are already known. Organic shapes, clay-like deformations, which can’t be easily reduced to mathematical defined solid body functions, are something where Blender will always be better suited than CAD.

If you try OpenScad-style adding and subtracting volumes, the syntax is pretty horrific. It is impossible to script objects that way. Quote Gemini:

  However, implementing a full OpenSCAD-like syntax and robust CSG system from   scratch in Blender Python is complex due to Blender's mesh-based nature versus OpenSCAD's mathematical description. Blender's boolean operations on complex meshes can sometimes lead to topological errors.
To be fair though, OpenSCAD works best too if you do this during the generative step and not after the fact. I've used it to remix existing STLs so it definitely does work but you really have to watch the areas where two shapes get close to each other, especially if there is a lot of fine detail.
Did I solve all problems that OpenSCAD might have? Compared to FreeCAD. Me myself think I did: https://youtu.be/eG5lhLYvihQ?si=yA00IYVU4_Zemdxi