[editor]: This was a post written five years ago about the possibility of using familiar parametric design ideas with history-free models. Here I’m trying to get my head around the idea, and trying to introduce readers to the concept that maybe history-based modeling isn’t the only game in town.
What gets me is that too many people, even people who should know better, assume that Solid Edge has thrown out the idea of “parametrics” in favor of some push-pull “that-looks-about-right” interface. Somehow, parametrics and history modeling have become inseparably conjoined at the hip, and people have this incorrect association with direct editing that it’s an approximate, visual way to make changes to models. At the risk of spoiling your joy of discovering the answer to the leading question in the title, yes, you can separate parametrics from history. And yes, parametrics does exist within the Solid Edge Synchronous Technology method for modeling.
At the end of the article, I conclude with a video showing some edits to an imported part in Solid Edge using just dimensions applied to the model. To me at the time, this was mind bending stuff. I think this is becoming relevant to more people as they realize that the game has indeed changed, and it’s time to shop for CAD software again.
We’re closing in on it. We’ve talked about several topics surrounding the Direct Editing craze that is making its way through the blogger, press and analyst circuit. Users are not silent on the issue, but what they have to say so far sounds relatively uninformed. More on that later. For now, on with the show.
From a previous post, history modeling brings advantages as well as disadvantages. There is both downside and upside when you separate history from the rest of the attributes that we normally associate with history modeling. I think we tolerate history modeling primarily because we don’t know anything else. It isn’t clear to me that history modeling is necessarily the best way of looking at all types CAD models. This is all I’ll have to say about history modeling for this post.
Parametrics, on the other hand, I think has clearly demonstrable advantages. The ability to make geometric relations, using equations, dimensions, etc. This is the kind of thing we use to establish “design intent” or an “intelligent model”.
What interests me today is if you can separate parametrics from history, and if you can, what would the result look like? What is parametrics? It’s just the use of “parameters”, right? We have come to think of “parameters” as dimensions, numbers (for patterns), equations, relationships, stuff like that. So what if you took that information and just attached it to the finished model? Is there any reason why you can’t attach dimensions and relations – parameters – directly to the finished model instead of indirectly to sketches and in dialog boxes?
If you look at your average history-based modeler BrandX, you can put dimensions on the finished model, but they are driven dimensions, reference dimensions, they just measure, they don’t drive. I understand the interface for doing this doesn’t exist in that software, but let’s just say that you’re God for the moment, ok, maybe not God, but at least the head of a talented bunch of programmers, and you can do anything. Is there any logical reason that would prevent you from applying dimensions to a 3D model, and when the dimensions are changed, the part geometry changes to match? It’s such an obvious thing to do, why aren’t people doing this?
Let’s do a little homework. Just assume for the time being that you have a fully “intelligent” history-based model in one window, and in another window, you have that same model, exported as a Parasolid and reimported. The reimported file is what is commonly known as a “dumb” solid. It is imported. It has no features or sketches. It is dumb because you can’t edit it. So right there, side by side, one imported and one native, the same geometry, but one is intelligent and the other is not.
The funny thing about this is that the final geometry, the Parasolid body, is described inside the history-based file in exactly the same way. So the finished model is exactly the same, regardless if it is imported or native. Let that sink in. I believe it’s true, or close enough for our purposes.
BrandX currently has a feature called Move Face. It enables you to select a face or set of faces from a solid or surface model, regardless of how the face was created and translate, rotate or offset the faces (as long as there are no tangent fillets). This tool has serious limitations, and the interface is comparatively primitive, but it works, and it works on both native models and imported models.
There are some aspects of the Move Face tool that are kind of funny. First of all, it is essentially a contradiction – a direct modeling tool being used inside a history-based modeling scheme. It creates a history-based feature which resides in the feature tree, and is rebuilt along with the rest of the features. I wrote about this contradiction over a year ago in a post called Stepping outside of the parametric feature-based paradigm. (If you read that post, it might look like some of my ideas about this have evolved over the last year and a half, and there’s a reason for that – because they have.) There are all sorts of best practice concerns about mixing history-based paradigm and direct editing methods. I’ve heard some top users say bad things about using Move Face, calling it sloppy practice and worse. I don’t disagree. But the fact is that it kinda works, and when it works, it typically saves you a lot of time when compared to the monkeying around that you would need to do in order to do the job “correctly”.
I used to spin my wheels a lot trying to follow arbitrary rules. It took me a while to realize that it is better to have rules you can live with than to just follow rules because they are there. I think the same applies to this Move Face functionality. History-based best practice rules declare that Move Face is an abomination, sloppy, hack-and-whack modeling. So try to imagine a set of rules where saving time and brain power is a good thing.
Just think that if the Move Face interface were improved, and instead of it working through a PropertyManager dialog box, instead you were just able to put a dimension on the model and make changes, think of how convenient that would be. You wouldn’t have to mess with the feature order, or the FeatureManager or parent/child relations. You wouldn’t have to worry about other features failing. This would just be the interface change because the inner workings of the software using the Parasolid kernel to calculate the geometry would still be the same.
So, do you still think that parametrics can’t exist without history? Here’s the kicker. I already knew the answer before I asked the question. The answer is of course – yes, parametrics without history can and in fact does already exist. Check this out:
This model was created in BrandX, by the way, but it really doesn’t matter. This is just a teaser. And no, I didn’t use any demo jock voodoo on this. It is just what it looks like it is, putting dimensions on an imported model (in Solid Edge with Synchronous Technology), and changing the imported model.
There I hope that puts that one to rest. For now you’ll have to trust me that you can do geometric relations as well as dimensions, but if you watch you can see the sides of the rib that are tangent to the top cylinder change when the outer cylinder gets bigger, so it is maintaining tangency, which is done in the Live Rules panel in the upper left. You really can’t see that, but it’s there, and can be either added to or disabled according to your needs. Really, the video just scratches the surface. You’ll see more of this from me in various places.