13 Replies Latest reply on Aug 5, 2016 9:45 AM by Barry Shapiro

    Trying and failing to fix broken references

    Sarah Dwight

      So I have some parts that must have been created in a top-down assembly fashion.

      I usually build bottom-up so I am confused by some stuff.

       

      I have parts with missing reference files and broken or out of context relations.

      It appears that the assemblies and sub assemblies were renamed, but the part files don't know it.

      So I changed the references, but it didn't fix the problem.

      And I can't seem to select anything to replace the entity that is still referencing "SIDE ARM".

      How do I re-define these relations?

      How do I select a line or edge from a different part/asy while staying in the part I want to be in?

      SW just switches from one part to another.

       

        • Re: Trying and failing to fix broken references
          Jim Steinmeyer

          Sarah,

          What you may need to do is break the lost references and replace them. After the references are broken and removed you can go the the assembly and while in the assembly activate the part needing references.

          Untitled.png

          While in edit part mode you can select any references you need to control it from the assembly. Of course you will need to have an idea what was used for driving the part before. Afraid I can't help with that.

            • Re: Trying and failing to fix broken references
              Sarah Dwight

              Thanks Jim.

              I opened the assembly to see about determining what the reference was for/to, but was unable.

              When I started the Edit Part function I received this warning: "This part has features defined in the context of another assembly<OLD ASY>. You can edit the part, but cannot create any external references to the components of the current assembly."

              Since the old asy no longer exists I just deleted the relations and reset the sketch planes. I had to fix the drawings since they part were off origin originally, but it worked out okay because I had mated the assembly by feature and faces, not planes or sketches.

              Now all of my parts and sub-asy are self contained - no more external references.

                • Re: Trying and failing to fix broken references
                  Jim Steinmeyer

                  I find that in the long run it is normally best to break external references when the design is done to avoid exactly the problems you have just been fighting.

                  • Re: Trying and failing to fix broken references
                    Paul Risley

                    in context.JPG

                    Under system options make sure this box is checked in the references section. We do 90% of our assemblies top down and this is a crucial step in being able to create and re-create in context parts. So the error message you received would not have happened if this is checked. As far as breaking relations after finalizing an assembly that is fine as long as you are 100% sure of the no change needed rule. We save all models to parasolids and all drawings at release for this very reason. Sometimes we have to re-design an assembly or the whole project and leaving things in context gets us there quicker because of the flexibility. After we deliver a project to a customer we set our job folders to read only create a backup and leave all in context in place. We have solids of every part already so if in the future we have to change anything we can lay the parasolid over our models to justify changes if any are needed.

                      • Re: Trying and failing to fix broken references
                        Jim Steinmeyer

                        Paul,

                        Are you saying that if the "allow multiple contexts" box is checked you won't loose references if a model is renamed? Assuming that PDM is NOT in use, which I would assume to be the case for Sarah as I think PDM would keep the link. If so I wonder what the reason would be for not having it always checked as it would save much work. We have the problem of attempting to reuse parts and assemblies in other product lines and having a part linked to an assembly can create serious problems if the linked assembly changes causing a linked part to change without notice. Thus if the link is broken parts aren't getting all wonky in other assemblies causing bad parts to be cut.

                        It sounds like you have a much more structured shop than we do so that isn't an issue there.

                          • Re: Trying and failing to fix broken references
                            Paul Risley

                            Barry,

                            The problem of re-naming parts would still be there. This box only allows the use of multiple assembly and reference parts. We work primarily in virtual parts until we get close to a resolution on a project. The main reason we do this is during quoting to concept you can lose out on a job and we do not want a folder of unused parts laying around. If we have 1 assembly and 4 or 5 virtual assemblies along with virtual parts for everything we are maintaining 1 assembly only with all of the tree history being driven out of the main. I am not saying how we do it is for everyone. You have to be very aware of circular relationships, and configurations have to be driven from the main down. I have seen some good draftspeople go insane when they come into our office and try to work with what we do. Just like when I talk to some other designers in our area that fully define a part every time before putting it into their assembly that would drive me nuts, mainly because I am used to virtual parts and working in the top down format.

                            In my previous reply it was really pertaining to the error of this part cannot have references to any other part as it already is referencing this other part that Sara got.

                            Checking the box I mentioned above takes that out of the equation.

                            If you rename referenced parts that are defined the only way I know of doing it so references stay is using Solidworks explorer, this should keep your relationships intact.

                          • Re: Trying and failing to fix broken references
                            Barry Shapiro

                            Just a warning about trying to create multiple references, in context of more that one assembly.

                             

                            External references can get out of control. Some people go over board and jst because you can make something reference another part or assembly doesn't mean that you should. If you make too many references back and forth you start to create a circular loop which can take longer to rebuild or never rebuild.

                             

                            Also there some external references that can't be replaced.

                            For instance. If you have a part that was made from a part inserted into another part and you break that reference, that can never be reconnected.

                             

                            Things that can be reconnected examples are:

                            Up to surface end conditions of an extrude or cut.

                            Sketches referencing another part or sketch in another part in the assembly.

                             

                            Sarah to answer your specific example.

                            Don't break the lost reference in the sketch.

                            In the assembly you are working you can edit the problem part. ------> highlight the part and then select edit part while in the assembly

                            Open the sketch with the missing collinear reference.

                            Open Display/delete Relations, then select Dangling or Broken - I think Broken is usually for external reference,

                            Highlighting "usually" shows you where the line is in the sketch.

                            Even if you replaced the part it was referencing you can re-select the edge or line you want to reference.

                             

                            As you can see, all the info to track it down is usually there and generally not hard to fix. If you start by deleting all broken references, then you well never find out where they where.

                             

                            As far as those who responded that they break all references when they are done modeling. You should just go back to drawing by hand. It kind of defeats the concept of CAD. :-). I don't know where some people work but is anything ever really "final"!

                             

                            Hope this helps Sarah.

                              • Re: Trying and failing to fix broken references
                                Jim Steinmeyer

                                Barry,

                                I have never done 2D drafting. Fortunately I started engineering after 3D became affordable. However I have seen too many projects FUBARed when people mess with an assembly and don't check what all they may have changed. Every where I have worked when a part goes to production it is to be "static" and requires an ECN to change it. If the part on the left changes when the part on the right is changed, BOTH need ECNs. If someone is unaware of the external references that doesn't always happen as visually things appear to line up after the change. If they are not linked it is apparent to a visual inspection of the model that something isn't right and the other part gets changed.

                                  • Re: Trying and failing to fix broken references
                                    Barry Shapiro

                                    Jim,

                                    Luckily there are many options available for part revision and new parts and assemblies. PDM also allows for some protection over someone inadvertently  changing something. Between configurations, derived parts, or even simple copying and in context assembly which might work for some could be the answer. There are general guidelines but everyone has specific needs or circumstances for the types of things they design that may work better for some but not for others. Just like the fact that you could probably model a cylinder 12 different ways or more, one way may be more appropriate that another given the circumstances. So managing references, assembly methods ( top down VS bottom up ) depends upon individual circumstances which unless you know all of the parameters involved it would be impossible to say......This is the way to do it. The great thing about the forums is the opportunity  to here how other people work where you can get some "ooh I never thought of doing it that way" moments. So it's very interesting to here how others approach design and management of their projects.

                                     

                                    For instance I liked Paul's explanation of how they use virtual parts within an assembly to keep files under control. Not something we would do here just because it would work for the stuff we do but would be something I would consider if the need arises. So, thanks Paul.

                                     

                                    Anyway, I think the main thing Sarah was trying to fix was just a broken reference within a sketch for a part that was done in context within an assembly which is rather easy to fix. Usually.............

                                     

                                    But as far as part referencing getting out of control. I won't say his name but.... I know a guy that was teaching Solidworks and was so proud of his assembly that had everything referencing everything else. Even all bolt lengths, nut sizes etc. He couldn't open his main assembly at a certain point because it would take a year to update. every part and sub assembly was referencing every part and sub assembly. S for each part to rebuild every other part would need to rebuild. Almost indefinitely. So my point is on the subject of references, be careful not to go overboard. Although Solidworks or any CAD app gives you the ability to do something, sometimes as they say "less is more" more or less.

                                     

                                    Hopefully Sarah got her parts fixed.

                                  • Re: Trying and failing to fix broken references
                                    John Stoltzfus

                                    Great explanation Barry Shapiro - just to add to what you mentioned above, it only gets worse if you use deep layers of configurations that are driven by other parts with configurations....

                                    • Re: Trying and failing to fix broken references
                                      Sarah Dwight

                                      Thanks Barry.

                                      I did pretty much what you suggested, checking the assembly before I deleted anything.

                                      Figured out that the old reference was a completely different assembly, not just a rename that didn't take.

                                      So all of the external references were junk anyway.

                                      What I don't get is how the parts looked normal... I mean, they had no rebuild errors, just little arrows with X's and ?'s at the part level which I didn't notice at first.

                                      I took some time to read the help file so now I know more.

                                        • Re: Trying and failing to fix broken references
                                          Paul Risley

                                          Sarah,

                                           

                                          The X is showing that the link was broken(Permanently by a user).

                                           

                                          The ? is showing there is a missing item for that component of your part.

                                           

                                          If you RMB on your part it will have an option to list external references if you choose this you will get a window showing you all in context and broken links. It also shows you which part the feature or sketch entity was coming from.

                                • Re: Trying and failing to fix broken references
                                  John Stoltzfus

                                  External references are really tough on the mental capacity of the mind - I would suggest that before you go and just break the references, go to the feature tree and suppress every part and then un-suppress as you go down the feature tree, find out where it's screwed up and fix it, - there is a lot of knowledge gained if you have the time to troubleshoot and which will help you to avoid other errors like that in the future....