Autor
|
Thema: Textfeld in 2D-Komponente ändern (1407 mal gelesen)
|
hauharms89 Mitglied Student
Beiträge: 6 Registriert: 15.12.2018 CATIA V5-6R2016 SP3
|
erstellt am: 10. Mai. 2019 09:44 <-- editieren / zitieren --> Unities abgeben:
Hallo, Ich komme im Drafting mit der Zuordnung nicht weiter. In der Zeichnungsvorlage gibt es ein Detail Sheet, in dem das Schriftfeld als 2D-Komponente (laut Symbol im Baum) angelegt ist. In diesem Schriftfeld ist ein Textfeld für die Bezeichnung. Ich habe bereits ein Makro aufgezeichnet wenn ich das Feld ändere. Nun zu meinem Problem: 1. Bisher dachte ich, die 2D Komponente wird über Drawing Components angesprochen. Im Makro steht es aber als View, was allein vom Baum her auch Sinn macht. 2. Das aufgezeichnete Makro endet mit
Code:
...... Dim drawingViews1 as DrawingViews Set drawingViews1 = drawingSheets1.Views Dim drawingView1 as DrawingView Set drawingView1 = drawingViews1.Item("title block complete[2]") drawingView1.Activate End Sub
Wie kann ich nun auf eben dieses Texfeld zugreifen und ist es evtl möglich nur einen bestimmten Teil des vorhandenen Textes zu ändern? Die Änderung soll aus einer TextBox in einer Userform kommen. Vielen Dank im Voraus Hauke Harms 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: 10. Mai. 2019 10:14 <-- editieren / zitieren --> Unities abgeben: Nur für hauharms89
Hallo, ungetestet ... Code:
Option Explicit Sub CATMain() Dim oDrwDoc As DrawingDocument Dim oDrwSheet As DrawingSheet Dim oDrwView As DrawingView Dim oDrwText As DrawingText
On Error Resume Next Set oDrwDoc = CATIA.ActiveDocument If Err.Number <> 0 Then MsgBox "Macro supports CATDrawings only", vbInformation, "Program abort" Exit Sub End If Set oDrwSheet = oDrwDoc.Sheets.Item(2) ' dein Detailblatt If Err.Number <> 0 Then MsgBox "Sheet not found", vbInformation, "Program abort": Exit Sub Set oDrwView = oDrwSheet.Views.GetItem("ViewName") ' das ist die View die dein Schriftfeld enthält If Err.Number <> 0 Then MsgBox "View not found", vbInformation, "Program abort": Exit Sub Set oDrwText = oDrwView.Texts.GetItem("TextFeldName") ' dein Textfeld If Err.Number <> 0 Then MsgBox "Text not found", vbInformation, "Program abort": Exit Sub MsgBox oDrwText.Name & ":" & oDrwText.Text, vbInformation, "Textfieldinfo" On Error GoTo 0 End Sub
Du musst hier nur noch deine Werte bei Item/GetItem eintragen. Gruß Randle ------------------ Wer für nichts steht, fällt für alles! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
hauharms89 Mitglied Student
Beiträge: 6 Registriert: 15.12.2018 CATIA V5-6R2016 SP3
|
erstellt am: 10. Mai. 2019 12:36 <-- editieren / zitieren --> Unities abgeben:
Vielen Dank für die schnelle Antwort. Ich habe deinen Code mal als Makro in mein Drawing geladen und er bricht mit der MsgBox "Text not found" ab. Den Namen des Textfeldes habe ich in der Zeichnung über RMT/Properties/Feature Properties rausgekriegt. Gruß Hauke
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: 10. Mai. 2019 15:49 <-- editieren / zitieren --> Unities abgeben: Nur für hauharms89
|
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 10. Mai. 2019 18:36 <-- editieren / zitieren --> Unities abgeben: Nur für hauharms89
|