import sys import os import NXOpen def jttonx(jtPartFile, nxPartFile): #start NX Session theSession = NXOpen.Session.GetSession() # open component theSession.Parts.OpenBaseDisplay(jtPartFile) onlypart = theSession.Parts workPart = theSession.Parts.Work displayPart = theSession.Parts.Display assemblies = [] c = onlypart.Display.ComponentAssembly.RootComponent if c: lesekinder(c, 0) else: print("Teil hat keine Kinder") # save varied component # print(nxPartFile) # try: # workPart.SaveAs(nxPartFile) # except: # print ("Die Datei existiert bereits!") def lesekinder(subpart, i): comps = subpart.GetChildren() # print("{} : {} : {}".format(subpart.Name, i, len(comps))) if len(comps) > 0: # print("baugr: {}".format(subpart.Name)) for x in comps: # print("{} : {}".format(x.Name, len(x.GetChildren()))) # print("{} : {}".format(x.Name, x.Subset)) kinder = len(x.GetChildren()) if kinder > 0: # lesekinder(x.OwningPart.ComponentAssembly.RootComponent, i+1) print("lese kinder") lesekinder(x, i+1) # # thisTag = x.Tag # print("kinder") oldname = x.Name newname = oldname.replace("_JT", "") newname = ("X:/WOB_Data/Export/run/test/"+newname) try: x.OwningPart.SaveAs(newname) print("gesichert") except: print ("fehler sichern Teil: {}".format(newname)) break else: print("teil: {}".format(subpart.Name)) oldname = subpart.Name newname = oldname.replace("_JT", "") newname = ("X:/WOB_Data/Export/run/test/"+newname) try: print("save") # subpart.OwningPart.SaveAs(newname) except: print ("fehler sichern teil: {}".format(newname)) if __name__ == '__main__': print(sys.argv) jtPartFile = sys.argv[0] nxPartFile = sys.argv[1] jttonx(jtPartFile, nxPartFile)