How I Learned to Stop Worrying and Love the Best Practices.
You might have seen a thread on the SolidWorks Forum yesterday. Someone had the situation shown below. A hole partially covered up by a fillet. This kind of set me off for two reasons. First, he was looking for a workaround to fix it, and second, I had to essentially defend history-based modeling to a guy who has it and has no idea how to use it.
So how do you solve this problem? Too many people take the question at face value and try to fix the situation. Not enough people see that the guy was asking the wrong question, or looking for the wrong kind of solution.
I gave two answers. One was to use the history based modeler the way it was supposed to be used, and put the hole before the fillet. Of course the guy answered that the fillet was sketched into an extrusion, and I had to essentially say the same thing again. Use your history-based modeler to its best advantage. As if that weren’t bad enough, he said he was going to have to go against documented company best practice to do what I suggested.
The second answer I gave was to use the Delete Face to remove the bottom of the fillet that covered the hole. You have to use the Delete and Patch option.
The guy seemed impressed with the fact that he had sketched the fillet into the feature and thus avoided the complexity of another feature in the tree. Oh, geez. But then he was willing to add several additional features to fix the problem his laziness caused. True laziness is a lot of work. To really do as little work as possible takes a lot of planning, and if you are really that lazy and don’t plan, it’s going to cause you a lot of work later on. Either way, you’re going to do a lot of work.
Two things here – First, wow, do I hate defending history-based modeling. And Second, who is defining best practice rules that say you should sketch fillets into extruded profiles?
Ok, here’s a confession. I don’t follow best practice for most of the stuff I model. But that’s because I’m the only one that’s going to see it, and I know I can fix things faster than figuring out a way to do them right in the first place. This is one of the pillars of my disdain for history-based modeling. It requires a lot of rules to do it right, but then if you make a change big enough, no rule will save you from needing to rebuild most or all of your model.
But, there is a catch. The simpler a model, the more best practices I use. If I’m making a surfacing model, many times it’s just “hack and whack”, because I know I’m going to end up redoing a lot if not all of it, and it’s really hard to guess how a complex surfacing model should be structured right out of the gate when you’re not just modeling, but actually still doing some design. History-based complex surface design is an even bigger waste of time than history-based prismatic solids. So if I’m modeling in solids, its easier to follow best practice, because the system is really built around that kind of work.
We have to come back to the premise for this post, though. How often does a company establish rules for “best practice” that are really not “best practice”? Who is doing this and how do they get their information? Worse yet, how do you help these people correct what they have done without insulting them?
I recognize that the large your organization, the more you have need for standardizing practice. The more people you have using the software, the wider the range of skills you have. Can you really train your way out of a big skills gap, or do you really have to cater to the lowest level user? Is there that big a lack of skilled SolidWorks users out there? I find that hard to believe.
It sounds like we need to revisit best practices or better yet for all of you people out there who don’t want to believe in best practice, switch to a history-free modeler, and stop worrying.
I have a question. How much efficient can direct modeling be when we are using parts which are going to be used in automation software like KBEworks or DriveWorks?
That’s the thing that a lot of people don’t get. I can’t speak for other direct modelers, but Synch Tech in Solid Edge can drive a model’s dimensions in the same way as a history-based model. The dimensions are applied directly to the model rather than indirectly through sketches and features. So you can make a big spreadsheet and drive the model dimensions just like DriveWorks. You can even import a model (which Works would call “dumb”), assign dimensions, and drive the imported model dimensions through a spreadsheet as well. It’s brilliant, and why Works users don’t care is beyond me, because you guys sorely need this stuff. No parent/child, no rebuild, no history, no failed features, plus a lot of freedom you never imagined in Works.
I hope everyone knows, of course, that an extruded cut, (like an extruded anything) like the one mentioned above can be extrude in both directions…that seems to me to be the easiest solution to his problem…
That wasn’t an extruded cut, it was a hole feature. I’d disagree anyway. Putting fillets before cuts or holes is a bad idea. If people are going to model this way, you’ve got no business with a history-based system.
Sorry, I didn’t see that it was a hole feature. Anyway, I have been working this way, without incident, since 1996. A fillet does not (ever) seem to mind whether it has been interrupted by a cut. And, btw, it is the way which parts are actually machined.
Edification of my above comment:
I don’t mean to sound “holier-than-thou” about the reply to this comment, only to say that there is more than one way to “skin a cat”. As a part is made, fillets are naturally cut in as a function of the machining operation, usually as edge round on the cutting tool, but not always…sometimes they are programed into a machine tool as a formed radius to allow for better chip removal. All this is done PRIOR to holes being drilled, which is usually in the normal sequence of operations. So, to address the “problem” of specifying a hole using the hole tool on a specific surface which results in the situation described above (the remaining radius overlaps the hole) there are several ways to overcome this difficulty. I will only offer 2 of them here.
The first is the obvious one of creating another extruded cut going in the opposite direction of the hole, thus removing the radius overlap. The cut can be terminated at the vertex of the radius such that if the radius changes, the cut still works in the intended fashion. Also. this works especially well if a spotface needs to be established to create a flat surface for a washer and/or screw head to rest on, as is usually the case for a hole (normally a thru hole) in a part in order to fasten it to another part. In this case, a sketch with a diameter sufficient to the task (larger than the hole and screw head diameter) would be used to create this extruded cut.
Another possibility would be to use a different surface above the fillet to create the hole. This works well for a through-hole, because the callout specified on the drawing uses the plan view for the callout and since it is thru, no depth can “muck-up” the callout. But this may not be the best for a hole where a hole callout is needed for a blind hole. I am waiting for SW to come up with the option to call for a hole depth from a surface selected even tho it is not the same surface that the sketch is on. This is done well for a cosmetic thread where the thread length can be designated from any selected surface (that makes sense, of course) so I don’t know why it hasn’t been implemented for the hole in the hole wizard?!?!
Anyway, I hope this has lent some understanding to my approach to above stated problem.
Dave…
It sounds like you have an assumption that the design method needs to match the manufacturing method for some reason. I can’t think of a reason to do it that way. Design and manufacturing have different goals and different requirements. The process by which we arrive at a model for a design has nothing at all to do with the process by which we arrive at a manufactured part. Really, for manufacturing, all you need is the geometry, material, tolerances, surface finishes. Design or modeling processes mean nothing.
If you choose to use an inefficient method for modeling just to satisfy some arbitrary need to match some other process, that’s up to you, but we’re trying to talk about “best practice” methods.
Your suggestions would work ok for a direct modeler, but any decent direct modeler these days should give you different overflow options for things like intersecting fillets of different size, or situations like we’re talking about here, with two features intersecting. There should be an option for which feature gets priority. I don’t think adding work-around features really makes anything any better.
I like discussing other methods, though. If you think I’m missing something here, please point it out.
Thanks for your reply Matt. The philosophy I proposed above had its roots back in the early 80’s at Moog/Carleton, then in East Aurora, NY. I was the drafting supervisor at Carleton, and along with several of the other division supervisors were experiencing a high degree of inexperience and knowledge in the young drafters and designers coming out of school and college. There was simply error after error after error. Something had to be done, so an apprenticeship program was devised whereby the candidate would spend anywhere from 3 to 6 months (depending on experience and/or aptitude) in the machine shop actually making parts. The Machine shop supervisor would determine when a person had enough of an understanding of the various practices and send them on to the assembly and test labs where they would actually assemble and test various products. The same criteria applied, such that when they exhibited a satisfactory understanding of how things went together and were subsequently tested, they would spend some time with a senior design engineer to learn the process and workflow of engineering. When all was said and done, the candidate was “graduated” with a special degree and awarded the next highest pay grade level in the designer category. This was all taking place prior to the advent of DFM (design-for-manufacturing) and DFA (design-for-assembly) which became the “fad” of the year sometime in the mid-90’s as I recall.
So, with that as a background, I tended to always base my designs and subsequently my solid models on these principles and built models as I have previously described. Maybe that’s the “old-school” in me talking here, but it has served me well ever since I began solid modeling (with Pro/E of all things…one of the most difficult programs to master at that time)!!! I was even the chair of the WNY Pro/E users group for a while!
Imho, I believe that utilizing “best practices” without a thorough understanding of how things are made, assembled and tested is a throw-back to those days of old and may unduly influence how parts are designed. Yes, I understand your philosophy, and appreciate where it can and should be used, but only after one has mastered the “art” of design. I see just as much manipulation involved with the creation of the geometry described in the problem he was having using the methods you espouse. There really isn’t much difference in time and/or number of features that exist between the methods, and given what I know and have experienced, I would prefer to err on the side of dfm and dfa.
Everyone is free to use the software as they see fit, and there is room for all in this situation.
BTW, I read the other blog post about Fusion360 and I’m intrigued. And the price seems right, too!!! Let us all know if you decide to give that vehicle a try and see what you think…maybe I’ll be tempted to give up SW…
Dave…
“It sounds like we need to revisit best practices or better yet for all of you people out there who don’t want to believe in best practice, switch to a history-free modeler, and stop worrying.”
History free since ST3 years ago and sure don’t understand people not even being curious to find a better way. Ought to put a fifty pound box on my back and walk around with it all day just for old times history based sake and remember those good old days.