Autor
|
Thema: Attribute Link auf Drawing Text (5004 mal gelesen)
|
Plechri Mitglied
Beiträge: 5 Registriert: 19.12.2012
|
erstellt am: 19. Dez. 2012 09:59 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich möchte folgendes über ein CATScript Makro realisieren: Wenn ich im Drafting Modul einen Zeichnungsrahmen über ein Makro einfüge, sollen Einträge aus einer auszuwählenden 3D Datei (Part oder Product) mit dem im Schriftfeld vorhandenen Text verlinkt werden (Attribute Link). Das Problem ist dabei, dass ich über SelectElement4 ein objekt der Klasse "Part" oder "Product" auswählen möchte (indem ich während der Ausführung des Makros in das 3D Fenster des Part oder Product wechsele und darin den Part oder Product Knoten mit der Maus auswähle) und mit dieser Auswahl auf die Metadaten des 3D Dokumentes (Product.PartName oder Product.UserRefProperties...) zugreifen will. Leider habe ich auch nach langer Recherche nicht herausgefunden, wie die Auflösung auf die Variablen lautet. Der folgende Code soll die Problemstellung verdeutlichen. Er erwartet zunächst die Auswahl eines 3D Part oder Product. Nach der Auswahl generiert er einen Test "hallo", der dann aber mit der PartNumber des ausgewählten 3D Teiles überschrieben werden soll. Kann Mir jemand schreiben, wie ich auf die Daten zugreifen kann? Sub CATMain() Dim myText As DrawingText Dim E As String Dim PartDocument Dim sel(1) sel(0)="Parameter" sel(1)="Part" E=CATIA.ActiveDocument.Selection.SelectElement4(sel,"Select","Select",false,PartDocument) Set myText=CATIA.ActiveDocument.Sheets.ActiveSheet.Views.ActiveView.Texts.Add("hallo",0,0) MyText.InsertVariable 0,0 ,PartDocument.Selection.Item(1).PartNumber End Sub
vielen Dank im Voraus
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Plechri Mitglied
Beiträge: 5 Registriert: 19.12.2012
|
erstellt am: 15. Jan. 2013 08:07 <-- editieren / zitieren --> Unities abgeben:
|
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 15. Jan. 2013 08:21 <-- editieren / zitieren --> Unities abgeben: Nur für Plechri
Servus Wäre es nicht einfacher, über die Methode "GenerativeBehavior" einer Ansicht auf das verlinkte CAD-Modell (AFAIR ein Product) zu kommen? Oder leitest du auch die Einzelteilzeichnungen über die Baugruppe ab? Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Plechri Mitglied
Beiträge: 5 Registriert: 19.12.2012
|
erstellt am: 17. Jan. 2013 08:25 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernd, die Einzelteilzeichnungen leite ich nicht aus der Baugruppe ab. Ich werde es mal mit der Methode "GenerativeBehavior" versuchen - vielen Dank! Trotzdem habe ich mich gewundert, dass ich auf alle Parameter eines CATPart problemlos einen Attribute Link erstellen kann, nur eben auf die Metadaten nicht. Grüße, Christian 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: 17. Jan. 2013 08:53 <-- editieren / zitieren --> Unities abgeben: Nur für Plechri
Servus Zu deinem vorherigen Code: was liefert dir das Objekt "PartDocument" zurück? ggf könntest du dann über PartDocument.PartNumber bzw PartDocument.product.partnumber direkt zuzugreifen. (einfach mit dem Watch-Fenster die Selektion/Objekte untersuchen) Gruß Bernd
------------------ Warum einfach, wenn es auch kompliziert geht. 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: 17. Jan. 2013 11:09 <-- editieren / zitieren --> Unities abgeben: Nur für Plechri
|
Plechri Mitglied
Beiträge: 5 Registriert: 19.12.2012
|
erstellt am: 17. Jan. 2013 12:32 <-- editieren / zitieren --> Unities abgeben:
Der Hinweits mit dem Watch Fenster ist sehr interessant. Bisher habe ich nur mit dem internen CATIA Makro Editor gearbeitet. Der VBA Editor gibt mir eine Fehrermeldung für die Methode SelectElement4 heraus, obwohl ich diese bei der Eingabe direkt aus einem Dropdown Menü auswählen konnte. Muss ich ggf irgendwelche Einstellungen am VBA Editor ändern? 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: 17. Jan. 2013 12:34 <-- editieren / zitieren --> Unities abgeben: Nur für Plechri
|
Plechri Mitglied
Beiträge: 5 Registriert: 19.12.2012
|
erstellt am: 17. Jan. 2013 14:46 <-- editieren / zitieren --> Unities abgeben:
Super, jetzt Funktioniert es!!! Die Variable PartDocument ist sehr komplex, aber mit PartDocument.Selection.Item(1) konnte ich mich durch das Überwachungsfenster bis zu den Metadaten durchklicken. Die Code sieht jetzt folgendermaßen aus: Sub CATMain() Dim myText As DrawingText Dim E As String Dim PartDocument Dim iSelection As Selection Dim iSelectionObj As Object Dim sel(1) sel(0) = "Parameter" sel(1) = "Part" Set iSelection = CATIA.ActiveDocument.Selection Set iSelectionObj = iSelection E = iSelectionObj.SelectElement4(sel, "Select", "Select", False, PartDocument) Set myText = CATIA.ActiveDocument.Sheets.ActiveSheet.Views.ActiveView.Texts.Add("hallo", 0, 0) myText.InsertVariable 0, 0, PartDocument.Selection.Item(1).Value.Parameters.Item(15) End Sub
bleibt nur noch zu kläten, ob die Partnumber in einem CATPart normalerweise immer auf Item(15) liegt... Bernd, tausend Dank für Deine wertvolle Unterstützung - dadurch bin ich in der Lage, mein Titleblock Makro so aufzubohren, dass sich das Schriftfeld nach Auswahl des 3D Teiles automatisch ausfüllt und Dank der Attribute Links immer auf dem aktuellen Stand ist. Grüße, Christian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |