2 Replies Latest reply on Dec 3, 2015 10:54 AM by Daniel Smith

    Macro to Rename Imported Parts

    Daniel Smith

      I have an issue with imported step files from Altium causing conflicts when they are put into a single assembly due to name conflicts between auto generated Imported body names, which are highlighted in the attached image. I have a macro right now that can transverse through the assembly and rename the lowest level part files with the following logic (all credit to Deepak Gupta):


      swApp.SetUserPreferenceToggle swExtRefUpdateCompNames, False

         For i = 0 To nLevel - 1

              sPadStr = sPadStr + "  "

          Next i

          vChildComp = swComp.GetChildren

          For i = 0 To UBound(vChildComp)

              Set swChildComp = vChildComp(i)

              Set swChildModel = swChildComp.GetModelDoc

              If swChildModel.GetType = swDocPART Then

              swChildComp.Select2 False, 0

              'Get configuration name

              swCompConfig = swChildComp.ReferencedConfiguration

              'Get Configuration Properties Values

              NewName = "testname"

              swChildComp.Name2 = NewName

              Debug.Print swChildComp.Name2

               End If

              TraverseComponent swChildComp, nLevel + 1

          Next i

          swApp.SetUserPreferenceToggle swExtRefUpdateCompNames, bOldSetting


      I think it is the highlighted If statement that selects the sldprt files and then goes on to rename them. I can't figure out how to modify the script so it can instead stop traversing at the part and then rename (or more preferably add a suffix to the existing name) the imported parts highlighted in the attached image? If I could figure that out it would stop my ID collision issue. And unfortunately Pack-and-Go doesn't work for me because it does not actually rename everything down the hierarchy, causing the collisions to still take place.