The mysterious case of Multiple Solutions
You work for months on a project. So far, everything works fine. One day your boss asks for modifications to correct parts and features alignment.
Has a smart designer, you have anticipate those changes, you made plenty use of part associativity to make sure you will have a minimum effort to do when it comes time to apply those changes.
Therefore, you work your way thru, making the request changes. When finish you hit the «Update all Links».
Nightmare appears…. Solid Edge has found multiple solutions for your assembly.
(While I am here….. You see the small box at the bottom asking to be check; DO NOT PLACE A CHECK MARK under the excuse is bothering you. It is a warning sign intend to make sure you will take corrective action NOW, not later. If you made it appear in the status bar and you made it auto hide, you will never be aware of the situation… until you restart a new session that is usually when you open the assembly next morning.)
I am a smart designer, must be the software. No one work on my project and everything was fine when I quit. Do I have the latest service/maintenance pack? Human cannot be the cause.
Good Designer. Poor manager?
Has a smart, wise, good, name it, designer you are when talking assembly it come down to one thing, MANAGEMENT, how good are you at managing assemblies.
Just think about it for 2 sec, you have 1, 2, 3 ….4 kids and it take you all you have to manage family business and you have your wife to help you…..
So when you face a project with thousand of parts, how good you think you are at managing all those parts and links and relations between them? In addition, we do not talk about all other distractions surrounding you while you design.
Face it human are the weakness link in the chain. Until you admit it, it will be hard to accept to modify your practices to help you enhance and leverage your assembly manager skills.
When it comes time to manage small, medium or larger assembly, we have to put aside our pride or self-esteem.
So let’s look at the dynamic behind multiple solutions.
You will see that sometime it is better to understand how things work before/instead of making them work. Therefore, you will avoid using a bulldozer to take down your assembly to make it work.
Many cases of multiple solutions, take their origin at the sketch level, making the skeleton approach more vulnerable. Especially, when the skeleton approach is use in the context of an assembly.
Sketches are created in space and to make sure we save time when updates are required we project (include) others sketches geometries.
Other way around is to use geometric constraints between sketches to establish those relations.
We then associate features to those sketches to create volumes.
Feature base modeling are not immune because sketches are still need, but the workflow help prevent some of those situations. Mix good workflow/good practices, with a set of basic rules and good management skills and you got a good vaccine.
In addition, Solid Edge allow up to seven types of part associativity. Users have the control over witch one is active/available.
Therefore, what happened to our projection and what kind of link could we make to a mirror.
Understanding how a mirror work
When you face a mirror, you expect to have the reflection (projection) in front of you. Imagine if image reflect by a mirror is offset from it source. Try placing multiple mirrors around you and apply your wife eyelash mascara, not that easy.
Is it possible that your wife have better management skills then you? 🙂
Same situation, when projecting geometries, Solid Edge expect to find them along the vector of projection, but for some reasons those project geometries are not locate along that vector.
How this happen?
Here a common situation that I have simplified for the purpose is this article.
Click to download the tutorial showing the creation of multiple solutions ( change extention to .exe after download)
In this video, we ask Solid Edge to project/include a line to match the edge of another part at the same time we ask the face to offset by 5 mm. This leaves two possible solutions.
Same logic will apply when using inter-part copy when we re-use faces or the body of another part. The only difference is inter-part copy locate in 3D instead only 2D like a projection/include command.
With pattern, same situation can be found. Member in a pattern have their position define by the pattern definition. Therefore, you should avoid using instance in a pattern when possible.
If you do have to use instance of the pattern keep in mind what I just explain as you build relations, create inter-part copy or add another pattern on top of a previous one.
Many of you probably have follow this course while in school, if not I would recommend to follow it. At least to make sure you are aware of the concept.
Simply said to place a big/rough picture…..
The overall tolerance cannot be smaller than the sum of all other tolerances.
So if a ship should measure 300ft with a tolerance of ±1ft. Then the 24 plates need to build the side of the hull cannot have their tolerances more than ±.5 inch. Otherwise, we will end up with a multiple solution.
-Ship length may exceed the tolerance
-Ship can be shorter than the tolerance
-Ship will have one of he’s side shorter or longer than the other one
The concept of chain, where parts are place end to end, is what you have to remember.
All this seem logic and easy to understand, but remember what I said about managing assemblies above, you play with a kindergarten with thousand of kids.
Better, you are at managing chain, the healthier will be your assembly.
The more branches in your chain you will be able to manage, the healthier will be your assembly.
How to avoid getting in a multiple solutions
If you follow those simple guiding rules, it should help you avoid cases with multiple solutions. It is not 100% bullet proof; you will need to develop your assembly managing skills to avoid all possible traps.
If there is no associativity between parts, good chances you can avoid all rules.
Robotics has three laws so designers have their own….
Never place assemblies constraints on a face generate by a line(s) created using project or include command. Same with faces/bodies generate by inter-part copy command.
Projected or included lines and inter-part copy should be use only to create inner loop in the part body, except where such design would conflict with Rule #1.
Projected or included lines and inter-part copy can be use to create outside contour of a part; as long as such design do not conflict with the Rules #1 or Rule #2.
Those extra rules are to reinforce previous guide rules.
When a part has projected or included lines or inter-part copy, it should be keep ground, except where such action conflict with design intent.
In a case of a part with project/include lines where removing ground is authorize, such intention should not conflict with Rule #1.
Project/include help position the element in a 2D plane. Only the distance between the original element and the result should be constraint. Therefore, you will have to accept to work with under constrain parts.
In case of inter-part copy, avoid removing ground. This one is to reinforce rule #4.
Inter-part copy already position the part in 3D. Therefore, it becomes a reference for other parts along with the part(s) on which he refer.
When managing are well assemblies, you will probably never face this «Multiple Solutions» situation. Parts associatively is not the goal it a tool to help you achieve results. Too much is like not enough.
Remember the Murphy’s Law. «If there’s more than one possible outcome of a job or task, and one of those outcomes will result in disaster or an undesirable consequence, then somebody will do it that way». Even if you take good care in our part associativity, you will always have a situation that you have not anticipated.
Therefore to minimize the impact of Murphy’s law……
Builds associativity in small groups, I would recommend to start with small group of five to ten parts. No need to have them in the same assembly but will sure help manage. Once you have establish small groups of associativity, the link between those groups should be done the old fashion way, roll up your sleeve and go to work this is why you are paid for after all :-).
Going this way you also avoid spreading infection among all assembly members, making easier for you to locate the source.
Human brain needs repetitions; did I mention to work your assemblies managing skills? The more you will enhance your management skills, the bigger and more complex will be the associativity groups.
Has I have mention many times, training is the best way to stay healthy.
I realize that i forget to mention one way to work around the most common case of multiple solutions.
When using the include command, uncheck “Maintain Associativity When Including Geometry From Other Parts in the Assembly” . This will remove the associativity between the project line and its parent. Then use the equal command where it is possible.
To allow placing equal constrain make sure you have enable “Peer Edge Locate” this is a one time activation. One it is one it will stay.
Once this is done use direct editing or any other availabe tool to offset the face in a incremental way from it position to ensure a persistant gap when modifications occur.
You will then be able to add assembly constraint and bypass the rule #1.