Autor
|
Thema: Fehler beim erstellen von Publications (1100 / mal gelesen)
|
Student051089 Mitglied
Beiträge: 44 Registriert: 23.08.2017 Catia V5 R26
|
erstellt am: 06. Sep. 2017 11:45 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, mir stellt sich gerade folgendes Problem. Von meinem Bauteil das ich mit Hilfe eines Makros aufgebaut habe sollen die Achsensysteme als Publications ausgegeben werden. Ich habe es mit Hilfe der Makroaufnahme hinbekommen, dass die Publikation erstellt wird. Allerdings ist in der Publikation nicht mein einzelnes Achsensystem, sondern das komplette Catpart hinterlegt. Kennt jemand Lösungen? Grüße Code: Dim product1 As Product Set product1 = partDocument1.GetItem("partDocument1.Name") Dim reference1 As Reference Set reference1 = product1.CreateReferenceFromName("partDocument1.Name/!Axis System.Positionierung") Dim publications1 As Publications Set publications1 = product1.Publications Dim publication1 As Publication Set publication1 = publications1.Add("Axis System.Positionierung") publications1.SetDirect "Axis System.Positionierung", reference1Dim settingControllers5 As SettingControllers Set settingControllers5 = CATIA.SettingControllers Dim visualizationSettingAtt5 As VisualizationSettingAtt Set visualizationSettingAtt5 = settingControllers5.Item("CATVizVisualizationSettingCtrl") visualizationSettingAtt5.SaveRepository part1.Update
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 06. Sep. 2017 12:21 <-- editieren / zitieren --> Unities abgeben: Nur für Student051089
Servus Du musst den String für die Methode CreateReferenceFromName zusammensetzen. zB: Code: Language="VBSCRIPT"Sub CATMain() Dim partDocument1 As Document Set partDocument1 = CATIA.ActiveDocument Dim product1 As product Set product1 = partDocument1.product Dim reference1 As Reference Set reference1 = product1.CreateReferenceFromName(partDocument1.name & "/!Axis System.Positionierung") 'ggf geht hier auch product1.name Dim publications1 As Publications Set publications1 = product1.Publications Dim publication1 As Publication Set publication1 = publications1.Add("Axis System.Positionierung1") publications1.SetDirect "Axis System.Positionierung1", reference1 End Sub
Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Student051089 Mitglied
Beiträge: 44 Registriert: 23.08.2017 Catia V5 R26
|
erstellt am: 06. Sep. 2017 13:25 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernd, vielen Dank für deine schnelle Antwort! Leider wurde das Problem dadurch nicht gelöst. Es ist weiterhin in der Publication das komplette Part hinterlegt. Weißt du vllt noch eine andere Lösung? Grüße Code: 'Publications erstellen Dim product1 As Product Set product1 = partDocument1.GetItem("product1.Name/partDocument1.Name")Dim reference1 As Reference Set reference1 = product1.CreateReferenceFromName("product1.Name/partDocument1.Name/!Axis System.Positionierung_PC") Dim publications1 As Publications Set publications1 = product1.Publications Dim publication1 As Publication Set publication1 = publications1.Add("Axis System.Positionierung_PC_") publications1.SetDirect "Axis System.Positionierung_PC_", reference1 Dim settingControllers5 As SettingControllers Set settingControllers5 = CATIA.SettingControllers Dim visualizationSettingAtt5 As VisualizationSettingAtt Set visualizationSettingAtt5 = settingControllers5.Item("CATVizVisualizationSettingCtrl") visualizationSettingAtt5.SaveRepository part1.Update
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 06. Sep. 2017 13:32 <-- editieren / zitieren --> Unities abgeben: Nur für Student051089
Servus Die Variable muss außerhalb der Anführungszeichen sein. Lass mal meinen Code ablaufen, und schau dir in der entsprechenden Zeile die Anführungszeichen und das & an. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Student051089 Mitglied
Beiträge: 44 Registriert: 23.08.2017 Catia V5 R26
|
erstellt am: 06. Sep. 2017 14:02 <-- editieren / zitieren --> Unities abgeben:
Also ich habe das jetzt versucht so anzupassen wie du meintest. Ich denke in dieser Zeile liegt der Fehler. Code: Set reference1 = product1.CreateReferenceFromName(product1.Name / partDocument1.Name & "/!Axis System.Positionierung_PC")
Bisher keine Veränderung... wie ich es auch drehe und wende. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 06. Sep. 2017 14:07 <-- editieren / zitieren --> Unities abgeben: Nur für Student051089
Servus Und schon mal meinen Code probiert? Code: Set reference1 = product1.CreateReferenceFromName(partDocument1.name & "/!Axis System.Positionierung_PC")
oder ggf Code: Set reference1 = product1.CreateReferenceFromName(product1.name & "/!Axis System.Positionierung_PC")
Warum benötigst du beide Namen im "Pfad" zum Element? Oft hilft es auch einen Wert/String zur Analyse per Messagebox ausgeben zu lassen. Gruß Bernd EDIT: Probier mal statt der Zeile mit GetItem: Set product1 = partDocument1.product ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Student051089 Mitglied
Beiträge: 44 Registriert: 23.08.2017 Catia V5 R26
|
erstellt am: 07. Sep. 2017 09:08 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernd, vielen Dank für deine Hilfe! Hat alles Funktioniert. Hier nochmal der ganze Code: Code:
Dim product1 As Product Set product1 = partDocument1.ProductDim reference2 As Reference Set reference2 = product1.CreateReferenceFromName(product1.Name & "/!Axis System.Positionierung") Dim publications1 As Publications Set publications1 = product1.Publications Dim publication1 As Publication Set publication1 = publications1.Add("Axis System.Positionierung") publications1.SetDirect "Axis System.Positionierung", reference2 Dim settingControllers6 As SettingControllers Set settingControllers6 = CATIA.SettingControllers
Dim visualizationSettingAtt6 As VisualizationSettingAtt Set visualizationSettingAtt6 = settingControllers6.Item("CATVizVisualizationSettingCtrl") visualizationSettingAtt6.SaveRepository part1.Update
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Student051089 Mitglied
Beiträge: 44 Registriert: 23.08.2017 Catia V5 R26
|
erstellt am: 07. Sep. 2017 09:46 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernd, nochmal eine kurze Frage: Ich habe jetzt über eine For- Schleife die Achsensysteme publiziert. Meine Abbruchbedingung funktioniert auch soweit ganz gut. Leider wird eine Publikation am Ende zu viel erstellt. Weißt du wie ich diese wieder rauslöschen kann? Grüße Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 07. Sep. 2017 10:19 <-- editieren / zitieren --> Unities abgeben: Nur für Student051089
|
Student051089 Mitglied
Beiträge: 44 Registriert: 23.08.2017 Catia V5 R26
|
erstellt am: 08. Sep. 2017 08:11 <-- editieren / zitieren --> Unities abgeben:
Moin, das mit der Abbruchbedingung geht leider nicht zu vermeiden. Meine Schleife wird beendet und die überflüssigen Befehle werden durch Code: 'Löschen der überflüssigen Befehle vselection1.Clear vselection1.Add hybridShapePlaneOffset2 vselection1.Add voIntersection4 vselection1.Add hybridShapeLineNormal2 vselection1.Add hybridShapeLineAngle2 vselection1.Add publications1 vselection1.Add axisSystem2 vselection1.Delete
wieder rausgelöscht. Es läuft alles soweit gut bis auf die Publication, die bleibt ohne Bezug stehen. Weißt du wie das zu lösen ist? Grüße Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 08. Sep. 2017 10:46 <-- editieren / zitieren --> Unities abgeben: Nur für Student051089
|