Direct Editing Challenges the Concept of “Dumb Geometry” (beginner’s guide to CAD geekery)
In one of Dan Staples recent comments, he reacts against the term “dumb brep”. First, I need to explain brep. B-rep is “boundary representation”, which means basically the set of faces it takes to make a model. The faces exist in their “untrimmed” form so that some or all of them may be oversized. The boundary faces are a combination of the raw face data and the trim boundary edge. So you can think of the b-rep as the collection of sheets of fiberglass used to make a fiberglass boat. The finished model looks just like a boat, but the b-rep includes faces that are larger than the finished piece. I’m sure that’s not a very good description, maybe Dan can give a more technical or more effective description.
In SolidWorks, working with the brep enables you to almost extract history from an imported model. Remember that the finished brep consists of A) the COMPLETE underlying faces (four sided with no interior holes) and B) the trim boundary (trim includes any holes and any perimeter shape that keeps it from being four sided). In SolidWorks, you can use the Untrim and Delete Hole features to get rid of the trim boundary, and just give you the underlying brep face for any imported model face.
One of the useful ideas behind a b-rep is that you can move individual faces of the boundary, and if the faces around it are large enough or are analytical so they can be extended indefinitely, the model will maintain its integrity. This is what Dan is saying when he says that the brep is incredibly smart. He’s right it is! For faces to extend themselves and trim themselves is great. He seems to say that the brep also understands tangent, concentric, etc. I thought those were functions of the modeler, not the brep, but Dan knows that area far better than I do.
Anyway, the boundary representation is created by the geometry engine in a CAD program. CAD programs generally don’t create their own geometry directly, they have a separate software component do that, which is sometimes licensed from another company. Software like SolidWorks is really just an interface around a modeling engine (or kernel). Solid Edge (ST and traditional) and SolidWorks are both driven by the same geometry engine – the kernel – Parasolid. You can transfer a brep made in Parasolid to an Acis or a Granite kernel, and all these kernels communicate through NURBS geometry definition. That was one thing the industry agreed on. Alternatives to NURBS are point cloud (mesh – 3ds max kind of stuff) or as I understand it, this new T-splines business. NURBS is used for manufacturing because of its high accuracy for complex shapes. Mesh/point cloud is used for computer graphics because of speed and close relation to display data.
In parametric history based modeling, we (meaning “I” or maybe SolidWorks users in general) usually think of the brep as being dumb. The closest thing to a brep that we actually see is imported geometry. To SW users, imported geometry seems dumb because it doesn’t have “intelligent” features that you can edit. But to direct editing people, there is no such thing as dumb geometry (not completely true, but we’ll just go with that for now), because the direct editing software allows you to just directly access the brep, and move the face boundaries. In SolidWorks we edit the brep indirectly through sketches and feature definitions.
So in essence, both direct and history modelers are doing the same thing – editing the brep – but they do it directly and we do it through features and sketches. If we lose our features and sketches we don’t have anything to go on, but that doesn’t matter to the direct edit people. Part of the beauty of direct modeling is that the intelligence is in the interface, not in the model (although remember, the brep has some type of intelligence built in because of the separation of the brep faces and boundary edges). With history based modeling, our intelligence is in the model. I personally think it is easier to put intelligence into the model than into the interface, but you can’t always tote that model intelligence with you, because the CAD companies are too busy trying to hoard customers to enable real interoperability. If the CAD companies were a little more concerned with the state of the technology than their petty bickering, we could have models that would transfer intelligence from SolidWorks to Solid Edge and vice versa. But we don’t have that so the next best thing is direct modeling.
Anyway, with some of this new stuff, like ST, they do add some data to the file to make it changeable, so their model is not just straight brep data. They can externally create relationships and dimensions between faces (parametrics), so all of the intelligence isn’t in the interface, and the ST native file is more intelligent than the straight Parasolid brep. They also have procedural features, which for me are a little hard to get my head around when trying to think of it all in context. I think all of this is a tip of the hat by the direct editing crowd to the power of history based modeling. They probably look at it differently, but I think they recognize that direct edit on its own is kind of raw – you do need some model intelligence to do some things. For example, changing a through hole to a blind hole in a direct modeler would not be straight forward. If the hole has some sort of a feature based definition that functions like a geometry creation wizard to do things like that for you.
History based modelers have already embraced direct edit type functionality to some extent, and I think should do more of that. I still think the future of CAD is between the two somewhere, not at either extreme. Right now, the way direct edit is implemented in products like SolidWorks kind of makes a mess of a history based model. Frankly, I don’t know how exactly to combine the different ways of working other than the way it is right now, but this next software might have an idea about that…
I’m the only one talking about solidThinking in this respect, at least that I know of. I wish some others who know the software would join in the discussion. I said earlier that to direct edit, there is no such thing as dumb geometry, and that it wasn’t completely true. When you have complex (non-analytical) shapes, some direct editors still cannot deal with that very well or at all, so those editors see the complex shape in the same way that SolidWorks sees imported geometry. Some are limited to basically flat, cylindrical, conical, toroidal, spherical, and ruled type faces. solidThinking is a history modeler with a lot of complex shape direct edit capability. Can we get Alessandro Mazzardo in here to comment and educate us a little? Somehow they manage to maintain direct edits to complex surfaces that were originally built using history based method. The direct edit data is not added as a history based feature in the tree (at least I don’t think it is).
Anyway, a lot to think about here.