Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Zeichnung \ Textfeld automatisch ausfüllen

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:  Zeichnung \ Textfeld automatisch ausfüllen (3231 mal gelesen)
NT24
Mitglied
Technischer Zeichner


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

Beiträge: 61
Registriert: 08.11.2004

erstellt am: 12. Nov. 2006 23:22    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 Forum

Ich habe im Forum einen Beitrag gefunden wie man einen Text einliest.
http://ww3.cad.de/foren/ubb/Forum137/HTML/001111.shtml#000001

Code:
sLine = “Text”

  Set DrawingText = DrwView.Texts.Add(sLine, 0, i)
    DrawingText.SetFontSize 0, 0, 5
    DrawingText.anchorPosition = catBottomLeft



Dieses Script setzt ein Textfeld mit einem bestimten Text in eine bestimmte Position auf der Zeichnung.

Weis jemand wie das Scrpt ausschauen müsste wenn ich den Text in eine Vordefiniertes Textfeld (zb. Namen „Feld1“ auf der Zeichnung einfügen möchten.

Mit freundlichen Grüßen
NT24

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: 13. Nov. 2006 12:40    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 NT24 10 Unities + Antwort hilfreich

Hallo NT24
Wenn das Textfeld auf der Zeichnung vorhanden ist und du den Namen kennst geht es folgendermaßen:
...
Dim drawingTexts1 As DrawingTexts
Set drawingTexts1 = drawingView1.Texts
Dim drawingText1 As DrawingText
Dim n As Integer
N=0
Do
n = n + 1
If drawingTexts1.Item(n).Name = oName Then
  Set drawingText1 = drawingTexts1.Item(n)
  drawingText1.Text = "MeinText"
  Exit Do
End If
Loop Until n = drawingTexts1.Count
...
Bis denn

------------------
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

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: 13. Nov. 2006 12:44    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 NT24 10 Unities + Antwort hilfreich

Kleiner Nachtrag.
Die Variable oName muss natürlich mit dem Textfeldnamen belegt werden.

------------------
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

NT24
Mitglied
Technischer Zeichner


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

Beiträge: 61
Registriert: 08.11.2004

erstellt am: 14. Nov. 2006 09:55    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

Vielen dank für ihre Antwort!

Ich habe das Script Probiert! leider funktioniert das nicht wirklich und mir ist es nicht gelungen es zum laufen zu bringen!!

es bleibt immer auf dieser Stelle stehen


Code:
Set drawingTexts1 = drawingView1.Texts

???

mfg
NT24

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: 14. Nov. 2006 12:32    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 NT24 10 Unities + Antwort hilfreich

Hallo nochmals
Mit welcher Fehlermeldung?

------------------
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

NT24
Mitglied
Technischer Zeichner


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

Beiträge: 61
Registriert: 08.11.2004

erstellt am: 16. Nov. 2006 09:19    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

Grüß Gott!

Die Fehlermeldung Lautet:

Objekt nicht verhanden

mfg
NT24

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

Lusilnie
Mitglied



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

Beiträge: 1486
Registriert: 13.07.2005

erstellt am: 16. Nov. 2006 21:10    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 NT24 10 Unities + Antwort hilfreich

Hallo NT24,

ich will ja nicht vorwitzig sein ( ), aber wenn ich mir die Code-Schnipsel in den Beiträgen anschaue, so sollte die Zeile vielleicht so lauten:

Code:
Set drawingTexts1 = DrwView.Texts

Hilft das?


mfg,
Lusilnie

------------------

Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!!

frei nach größeren Geistern

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: 17. Nov. 2006 09:07    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 NT24 10 Unities + Antwort hilfreich

Hallo
Lusilnie hat recht, unsere Code-Schnipsel sind, so zu sagen, "inkompatibel".

------------------
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

NT24
Mitglied
Technischer Zeichner


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

Beiträge: 61
Registriert: 08.11.2004

erstellt am: 20. Nov. 2006 08:51    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

Guten Morgen Forum

Ich habe leider immer noch das Problem das das Script noch nicht Funktioniert!


In der Zeile „Set drawingTexts1 = DrwView.Texts“ Kommt die Fehlermeldung „(424) Objekt erforderlich“


Code:
Private Sub CommandButton1_Click()
oName = "TEST"

Dim drawingTexts1 As DrawingTexts
'Set drawingTexts1 = drawingView1.Texts
Set drawingTexts1 = DrwView.Texts
Dim drawingText1 As DrawingText
Dim n As Integer
n = 0
Do
n = n + 1
If drawingTexts1.Item(n).Name = oName Then
  Set drawingText1 = drawingTexts1.Item(n)
  drawingText1.text = "MeinText"
  Exit Do
End If
Loop Until n = drawingTexts1.Count

End Sub


Ich würde mich freuen über einen Antwort!

mfg
NT24

[Diese Nachricht wurde von NT24 am 20. Nov. 2006 editiert.]

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

MarkusK
Mitglied



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

Beiträge: 130
Registriert: 09.08.2002

Dell Precision T5500
Intel Xenon X5560 4x 2,8 GHz
12 GB Ram
NVIDIA Quadro FX 3800
Win XP
Catia V5R19 SP3

erstellt am: 20. Nov. 2006 12:51    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 NT24 10 Unities + Antwort hilfreich

Hallo NT24,

ich vermute dein Code weiß einfach nicht, in welcher Datei, in welchem Blatt und in welcher View
es arbeiten soll.

Als erstes fehlt dir eigentlich "Options Explicit", und zwar ganz oben in deinem Modul.
Das bewirkt nämlich, dass alle Variablen definiert sein müssen.
Somit dürft in deinem Code erst mal bei DrwView eine Fehlermeldung kommen.
Denn das ist eine (Objekt)Variable, die aber nie mit einem Objekt
verbunden wird.
Somit kann ja auch auf kein Textfeld darin zugegriffen werden.

Habe mal von mir einen Code rauskopiert. Hoffe nur er läuft, bzw. dass nix fehlt, da er halt rauskopiert wurde.
Ich trage in zwei Textfeldern das Datum und mein Name ein.
Die Textfelder sitzen auf dem Blatt "Vorlagen (Detail )", darauf in
der View "Engl. ZG-Kopf_text".
Das Makro durchläft dann, wie es die Kollegen auch schon beschrieben
haben, alle Textfelder in dieser View (nur dieser View, andere Views haben ihre eigene Textfelder, die auch gleich heißen können)

Option Explicit
Private Const Datumsfeld = 65
Private Const Namensfeld = 66

Sub CATMain()
If CATIA.Documents.Count Then
    If TypeName(CATIA.ActiveDocument) = "DrawingDocument" Then
        Freigabe Format(Date, "dd.mm")
    End If
End If
   

End Sub


Public Sub Freigabe(Datum As String)

    Dim drawingDocument1 As DrawingDocument
    Set drawingDocument1 = CATIA.ActiveDocument
   
    Dim drawingSheets1 As DrawingSheets
    Set drawingSheets1 = drawingDocument1.Sheets
   
    Dim drawingSheet1 As DrawingSheet
    If drawingSheets1.Item("Vorlagen (Detail )") Is Nothing Then MsgBox "Zeichnungköpfe nicht gefunden": Exit Sub
    Set drawingSheet1 = drawingSheets1.Item("Vorlagen (Detail )")
   
    Dim drawingViews1 As DrawingViews
    Set drawingViews1 = drawingSheet1.Views
   
    Dim drawingView1 As DrawingView
    If drawingViews1.Item("Engl. ZG-Kopf_text") Is Nothing Then MsgBox "Zeichnungköpfe nicht gefunden": Exit Sub
    Set drawingView1 = drawingViews1.Item("Engl. ZG-Kopf_text")
   
    Dim text1 As DrawingText
    Dim text2 As DrawingText
   
    'Datumsfeld ermitteln
    For Each text1 In drawingView1.Texts
        If text1.Name = "Text." & Datumsfeld Then Exit For
    Next text1
    If text1 Is Nothing Then
        MsgBox "Textfeld " & Datumsfeld & " für Datum nicht gefunden"
        Exit Sub
    Else
        text1.Text = Datum
    End If
   
    'Namensfeld ermitteln
    For Each text2 In drawingView1.Texts
        If text2.Name = "Text." & Namensfeld Then Exit For
    Next text2
    If text2 Is Nothing Then
        MsgBox "Textfeld " & Namensfeld & " für Datum nicht gefunden"
        Exit Sub
    Else
        text2.Text = "Hans Mustermann"
    End If
End Sub

------------------
Gruss Markus

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: 20. Nov. 2006 12:57    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 NT24 10 Unities + Antwort hilfreich

Hallo NT24
Deiner Variable DrwView wird gar kein Wert/Objekt zugewiesen.
So sollte es gehen:

Code:
--------------------------------------------------------------------------------
Private Sub CommandButton1_Click()
oName = "TEST"
Dim DrwDocument As DrawingDocument
Set DrwDocument = CATIA.ActiveDocument
Dim DrwSheets As DrawingSheets
Set DrwSheets = DrwDocument.Sheets
Dim DrwSheet As DrawingSheet
Set DrwSheet = DrwSheets.ActiveSheet
Dim DrwView As DrawingView
Set DrwView = DrwSheet.Views.ActiveView
Dim drawingTexts1 As DrawingTexts
Set drawingTexts1 = DrwView.Texts
Dim drawingText1 As DrawingText
Dim n As Integer
n = 0
Do
n = n + 1
If drawingTexts1.Item(n).Name = oName Then
  Set drawingText1 = drawingTexts1.Item(n)
  drawingText1.text = "MeinText"
  Exit Do
End If
Loop Until n = drawingTexts1.Count

End Sub

--------------------------------------------------------------------------------

Bitte nicht falsch verstehen:
Ich kann dir nur empfehlen dich in die "Infrastructure Automation Objects" der V5Automation.chm  einzuarbeiten. Die Forumsmitglieder können nur Lösungenvorschläge für Probleme machen, nicht ganze Programme zusammenbasteln. Grundkenntnisse der VB-Programmierung sind,auch für die Macros, erforderlich. Ein großer Vorteil ist es, wenn man weiß, ob ein Gegenüber Anfänger oder Profi ist. Entsprechend kann geantwortet werden.
Schlußendlich hätte ich aber auch detailierter antworten müssen.
Ich hoffe dein Programm funktioniert nun.

------------------
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

NT24
Mitglied
Technischer Zeichner


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

Beiträge: 61
Registriert: 08.11.2004

erstellt am: 20. Nov. 2006 14:05    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 Zusammen

Ich  möchte mich noch Mals bei euch allen bedanke für die interessanten und hilfreichen Beiträge!

Ich hätte nur noch einen bitte! Wie müsste das Script ausschauen wenn das Text Feld in der Hintergrundansicht positioniert ist?

Ich bedanke mich nochmals für eure Hilfe

mfg
NT24

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



Zerspanungsmechaniker (a)

«Innovationen sind gefragt, um unsere Erde lebenswert zu erhalten. Und wir sind ganz vorne mit dabei: Unsere Hightech-Sensoren machen rund um den Globus Maschinen leistungsfähiger und Fabriken smarter. Vor allem helfen sie, kostbare Ressourcen zu schonen. Das fasziniert mich. Wir sind der richtige Ort für alle, die mit uns in einer inspirierenden und wertschätzenden Arbeitsumgebung die Zukunft gestalten wollen....

Anzeige ansehenMechaniker
Lusilnie
Mitglied



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

Beiträge: 1486
Registriert: 13.07.2005

erstellt am: 20. Nov. 2006 21:24    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 NT24 10 Unities + Antwort hilfreich

Hallo NT24,

dann müßte die Zeile aus dem Script von Tstone nicht

Code:
Set DrwView = DrwSheet.Views.ActiveView

sondern
Code:
Set DrwView = DrwSheet.Views.Item(2)
lauten. Das sollte immer die BackgroundView (Hintergrundansicht) sein, ".Item(1)" immer die MainView (Sheet)!


mfg,
Lusilnie


------------------

Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!!

frei nach größeren Geistern

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