Comment by jijijijij

Comment by jijijijij 9 hours ago

7 replies

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.

diggan 8 hours ago

> 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.

  • AnIrishDuck 7 hours ago

    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

    • diggan 6 hours ago

      > 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).

      So with that in mind, there should be something that is possible to build in CAD, but impossible then to build in Blender?

      I know the differences between the two, I understand they're fundamentally different, yet I seem to be able to produce similar results to others using CAD, so I'm curious what results I wouldn't be able to reproduce in Blender.

      Any concrete examples I could try out?

  • jijijijij 8 hours ago

    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.

    • commandar 7 hours ago

      >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.

      A common problem people run into with CAD models is importing a STEP file and modeling directly off of geometry in it. They later find out that some face they used as a reference was read by the CAD package as 89.99999994 degrees to another, and discover it's thrown the geometry of everything else in their model subtly off when things aren't lining up the way they should.

      And that's with a file that has solid body representation! It's an entire new level of nightmare when you throw meshes into the mix.

      The heart of any real CAD package is a geometry kernel[1]. There are really only a handful of them out there; Parasolid is used by a ton of 'big name' packages, for example. This is what takes a series of descriptions of geometry and turns it into clear, repeatable geometry. The power of this isn't just where geometry and dimensions are known. It's when the geometry and dimensions are critical to the function of whatever's being modeled. It's the very core of what these things do. Mesh modeling is fantastic for a lot of things, but it's a very different approach to creating geometry and just isn't a great fit for things like mechanical engineering.

      1 - https://en.wikipedia.org/wiki/Geometric_modeling_kernel

      • jijijijij 6 hours ago

        > The power of this isn't just where geometry and dimensions are known. It's when the geometry and dimensions are critical to the function of whatever's being modeled.

        Yes, but I meant making a case for workflow differences.

        CAD is bad at aiding visual thinking and exploration, since you kinda have to be precise and constrain everything. You can pump out a rough idea of an object, edit it much, so much faster in Blender.

        Sketching on paper, or visualizing in one’s mind, is pretty hard for most people when it comes to 3D. CAD is not at all inviting for creative impulses and flow. People who can do this in CAD are probably trained engineers who learned a very discipled, analytical way to approach problems, people who think in technical drawings.

        So, CAD is good at getting a precise and workable digital representation of a "pre-designed" object for further (digital) processing, analysis, assembly and production. I think Blender is better at the early design process, figuring out shapes and relations.

        • commandar 6 hours ago

          I don't entirely agree there.

          In a vacuum for a standalone object, a 3D mesh app like Blender can be useful for brainstorming.

          Most of my CAD usage is designing parts that have to fit together with other things. The fixed elements drive the rest of the design. A lot of the work is figuring out "how do I make these two things fit together and be able to move in the ways they need to."

          There is still a lot of room for creativity. My workflow is basically "get the basic functionality down as big square blocks, then keep cutting away and refining until you have something that looks like a real product." My designs very rarely end up looking like what they started out as. But the process of getting them down in CAD is exactly what lets me figure out what's actually going to work.

          It's a very different workflow, and it's definitely not freeform in the same way as a traditional mesh modeling app, but CAD is for when you have to have those constraints. You can always (and it's not an uncommon pattern) go back and use a mesh modeler to build the industrial design side of things on top once the mechanical modeling is done.

          ETA:

          I'd also add: I'm not sure "thinking in CAD" comes naturally to anyone; it's a skillset that has to be built.