Autor
|
Thema: Makro für 3D-Annotations (2910 mal gelesen)
|
Elijamah Mitglied
Beiträge: 6 Registriert: 13.11.2012
|
erstellt am: 13. Nov. 2012 13:13 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, habe schon das Forum durchsucht, aber leider nichts entsprechendes gefunden: Zum Problem: Erstellt man im DMU-Navigator 3D-Annotations, dann kann man erst nachträglich über Rechte Maustaste auf das 3D-Annotation im Menü Properties --> Textproperties --> die Darstellung formatieren. Eine grundsätzliche Einstellung der Darstellung ist meines Wissens im DMU oder Catia nicht möglich. Außerdem kann ich nicht alle 3D-Annotations gleichzeitig formatieren, d.h. ich muss immer alle einzeln durchklicken. Die Idee war jetzt hierzu ein Makro zu programmieren, welches im aktuell geöffneten CatProduct alle 3D-Annotations nacheinander immer gleich formatiert: d.h.: Schwarzer Text, mit schwarzem Rahmen und gelber Hintergrundfarbe. Ich habe das ganze jetzt einmal mit Makroaufzeichen probiert: Code: Language="VBSCRIPT"Sub CATMain() Set productDocument1 = DMU.ActiveDocument Set reference1 = productDocument1.GetItem("PROJEKT") Set marker3Ds1 = reference1.GetTechnologicalObject("Marker3Ds") Set marker3D1 = marker3Ds1.Item("Text.1") marker3D1.Frame = 1 marker3D1.Fill = 1 marker3D1.TextOrientation = CatMarkerTextOrientationRight End Sub
Jetzt zu meinem Problem: 1. Ich möchte das das Makro unabhängig vom Namen des CatProducts funktioniert. Aktuell bezieht sich das Makro ja nur auf das CatProduct mit dem Namen "Project". 2. Wie baue ich hier noch eine Schleife ein, dass er nicht nur das 3D-Annotation mit dem Namen "Text.1" formatiert, sondern alle vorhandenen 3D-Annotations. Ich habe schon selbst ein bisschen rumprobiert, aber leider hat das nicht geklappt Hoffe es kann wer helfen! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DasDon Mitglied Konstruktuer
Beiträge: 169 Registriert: 25.07.2011 R18 SP2. WIN
|
erstellt am: 13. Nov. 2012 21:02 <-- editieren / zitieren --> Unities abgeben: Nur für Elijamah
bitte schön... als .CATScript speichern oder As xyz löschen. Gruß,DasDon
Code: Sub CATMain() DIM oProd As Product Set oProd = CATIA.ActiveDocument.Product Dim Markers As Marker3Ds Set Markers = oProd.GetTechnologicalObject("Marker3Ds") For each oMarker In Markers oMarker.Frame = 1 oMarker.Fill = 1 oMarker.TextOrientation = CatMarkerTextOrientationRight oMarker.Update Next End Sub
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: 13. Nov. 2012 21:45 <-- editieren / zitieren --> Unities abgeben: Nur für Elijamah
|
Elijamah Mitglied
Beiträge: 6 Registriert: 13.11.2012
|
erstellt am: 14. Nov. 2012 08:26 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, Danke! Habe das jetzt mittlerweile noch ein bisschen umgebaut. Funktioniert alles, außer das mti der Füllfarbe in den 3D-Annotations. Die Annotations werden zwar gefüllt, aber nicht gezielt in Gelb. Der Link hat mir nicht wirklich weitergeholfen. Hat da noch wer eine Idee? Hier mein aktueller Code: Code: Sub CATMain() '**********************************Abfrage Betriebsystem********************************** os = UCase(Left(CATIA.SystemConfiguration.OperatingSystem, 3)) If (os = "WIN") Or (os = "INT") Then operatingOS = True Else operatingOS = False End If '**********************************Definition Trennzeichen (Windows / UNIX)********************************** If operatingOS = True Then delimiter = "\" Else delimiter = "/" End If '**********************************3D-Annotations zugänglich machen********************************** 'Dim Name As String 'Auskommentiert wg. CATVBA Set oProduct = CATIA.ActiveDocument Set navWB = oProduct.GetWorkbench("NavigatorWorkbench") Set RefObject = oProduct.Product Set oViewCols = RefObject.GetTechnologicalObject("Marker3Ds") '**********************************Formartierungschleife Schleife ********************************** For i = 1 To oViewCols.Count Set marker3D = oViewCols.Item(i) Abfrage = MsgBox(marker3D.Text) marker3D.Frame = 1 marker3D.Fill = 1 marker3D.TextOrientation = CatMarkerTextOrientationRight marker3D.Update Next End Sub
marker3D.Fill = 1 sagt ja nur, dass gefüllt werden soll, aber nicht in welcher Farbe. Leider wird die Farbumstellung vom Makrorekorder nicht aufgezeichent. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DasDon Mitglied Konstruktuer
Beiträge: 169 Registriert: 25.07.2011 R18 SP2. WIN
|
erstellt am: 14. Nov. 2012 09:14 <-- editieren / zitieren --> Unities abgeben: Nur für Elijamah
|
Elijamah Mitglied
Beiträge: 6 Registriert: 13.11.2012
|
erstellt am: 14. Nov. 2012 09:24 <-- editieren / zitieren --> Unities abgeben:
Ich habe mir das gestern selbst noch zusammengeschrieben aus einem andern Makro. da war das so drin. Aber Danke für die Info...dann schmeiß ich das einfach raus. Irgendwer eine Idee wie man das mit der Füllfarbe lösen könnte? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DasDon Mitglied Konstruktuer
Beiträge: 169 Registriert: 25.07.2011 R18 SP2. WIN
|
erstellt am: 14. Nov. 2012 09:26 <-- editieren / zitieren --> Unities abgeben: Nur für Elijamah
bin dran ------------------------------------------- schade! habe gerade da wo ich arbeite nicht die Workbench lizenzen. Muss bis heute abend daheim warten. Aber ich glaube so, oder so ähnlich müsste es funktionieren. Wie gesagt, ich kann es nicht ausprobieren. Sub CATMain() DIM oProd 'As Product Set oProd = CATIA.ActiveDocument.Product
Dim Markers 'As Marker3Ds Set Markers = oProd.GetTechnologicalObject("Marker3Ds") For each oMarker In Markers oMarker.Frame = 1 oMarker.Fill = 1 oMarker.TextOrientation = CatMarkerTextOrientationRight CATIA.ActiveDocument.Selection.Add(oMarker) oMarker.Update oMarker.Update Next CATIA.ActiveDocument.Selection.VisProperties.SetRealColor 0,255,255,1 CATIA.ActiveDocument.Selection.Clear End Sub [Diese Nachricht wurde von DasDon am 14. Nov. 2012 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Elijamah Mitglied
Beiträge: 6 Registriert: 13.11.2012
|
erstellt am: 14. Nov. 2012 13:15 <-- editieren / zitieren --> Unities abgeben:
Also ich habe es eben einmal ausprobiert. Das Makro läuft auf jeden Fall durch..[dauert aber schon ein bisschen (bei 10 annotations knapp 4min)] Aber leider ändert er nur die Schriftfarbe und nicht die Hintergrund/bzw. Füllfarbe der Annotations. Aber schon einmal vielen Danke für die Mühe! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |