Archive for May 29th, 2008
While going through the SolidWorks Training Manual on Advanced Assemblies, I ran into this little piece of information, that is so simple and easy, it kind of left me scratching my scalp, wondering how come I didn’t think about it before. I’m talking about removing external references in a part document that was created or edited in the context of an assembly and made to reference the geometry of other components.
Why would you even want to do that? Well, you know that all external references that are established when you create a part in-context are going to remain with the part, and any change to the part done in the context of the assembly will also appear in the part document and affect other parts that it references to, causing them to change, as well. If you wanted to use a part that was created in the context of an assembly X inside a different, unrelated, assembly, say assembly Y, then you need to first make sure that the changes made to assembly X and/or any of its parts are no longer going to propagate to the part. Sure, you can List External References in the part and choose to Lock All or Break All. If you lock them all, you stop the changes from propagating, but only temporarily, because they can be unlocked later on (either by you or the ever helpful co-worker). Breaking the references, on the other hand, is irreversible and can’t be fixed. Changes will no longer propagate to the part, and this will definitely affect the design intent of your original assembly. So, it makes perfect sense when the manual recommends that in order to produce a completely independent part you must remove the external references instead, by following these very easy steps.
First, you should save the part document as a copy, so you can remove the external references from this copy without affecting the original assembly at all. It’s important to save the part as a copy of the original, because if you just Save As with a different name, this “new” part document will simply replace the original in the assembly. Next, once you have created a copy of the part document, you will need to search its Feature Manager for features that may have external references. You will be able to recognize them by noticing the symbols “->?” that are listed next to them. These symbols tell you that the feature has an external reference, but that it’s out of context right now. All these references can be removed by editing the features and sketches that contain them to delete such references and add new ones. This is very easy to do with sketches, and lucky for us it’s very often that a sketch is the one that contains the external reference and not the feature itself. Simply edit the sketch that has the external reference, click Display/ Delete Relations, and list all the relations that are external. Delete all the external relations and dimensions and proceed to fully define the sketch, either manually or by clicking on Fully Define Sketch. This last step is a very important one and you should not forget about it, especially when removing external relations on geometry that was created by converting or offsetting entities, since they are left completely unconstrained, with no relations at all, after the on edge or offset relations are removed. Also remember that you should do this starting from the bottom of the feature manager and work your way up, to prevent the part from becoming disjoint.
Simple, isn’t it? Now if I could only find a way to do something similar to this for a part that was created by splitting another one or by saving bodies in a multi body part. But so far I can’t see a way this can be done, because there is no feature or sketch whatsoever that could be edited in this kind of parts, so, even you break the references, to make it “independent” from its parent, it still pretty much works like a parasolid, an imported model that gives you no access or control over its history. It would be great if there was a way to access that history or somehow add dimensions and relations, like when fully defining a sketch, in order to manipulate its already existent features, instead of simply adding new ones. Maybe I’m rambling here, so please forgive my ignorance if I am. I’m still in SW2007, so I have no idea if perhaps this is already possible in SW2008 or will be possible in SW2009. It would be great! If I was to choose what is the one thing I like the most about working with SolidWorks, I would have to say that it is being able to access and manipulate the history of the part. The more of that history you can manipulate, edit, change and drive, the better! I love that feature manager! OK, now that I got that off my chest, it’s back to working on that manual.