Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Problem geziehlt textfeld auswählen und Inhalt ä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
Autor Thema:  Problem geziehlt textfeld auswählen und Inhalt ändern (2170 mal gelesen)
adran.dargel
Mitglied



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

Beiträge: 16
Registriert: 10.06.2009

erstellt am: 10. Jun. 2009 10:49    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

Hallo liebes Forum,

Ich will ein Makro schreiben welches automatisch an bestimmte Textfelder meiner Zeichnung mit Inhalt füllt.
ich habe allerdings problem geziehlt eine Textfeldinstanz anzusprechen.

'---- Begin resolution script for object : Text.120

Dim drawingDocument1 As DrawingDocument
Set drawingDocument1 = CATIA.ActiveDocument

Dim drawingSheets1 As DrawingSheets
Set drawingSheets1 = drawingDocument1.Sheets

Dim drawingSheet1 As DrawingSheet
Set drawingSheet1 = drawingSheets1.Item("Sheet.1")

Dim drawingViews1 As DrawingViews
Set drawingViews1 = drawingSheet1.Views

Dim drawingView1 As DrawingView
Set drawingView1 = drawingViews1.Item("Background View")

Dim drawingTexts1 As DrawingTexts
Set drawingTexts1 = drawingView1.Texts

Dim drawingText1 As DrawingText
Set drawingText1 = drawingTexts1.Item("Text.120")

'---- End resolution script

In der letzten Zeile kommt ein Fehler:

run-time error '13'
type mismatch

:-(

Was mach ich denn verkehrt?

Bisher untersuche ich über eine For schleife alle Textfelder und schau ob der Inhalt dem meiner suche entspricht. Das ist aber zum einen keine schöne Lösung und zum anderen funtktioniert es nicht überall so wie ich das will. aber hier noch ein Codebeispiel

Dim j As Integer
Dim oText As DrawingText
Dim ocText As DrawingTexts

Set ocText = oView.Texts
For j = 1 To ocText.Count
Set oText = ocText.Item(j)

If oText.Text = "gesuchter text" Then
  oText.Text = "ersatz text"
End If

Also ich bin für jedem Tip dankbar.
Grüße

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

Tstone
Mitglied
Werkzeugkonstrukteur


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

Beiträge: 163
Registriert: 04.06.2003

Dell Precision 470
Intel Xeon CPU 3,00GHz
2GB Ram
Microsoft Windows XP
Catia V5 R18 SP6
VB2005

erstellt am: 10. Jun. 2009 12:42    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 adran.dargel 10 Unities + Antwort hilfreich

Hallo
DrawingTexts.Item erwartet einen Parameter vom Typ Long, du übergibst einen String. Das kann nicht funktionieren.
Du kommst somit um die Schleife nicht herum.

------------------
Grüße TStone
   "Respektiere die Macht der Worte, wähle sie mit Bedacht!"

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

adran.dargel
Mitglied



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

Beiträge: 16
Registriert: 10.06.2009

erstellt am: 10. Jun. 2009 13:09    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

Hallo TStone,

allerdings funktioniert das Ansprechen über den Namen als String,
wie hier zu sehen ist:

Dim drawingView1 As DrawingView
Set drawingView1 = drawingViews1.Item("Background View")

Verhalten sich die Texts wirklich anders? Wie kann ich das denn überprüfen?

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

DanielFr.
Moderator
Manager


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

Beiträge: 2506
Registriert: 10.08.2005

HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3

erstellt am: 10. Jun. 2009 13:54    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 adran.dargel 10 Unities + Antwort hilfreich

Hallo,

nein eigentlich verhält es sich nicht anders aber der Ausdruck Background View ist eine Konstante die in einer System Collection steht und deswegen in einen Long-Typ umgewandelt und interpretiert werden kann.

D.h. um die Textbox mit dem Namen anzusprechen brauchst du nicht die Item-Methode sondern die GetItem-Methode. Diese erwartet im Gegensatz zur Item-Methode keinen Typ Long sondern einen Typ String.

------------------
MFG Daniel

Die KATJA ist halt doch nur ne zickige Französin

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

adran.dargel
Mitglied



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

Beiträge: 16
Registriert: 10.06.2009

erstellt am: 11. Jun. 2009 11:09    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 Ihr habt mir beide sehr geholfen,


zur Zusammenfassung nochmal eine zeile aus dem prog.
oView.Texts.GetItem("Text.111").Text = "hier kommt der inhalt"

Bis dann

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)2023 CAD.de | Impressum | Datenschutz