Autor
|
Thema: Makro für Part (2429 mal gelesen)
|
Atilla79 Mitglied Maschinenbautechniker
Beiträge: 11 Registriert: 27.05.2019 Catia Version 5-6Release 2016
|
erstellt am: 27. Mai. 2019 09:24 <-- editieren / zitieren --> Unities abgeben:
Hallo erstmal an alle, ich bin neu hier und würde um eure Hilfe bitten. Im voraus schon mal Dankeschön. Folgendes Problem: Ich habe ein Catalogteil erstellt und ein makro aufgezeichnet über verschiedene Parameter. Das Makro funktioniert. Jetzt kommts Sobald ich ein neues part erstelle und das Makro laufen lasse, kommt eine Fehlermeldung in der Zeile 13- hier steht der Partname vom Ursprungsteil. Ich würde das Makro so haben wollen, dass es immer den aktuellen Partnamen automatisch übernimmt. Hier ist das aufgezeichnete Makro: Language="VBSCRIPT" Sub CATMain() Set partDocument1 = CATIA.ActiveDocument Set part1 = partDocument1.Part Set relations1 = part1.Relations Set parameters1 = part1.Parameters Set strParam1 = parameters1.Item("21-38H_123456_________0000_________K00_PROFIL_123\Properties\KSL_MATERIAL")--> momentan kopiere ich den Namen des aktuellen parts und füge es dann hier ein; dann läuft das makro wieder ohne Fehlermeldung Set formula1 = relations1.CreateFormula("Formula.16", "", strParam1, "Stueckliste\Werkstoff_Benennung ") formula1.Rename "Formula.16" Set partDocument1 = CATIA.ActiveDocument Set part1 = partDocument1.Part Set relations1 = part1.Relations Set parameters1 = part1.Parameters Set strParam1 = parameters1.Item("21-38H_123456_________0000_________K00_PROFIL_123\Properties\KSL_DIMENSION_FIX")--> auch hier das selbe wie oben Set formula1 = relations1.CreateFormula("Formula.9", "", strParam1, "Stueckliste\Zuschnittsmass ") formula1.Rename "Formula.9" End Sub vlt kann mir ja jemand behilflich sein jeder fängt mal klein an ------------------ Danke Mfg Atilla Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Randle Mitglied CAD/PLM Consultant
Beiträge: 695 Registriert: 12.04.2003 Win10 x64 CATIA V5 R18, R19, R21, R27-29
|
erstellt am: 27. Mai. 2019 09:37 <-- editieren / zitieren --> Unities abgeben: Nur für Atilla79
|
Atilla79 Mitglied Maschinenbautechniker
Beiträge: 11 Registriert: 27.05.2019 Catia Version 5-6Release 2016
|
erstellt am: 27. Mai. 2019 09:46 <-- editieren / zitieren --> Unities abgeben:
Danke für die schnelle Antwort, leider klappt es nicht, kommt wieder Fehlermeldung Zeile 13. Zeile sieht so aus: Set strParam1 = parameters1.Item("partdocument1.Product.Partnumber.\Properties\KSL_MATERIAL") ------------------ Danke Mfg Atilla Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Randle Mitglied CAD/PLM Consultant
Beiträge: 695 Registriert: 12.04.2003 Win10 x64 CATIA V5 R18, R19, R21, R27-29
|
erstellt am: 27. Mai. 2019 09:51 <-- editieren / zitieren --> Unities abgeben: Nur für Atilla79
|
Atilla79 Mitglied Maschinenbautechniker
Beiträge: 11 Registriert: 27.05.2019 Catia Version 5-6Release 2016
|
erstellt am: 27. Mai. 2019 10:17 <-- editieren / zitieren --> Unities abgeben:
|
Randle Mitglied CAD/PLM Consultant
Beiträge: 695 Registriert: 12.04.2003 Win10 x64 CATIA V5 R18, R19, R21, R27-29
|
erstellt am: 27. Mai. 2019 10:36 <-- editieren / zitieren --> Unities abgeben: Nur für Atilla79
|
Atilla79 Mitglied Maschinenbautechniker
Beiträge: 11 Registriert: 27.05.2019 Catia Version 5-6Release 2016
|
erstellt am: 27. Mai. 2019 10:47 <-- editieren / zitieren --> Unities abgeben:
Hab dir screenshot gemacht. wenn ich BoMProp einmal öffne und schliesse, dann gehts bei einem Parameter. Ich habe einfach mal die makros von den anderen parametern in ein gesamtes makro kopiert und da gehts nicht. Es wäre mir und meinen Kollegen eine sehr sehr grosse hilfe wernn das klappen würde. Danke dir ------------------ Danke Mfg Atilla Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Randle Mitglied CAD/PLM Consultant
Beiträge: 695 Registriert: 12.04.2003 Win10 x64 CATIA V5 R18, R19, R21, R27-29
|
erstellt am: 27. Mai. 2019 10:51 <-- editieren / zitieren --> Unities abgeben: Nur für Atilla79
und den Parameter gibt es auch schon? Du könntest es auch mal mit GetItem statt mit Item versuchen. Außerdem könntest du dir vor Zeile 13 mal eine MsgBox "einbauen" und dir die Partnumber anzeigen lassen. Für den Einstieg in die CATIA Programmierung wäre für dich evtl. auch der VBA Editor eher geeignet. Gruß Randle ------------------ Wer für nichts steht, fällt für alles! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Atilla79 Mitglied Maschinenbautechniker
Beiträge: 11 Registriert: 27.05.2019 Catia Version 5-6Release 2016
|
erstellt am: 27. Mai. 2019 11:01 <-- editieren / zitieren --> Unities abgeben:
Ja den Parameter gibt es auch schon. Wie soll die Zeile aussehen mit einer MsgBox? VBA muss ich mal googeln. Danke trotzdem für deine schnelle Hilfe. Ich probier es mal mit GetItem ------------------ Danke Mfg Atilla Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Randle Mitglied CAD/PLM Consultant
Beiträge: 695 Registriert: 12.04.2003 Win10 x64 CATIA V5 R18, R19, R21, R27-29
|
erstellt am: 27. Mai. 2019 11:19 <-- editieren / zitieren --> Unities abgeben: Nur für Atilla79
Hallo, also bei mir läuft es so (getestet in VBA) Code:
Sub CATMain() Dim oPartDoc As PartDocument Dim oPart As Part Dim oParams As Parameters Dim oParam As Parameter Dim oRels As Relations Dim oFormular As Formula Set oPartDoc = CATIA.ActiveDocument Set oPart = oPartDoc.Part Set oProd = oPartDoc.Product Set oRels = oPart.Relations Set oParams = oPart.ParametersSet oParam = oParams.Item("KSL_MATERIAL") Set oFormular = oRels.CreateFormula("Formula.16", "", oParam, "Stueckliste\Werkstoff_Benennung ") oFormular.Rename "Formula.16" Set oParam = oParams.Item("KSL_DIMENSION_FIX") Set oFormular = oRels.CreateFormula("Formula.9", "", oParam, "Stueckliste\Zuschnittsmass ") oFormular.Rename "Formula.9" End Sub
Bei mir sind allerdings die Formeln defekt da mir der Input fehlt, sollte dann bei dir aber gehen. Gruß Randle ------------------ Wer für nichts steht, fällt für alles! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Atilla79 Mitglied Maschinenbautechniker
Beiträge: 11 Registriert: 27.05.2019 Catia Version 5-6Release 2016
|
erstellt am: 27. Mai. 2019 11:32 <-- editieren / zitieren --> Unities abgeben:
|
Randle Mitglied CAD/PLM Consultant
Beiträge: 695 Registriert: 12.04.2003 Win10 x64 CATIA V5 R18, R19, R21, R27-29
|
erstellt am: 27. Mai. 2019 11:43 <-- editieren / zitieren --> Unities abgeben: Nur für Atilla79
|
Atilla79 Mitglied Maschinenbautechniker
Beiträge: 11 Registriert: 27.05.2019 Catia Version 5-6Release 2016
|
erstellt am: 27. Mai. 2019 11:53 <-- editieren / zitieren --> Unities abgeben:
|
Randle Mitglied CAD/PLM Consultant
Beiträge: 695 Registriert: 12.04.2003 Win10 x64 CATIA V5 R18, R19, R21, R27-29
|
erstellt am: 27. Mai. 2019 12:02 <-- editieren / zitieren --> Unities abgeben: Nur für Atilla79
|
Atilla79 Mitglied Maschinenbautechniker
Beiträge: 11 Registriert: 27.05.2019 Catia Version 5-6Release 2016
|
erstellt am: 27. Mai. 2019 12:10 <-- editieren / zitieren --> Unities abgeben:
|
Randle Mitglied CAD/PLM Consultant
Beiträge: 695 Registriert: 12.04.2003 Win10 x64 CATIA V5 R18, R19, R21, R27-29
|
erstellt am: 27. Mai. 2019 12:45 <-- editieren / zitieren --> Unities abgeben: Nur für Atilla79
Hallo, das Problem war das du von einem Parameter gesprochen hast aber eigentlich eine (benutzerdefinierte) Eigenschaft meintest. So läuft es jetzt bei mir. Code:
Sub CATMain() Dim oPartDoc As PartDocument Dim oPart As Part Dim oProd As Product Dim oParams As Parameters Dim oParam As Parameter Dim oRels As Relations Dim oFormular As Formula Set oPartDoc = CATIA.ActiveDocument Set oPart = oPartDoc.Part Set oProd = oPartDoc.Product Set oRels = oPart.Relations Set oParams = oPart.Parameters Set oParam = oProd.UserRefProperties.Item("KSL_MATERIAL") Set oFormular = oRels.CreateFormula("Formula.16", "", oParam, "Stueckliste\Werkstoff_Benennung ") oFormular.Rename "Formula.16"Set oParam = oProd.UserRefProperties.Item("KSL_DIMENSION_FIX") Set oFormular = oRels.CreateFormula("Formula.9", "", oParam, "Stueckliste\Zuschnittsmass ") oFormular.Rename "Formula.9" End Sub
Gruß Randle ------------------ Wer für nichts steht, fällt für alles! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Atilla79 Mitglied Maschinenbautechniker
Beiträge: 11 Registriert: 27.05.2019 Catia Version 5-6Release 2016
|
erstellt am: 27. Mai. 2019 13:16 <-- editieren / zitieren --> Unities abgeben:
Hi Randle, es funktioniert super. Ich habe es mit dem Makro auch hinbekommen mit deinem Satz für den aktuellen Partnamen, nur bevor ich das Makro starte, muss ich das BoMProp(AUDI-Stueckliste) einmal öffnen und schliessen das das Makro die Parameter vom Body ins BoMProp übernimmt. Es kommen halt noch ein paar mehr Parameter dazu. Ist halt a bissl umständlich, aber trotzdem eine zeitersparnis zu vorher. Vielen lieben dank von mir und meinen Kollegen. ich werd mich bestimmt mal wieder melden, wenn ich fertig bin mit der Catalogdatei und den Parametern. Vlt gibts ja doch ne einfachere Lösung ------------------ Danke Mfg Atilla Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |