Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  CATIA V5 Drafting
  Text im Blatthintergrund auslesen u. ändern

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für CATIA & Co.
  
KISTERS 3DViewStation: Neuer Strukturvergleich ab sofort verfügbar, eine Pressemitteilung
Autor Thema:  Text im Blatthintergrund auslesen u. ändern (3849 mal gelesen)
Pietzonka
Mitglied
Maschinening.


Sehen Sie sich das Profil von Pietzonka an!   Senden Sie eine Private Message an Pietzonka  Schreiben Sie einen Gästebucheintrag für Pietzonka

Beiträge: 114
Registriert: 14.03.2006

erstellt am: 21. Mrz. 2014 14:11    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


FehlermeldungMethodebeiText.jpg

 
Hallo Catia-Gemeinde!

Mit folgendem Makro wechsel ich in den Blatthintergrund.
Dort möchte ich den Text TitleBlock_Text_Projektnr-u-Bezeichnung auslesen, und bearbeitet zurückschreiben.
Nur scheitere ich schon am Auslesen bzw. bekomme ich beiliegende Fehlermeldung zu MsgBox.

So schwer kann es wohl nicht sein!

Vielleicht könntet Ihr mir auf die Sprünge helfen?

MfG  Stephan

Sub CATMain()
Dim Doc As Document
Set Doc = CATIA.ActiveDocument
Dim drwsheets As DrawingSheets
Set drwsheets = CATIA.ActiveDocument.Sheets
Set drwsheetsorder =  CATIA.ActiveDocument.DrawingRoot
'Set sheet1 = drwsheets.item(1)
'Set sheet2 = drwsheets.item(2)
' newsheetorder = Array(sheet2, sheet1)
' drwsheetsorder.reorder_Sheets(newsheetorder)

'CATIA.ActiveDocument.DrawingRoot.GetActiveSheet
Dim Blattmenge As Integer
Dim X As Integer
Blattmenge = CATIA.ActiveDocument.Sheets.Count
MsgBox("Blattmenge =  " & Blattmenge )
Dim ActuSheet As DrawingSheet
Dim DrwTexts As DrawingTexts
Dim ActuText As DrawingText

For X =1 To Blattmenge
Set ActuSheet = drwsheets.item(X)
ActuSheet.Activate 'Set SheetToWorkIn =  MyDrawingDoc.Sheets.ActiveSheet
MsgBox("aktives Blatt =  " & X)

Set drwviews = ActuSheet.Views
Set mainview = drwviews.item(1)
Set backview = drwviews.item(2)
backview.Activate
Set DrwTexts = backview.Texts

Set ActuText = DrwTexts.Texts.Item(2)
'Set ActuText = DrwTexts.Item(1).Text
'Set ActuText = DrwTexts.Texts("TitleBlock_Text_Projektnr-u-Bezeichnung").Text
'Set ThisDrawingText = backview.Texts.Item(2)
'ActuText = DrwTexts.Item("TitleBlock_Text_Projektnr-u-Bezeichnung").Text
MsgBox("ActuText =  " &  ActuText )

Next
End Sub

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

bgrittmann
Moderator
Konstrukteur


Sehen Sie sich das Profil von bgrittmann an!   Senden Sie eine Private Message an bgrittmann  Schreiben Sie einen Gästebucheintrag für bgrittmann

Beiträge: 12054
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 21. Mrz. 2014 14:16    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Pietzonka 10 Unities + Antwort hilfreich

Servus
Lass mal das "Texts" (ist sonst doppelt) weg:
Code:
Set ActuText = DrwTexts.Item(2)
Die passt eher ins Programmier-Forum.

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Pietzonka
Mitglied
Maschinening.


Sehen Sie sich das Profil von Pietzonka an!   Senden Sie eine Private Message an Pietzonka  Schreiben Sie einen Gästebucheintrag für Pietzonka

Beiträge: 114
Registriert: 14.03.2006

erstellt am: 24. Mrz. 2014 08:59    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


FehlermeldungEigenschaftuMethodebeiText.jpg

 
Hallo Bernd!

Danke für Deine Antwort!
Jetzt sieht das Makro so aus:

Sub CATMain()
Dim Doc As Document
Set Doc = CATIA.ActiveDocument
Dim drwsheets As DrawingSheets
Set drwsheets = CATIA.ActiveDocument.Sheets
Set drwsheetsorder =  CATIA.ActiveDocument.DrawingRoot

Dim Blattmenge As Integer
Dim X As Integer
Blattmenge = CATIA.ActiveDocument.Sheets.Count
MsgBox("Blattmenge =  " & Blattmenge )
Dim ActuSheet As DrawingSheet
Dim DrwTexts As DrawingTexts
Dim ActuText As DrawingText

For X =1 To Blattmenge
Set ActuSheet = drwsheets.item(X)
ActuSheet.Activate 'Set SheetToWorkIn =  MyDrawingDoc.Sheets.ActiveSheet
MsgBox("aktives Blatt =  " & X)

Set drwviews = ActuSheet.Views
Set mainview = drwviews.item(1)
Set backview = drwviews.item(2)
backview.Activate
Set DrwTexts = backview.Texts

'Set ActuText = DrwTexts.Texts.Item(1)
'Set ActuText = DrwTexts.Item(1).Text
'Set ActuText = DrwTexts.Texts("TitleBlock_Text_Projektnr-u-Bezeichnung").Text
'Set ActuText = backview.Texts.Item(2)
'ActuText = DrwTexts.Item("TitleBlock_Text_Projektnr-u-Bezeichnung").Text

Set ActuText = DrwTexts.Item(1)
MsgBox("ActuText =  " &  ActuText )

Next
End Sub

'TitleBlock_Text_Projektnr-u-Bezeichnung
'`Blatt .1\Background View\DrwDressUp.1\TitleBlock_Text_Projektnr-u-Bezeichnung\Activity`
'`Blatt .1\Main View\Name` Main View
'`Blatt .1\Background View\Name` Background View

Es kommt ein Fehler, wie im Anhang zu sehen ist: "Das Objekt unterstützt diese Eigenschaft oder Methode nicht".
Die MsgBox kann ActuText sicher nicht ohne Grund nicht darstellen.
Vielleicht kommt man über die Parameter heran, wobei meine Versuche fehl schlugen.

MfG  Stephan

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

bgrittmann
Moderator
Konstrukteur


Sehen Sie sich das Profil von bgrittmann an!   Senden Sie eine Private Message an bgrittmann  Schreiben Sie einen Gästebucheintrag für bgrittmann

Beiträge: 12054
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 24. Mrz. 2014 09:03    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Pietzonka 10 Unities + Antwort hilfreich

Servus
Welche Zeile ist diese mit dem Fehler?
IMHO liefert dir ActuText nur das Text-Objekt und nicht den String selbst zurück.
Probiere es mal so:
Code:
MsgBox("ActuText =  " &  ActuText.Text )
Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Pietzonka
Mitglied
Maschinening.


Sehen Sie sich das Profil von Pietzonka an!   Senden Sie eine Private Message an Pietzonka  Schreiben Sie einen Gästebucheintrag für Pietzonka

Beiträge: 114
Registriert: 14.03.2006

erstellt am: 24. Mrz. 2014 11:04    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Danke für diesen Hinweis, nun kann ich

- den Textinhalt auslesen:
Set ActuText = DrwTexts.Item(X)
MsgBox("ActuText =  " &  ActuText.Text )
ActuTextString  =ActuText.Text
MsgBox("ActuTextString  =  " &  ActuTextString )

- den Textinhalt zuweisen:
ActuText.Text = "Gehäuse S re./li."
!
Die Zeichnungen waren an verschiedenen Tagen erstellt worden.
Nun fiel mir auf, dass der DrawingText eine Bezeichnung bzw. Komponentennamen hat (z.B. TitleBlock_Text_DDate_1).
Wenn ich über den Komponentennamen an den Text heran käme, wäre das sehr praktisch.
Mit beiliegenden Bild wird vielleicht deutlicher, was ich meine.

MfG  Stephan

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Pietzonka
Mitglied
Maschinening.


Sehen Sie sich das Profil von Pietzonka an!   Senden Sie eine Private Message an Pietzonka  Schreiben Sie einen Gästebucheintrag für Pietzonka

Beiträge: 114
Registriert: 14.03.2006

Catia V5 R2019 SP9 Build Number 19
SolidWorks 2020 Standard
Win10 64 pro
Fujitsu Celsius
Xeon CPU E5-2643 V2 3.5 GHz, 16 GB

erstellt am: 24. Mrz. 2014 11:06    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

bgrittmann
Moderator
Konstrukteur


Sehen Sie sich das Profil von bgrittmann an!   Senden Sie eine Private Message an bgrittmann  Schreiben Sie einen Gästebucheintrag für bgrittmann

Beiträge: 12054
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 24. Mrz. 2014 11:23    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Pietzonka 10 Unities + Antwort hilfreich

Servus
IMHO geht das leider nicht.
Entweder eine Schleife über die Texts-Collection laufen lassen und entsprechende Text "suchen".
Oder über die Suche den Text selektieren lassen. (ggf zunächst Ansicht selektieren und dann in Selektion suchen)

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Pietzonka
Mitglied
Maschinening.


Sehen Sie sich das Profil von Pietzonka an!   Senden Sie eine Private Message an Pietzonka  Schreiben Sie einen Gästebucheintrag für Pietzonka

Beiträge: 114
Registriert: 14.03.2006

erstellt am: 24. Mrz. 2014 11:28    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Mit den vorliegenden Mitteln ist die Aufgabe schon komfortabel zu machen.

Dir , Bernd, ein abschließens Großes Danke!

MfG  Stephan

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2025 CAD.de | Impressum | Datenschutz