Autor
|
Thema: Windowsdateiname von CATPart zu Teilenummer Makro (2571 mal gelesen)
|
v5maler Mitglied
Beiträge: 96 Registriert: 16.12.2005
|
erstellt am: 09. Okt. 2008 10:15 <-- editieren / zitieren --> Unities abgeben:
Hallo Gemeinde, wir benutzen hier ein Makro das folgendes macht: Er holt sich den Windowsdateinamen (Part wurde vorher schon gespeichert!) und kopiert ihn als Text in die "Teilenummer", speichert das Part ab und schließt es. Nun ist es aber so das im Exemplarnamen (nur im Assembly vorhanden!) der alte meist total falsche Namen stehen bleibt. Kann man das Makro so erweitern das jener Exemplarname mit übergeben wird? Das Part sollte dann in der Assembly Struktur wie folgt aussehen: (Dies ist natürlich nur ein Beispiel) Teilename: 100-00-01-001_PLATTE Exemplarname 100-00-01-001_PLATTE.1 Hier der Quellcode des Makros: Code:
Sub CATMain() Set specsAndGeomWindow1 = CATIA.ActiveWindowSet viewer3D1 = specsAndGeomWindow1.ActiveViewer Set viewpoint3D1 = viewer3D1.Viewpoint3D viewer3D1.Reframe Set viewpoint3D1 = viewer3D1.Viewpoint3D CATIA.ActiveDocument.Product.Partnumber = Left(CATIA.ActiveDocument.Name, Len(CATIA.ActiveDocument.Name) - 8) Set partDocument1 = CATIA.ActiveDocument partDocument1.Save partDocument1.Close End Sub
Danke allen vorab für die Hilfe. Gruß
------------------ Es ist nichts zu dumm, es findet doch sein Publikum. [Diese Nachricht wurde von v5maler am 09. Okt. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Jens Hansen Mitglied Senior Consult
Beiträge: 1055 Registriert: 05.08.2000 Win7 CATIA V5 R19 VB.Net C#
|
erstellt am: 09. Okt. 2008 11:03 <-- editieren / zitieren --> Unities abgeben: Nur für v5maler
|
v5maler Mitglied
Beiträge: 96 Registriert: 16.12.2005
|
erstellt am: 09. Okt. 2008 12:10 <-- editieren / zitieren --> Unities abgeben:
Okay... gibt es denn dann dafür eine Lösung um im Product alle Parts per Makro zu benennen? Sprich zuvor im eigenen Fenster das Makro (s.o) zu benutzen, und dann eins extra das dann eben den Teilenamen als Vorlage nimmt und es eben so abändert:
Code:
Teilename: 100-00-01-001_PLATTE Exemplarname: 100-00-01-001_PLATTE.1 Exemplarname: 100-00-01-001_PLATTE.2 Exemplarname: 100-00-01-001_PLATTE.3 (falls das Bauteil mehrmals vorhanden sein sollte)
------------------ Es ist nichts zu dumm, es findet doch sein Publikum.
[Diese Nachricht wurde von v5maler am 09. Okt. 2008 editiert.] [Diese Nachricht wurde von v5maler am 09. Okt. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
K.Siebert Mitglied Tech Zeichner
Beiträge: 415 Registriert: 19.05.2007 Win XP Catia V5 R19 Catia V5 R24
|
erstellt am: 09. Okt. 2008 12:32 <-- editieren / zitieren --> Unities abgeben: Nur für v5maler
|
v5maler Mitglied
Beiträge: 96 Registriert: 16.12.2005
|
erstellt am: 09. Okt. 2008 13:25 <-- editieren / zitieren --> Unities abgeben:
Alles klar. Das ist schon mal sehr gut. Gibt es jetzt noch eine Lösung um diese beiden Funktionen zu kombinieren. Also ein Makro das beides in einem Zug macht (ich befinde mich im Part). Code von Makro1:
Code:
Sub CATMain() Set specsAndGeomWindow1 = CATIA.ActiveWindow Set viewer3D1 = specsAndGeomWindow1.ActiveViewer Set viewpoint3D1 = viewer3D1.Viewpoint3D viewer3D1.Reframe Set viewpoint3D1 = viewer3D1.Viewpoint3D CATIA.ActiveDocument.Product.Partnumber = Left(CATIA.ActiveDocument.Name, Len(CATIA.ActiveDocument.Name) - 8) Set partDocument1 = CATIA.ActiveDocument partDocument1.Save partDocument1.Close End Sub
Code von Makro2:
Code:
Sub CATMain()Set oMainProduct = CATIA.ActiveDocument.product Dim oMainProducts As Products Set oMainproducts = oMainProduct.Products Umbenennen oMainProducts End Sub Sub Umbenennen(oProducts As Products) Dim oPartName As String Dim oName As String Dim i As Long For x = 1 to oProducts.Count Set oInstance = oProducts.Item(x) oNumber = oInstance.PartNumber oName = oInstance.Name i=0 Do On Error Resume Next i = i+1 If i>5000 Then ' Zahl soll angepasst werden Exit Do End If oInstance.Name = oNumber & "." & i If Err.Number = 0 Then Umbenennen oProducts.Item(x).ReferenceProduct.Products Exit Do ElseIf Err.Number = -2147467259 Then Err.Clear Err.Number = 0 Else Exit Do End If Loop If oInstance.Products.Count > 0 Then Umbenennen oInstance.Products End If Next End Sub
------------------ Es ist nichts zu dumm, es findet doch sein Publikum.
[Diese Nachricht wurde von v5maler am 09. Okt. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
K.Siebert Mitglied Tech Zeichner
Beiträge: 415 Registriert: 19.05.2007 Win XP Catia V5 R19 Catia V5 R24
|
erstellt am: 09. Okt. 2008 15:08 <-- editieren / zitieren --> Unities abgeben: Nur für v5maler
Sollte so gehen (nicht Getestet) Code: Sub CATMain()Code_von_Makro1 Code_von_Makro2 End Sub Sub Code_von_Makro1() Set specsAndGeomWindow1 = CATIA.ActiveWindow Set viewer3D1 = specsAndGeomWindow1.ActiveViewer Set viewpoint3D1 = viewer3D1.Viewpoint3D viewer3D1.Reframe Set viewpoint3D1 = viewer3D1.Viewpoint3D CATIA.ActiveDocument.Product.Partnumber = Left(CATIA.ActiveDocument.Name, Len(CATIA.ActiveDocument.Name) - 8) Set partDocument1 = CATIA.ActiveDocument partDocument1.Save partDocument1.Close End Sub Sub Code_von_Makro2() Set oMainProduct = CATIA.ActiveDocument.product Dim oMainProducts As Products Set oMainproducts = oMainProduct.Products Umbenennen oMainProducts End Sub Sub Umbenennen(oProducts As Products) Dim oPartName As String Dim oName As String Dim i As Long For x = 1 to oProducts.Count Set oInstance = oProducts.Item(x) oNumber = oInstance.PartNumber oName = oInstance.Name i=0 Do On Error Resume Next i = i+1 If i>5000 Then ' Zahl soll angepasst werden Exit Do End If oInstance.Name = oNumber & "." & i If Err.Number = 0 Then Umbenennen oProducts.Item(x).ReferenceProduct.Products Exit Do ElseIf Err.Number = -2147467259 Then Err.Clear Err.Number = 0 Else Exit Do End If Loop If oInstance.Products.Count > 0 Then Umbenennen oInstance.Products End If Next End Sub
------------------ Sei Schlau bleib Dumm !!?!! [Diese Nachricht wurde von K.Siebert am 09. Okt. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
v5maler Mitglied
Beiträge: 96 Registriert: 16.12.2005
|
erstellt am: 09. Okt. 2008 15:42 <-- editieren / zitieren --> Unities abgeben:
Leider nicht. Du schreibst "Code_von_Makro1". Dort den kompletten Code vom Makro rein, richtig!? Mit dem Makro2 dann ebenso... Schon geil wenn man keinen Plan vom coden hat! ------------------ Es ist nichts zu dumm, es findet doch sein Publikum. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
K.Siebert Mitglied Tech Zeichner
Beiträge: 415 Registriert: 19.05.2007 Win XP Catia V5 R19 Catia V5 R24
|
erstellt am: 09. Okt. 2008 16:21 <-- editieren / zitieren --> Unities abgeben: Nur für v5maler
Eigentlich ja hier hatte ich es schon mal gelöst und hier habe ich noch ein Skript was 1 alle Zeichnungen Öffnet in dem Ordner wo sich das Product befindet 2 den Partnamen Ändert („suche nach Ersetze durch“ Funktion wie man es aus Word kennt) 3 alle Parts/Producte Speichern (Partname=Dateiname) 4 Exemplarnamen anpasst 5 Alle Zeichnungen Speichert (in dem Ordner wo sich das Part Befindet Achtung Punkte dürfen in dem Partnamen nicht vorkommen Die Sachen die du nicht haben möchtest einfach ausklammern. Oder in einer neuen Reinfolge aufrufen Edit Skript: das Product wählen das angepasst werden soll. beim Scheiben bin ich davon ausgegangen das die ETZ's im selben Ordner sind wie das Prod
------------------ Sei Schlau bleib Dumm !!?!! [Diese Nachricht wurde von K.Siebert am 09. Okt. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |