Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Blender's got a constraint solver for IK, right? How much spaghetti code do we need to add to give it a full CAD kernel? It already does everything else!

I've honestly wished I could use it to make vector graphics sometimes, but that also needs some of the basic elements of CAD (parallel edges, radius constraints etc). It's so close to parametric modeling too, with the mesh modifiers, drivers, and now geo-nodes.

Of course, I believe there are a few CAD plugins, but I've never used them, so I can't speak to their efficacy.



There's a bit more to it than that. There's an underlying library which can support solid modelling, but Blender has (or had) such an outdated version that it just wasn't possible.

Back in 2020 someone submitted code to get it working, in order to make solid modelling possible:

https://archive.blender.org/developer/D6807

Unfortunately it looks like no official Blender developer ever took the time to review it, let alone merge it.

Super unfortunate, as it was only about 15 lines changed. Probably would have needed at least one revision though, as one of the changes was just commenting out some lines. That'd likely have needed to be a better conditional instead.


That's interesting, and funny I was just thinking that it was the NURBS stuff that reminds me of the surface modeling in programs like fusion.


There is the excellent CAD sketcher plugin for Blender; this adds a basic 2D parametric/constraint based editor into your workflow, which can convert it's output into a mesh to integrate into your blender model. For more complicated models I typically make 2 or 3 2D constraint models, and use the blender boolean tools to combine this into the final 3D model.

https://www.cadsketcher.com/


While similar at a glance, the underlying functionality between a 3d modeler and a CAD kernel is tragically completely different.

Even FreeCAD has some fundamental differences (and lack of functionality) between it and other mainline CAD programs.

Hopefully someone with more knowledge and experience than me can hop in and explain more, I'm just a CAD user, not a CAD kernel developer.


I'm not an expert either, but it could be compared to bitmap graphics vs. vector graphics.

3D modelers like blender (or even OpenSCAD) work with a bunch of triangles - there is often not some higher level representation of the geometry. You could put a drill hole in a part, but it ends up as just a ton of triangles that approximate that drill hole, vs. a file format which semantically encodes "there is a cylindrical drill hole at this location, with this vector direction, and this radius".

That's what things like BRep (Boundary Representation) and STEP files give you is that semantic data which describes the part "here are the edges, faces, dimensions, etc.", vs. "here's a bunch of triangles, good luck machining this"


> but it could be compared to bitmap graphics vs. vector graphics.

This is very much how I internally understand it and explain it to people, yes!

It is a good analogy for e.g. why it's often a challenge to get something milled with a CNC when you only have an STL file.

STL is like a PNG line drawing: it can be high quality, but it's not describing the drawing. STEP is like SVG: it's more effort to render it, but it contains the instructions to draw it.


Isn't the problem with that analogy that there are things like NURBS which are pretty directly analogous to vectors (and isn't a surface a boundary?)

Edit: Along with the fact that blender has a lot of non destructive workflow steps (that usually get baked out into the "bitmap", to further your analogy)


It's not a perfect analogy, and Blender does have some parts which resemble the sort of data structures you'd use in a CAD modeler.

I think with enough plugins and customizations, you _could_ twist blender into something that resembles a CAD modeler, but it's really an uphill fight compared to selecting tools which were designed with that goal in mind from the start.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: