Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Text in DrawingView Sketch ersetzen

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 Autodesk Produkte
Autor Thema:  Text in DrawingView Sketch ersetzen (1369 / mal gelesen)
Brandy32
Mitglied
Konstruktionsingenieur


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

Beiträge: 23
Registriert: 16.12.2015

Windows 7, 64 bit
Inventor 2012 + 2015

erstellt am: 03. Mrz. 2016 20:29    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

Liebe Forum-Gemeinde,

vorab ich bin absoluter VBA Anfänger, und konnte mich bisher einigermaßen durchschlagen,  indem ich im Forum gefunden Codes minimal umgebastelt habe.

Nun scheitere ich gerade aber an folgendem Problem:
Ich habe auf einige Ansichten Skizzen gelegt, welche wiederum einen Text erhalten.
Nun möchte ich bestimmte textteile suchen und durch neue ersetzten.

Dies ist mein Ansatz:


Sub ReplaceText()
    Dim oDrawing As DrawingDocument
    Set oDrawing = ThisApplication.ActiveDocument
    Dim oSheet As Sheet
    Dim oView As DrawingView
    Dim oSketch As Sketch

    Dim oText As TextBox

For Each oSheet In oDrawing.Sheets
    For Each oSketch In oView.Sketches  ' hier stimmt schon was mit der Dekleratio von osketch nicht
        oSketch.Edit
        For Each oText In oSketch.TextBoxes
        oText.Text = Replace(oText.Text, "alterText", "neuerText")
        Next
        oSketch.ExitEdit
    Next
Next
End Sub


Ist der Aufruf mit TextBoxes überhaupt richtig? Oder wie komme ich an den Text?

Ich würde mich freuen, wenn mir jemand behilflich wäre.

Grüße,
Brandy

PS: In dem Fall für IV 2015, Mehr Systeminfo habe ich leider gerade nicht parat, muss ich erst im Büro anschauen  

[Diese Nachricht wurde von Brandy32 am 04. Mrz. 2016 editiert.]

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

DanSolo
Mitglied
TZ, MB Tech., Student

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

Beiträge: 5
Registriert: 01.03.2016

erstellt am: 04. Mrz. 2016 08: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 Brandy32 10 Unities + Antwort hilfreich

Guten Morgen,

Ich denke das sollte seinen Dienst tun.
Wenns noch Fragen dazu gibt, gerne 

Sub ReplaceText()
    Dim oDrawing As DrawingDocument
    Set oDrawing = ThisApplication.ActiveDocument
    Dim oSheet As Sheet
    Dim oView As DrawingView
    Dim oSketch As DrawingSketch

    Dim oText As TextBox

For Each oSheet In oDrawing.Sheets
    For Each oView In oSheet.DrawingViews
        For Each oSketch In oView.Sketches
            oSketch.Edit
            For Each oText In oSketch.TextBoxes
            oText.Text = Replace(oText.Text, "Hallo", "neuerText")
            Next
            oSketch.ExitEdit
        Next
    Next
Next
End Sub

Grüße DanSolo

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

Brandy32
Mitglied
Konstruktionsingenieur


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

Beiträge: 23
Registriert: 16.12.2015

Windows 7, 64 bit
Inventor 2012 + 2015

erstellt am: 04. Mrz. 2016 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

Hallo DanSolo,

herzlichen Dank schon mal.
Ich habe aber tatsächlich noch ein Problem damit:

Das Text ersetzten funktioniert mit deinem Code super. 

Allerdings verändert es bei mir die komplette TExtformatierung (Schrift, Zeilenumbruch,)
Außderdem habe ich im Text Bauteileigentschaften (Bauteilummer, Bezeichnung, Parameter mit Abmaßen, et.) eingefügt,
das war auch der SInn um die Skizze auf die Ansicht zu legen.
Diese Verküpfung verliert er leider nach dem ausführen des Codes und schreibt dann z.B. nur noch <Bauteilnummer> in Feld.

Hast du dafür auch eine Abhilfe????

Viele Grüße,
Brandy


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

DanSolo
Mitglied
TZ, MB Tech., Student

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

Beiträge: 5
Registriert: 01.03.2016

erstellt am: 04. Mrz. 2016 09:53    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 Brandy32 10 Unities + Antwort hilfreich

Ja, da müssen wir auf den "FormattedText" gehen, da sollten alle Formatierungen erhalten bleiben.

Sub ReplaceText()
    Dim oDrawing As DrawingDocument
    Set oDrawing = ThisApplication.ActiveDocument
    Dim oSheet As Sheet
    Dim oView As DrawingView
    Dim oSketch As DrawingSketch
    Dim oText As TextBox

For Each oSheet In oDrawing.Sheets
    For Each oView In oSheet.DrawingViews
        For Each oSketch In oView.Sketches
            oSketch.Edit
            For Each oText In oSketch.TextBoxes
                oText.FormattedText = Replace(oText.FormattedText, "Hallo", "Neuer Text")
            Next
            oSketch.ExitEdit
        Next
    Next
Next
End Sub


Grüße DanSolo

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

Brandy32
Mitglied
Konstruktionsingenieur


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

Beiträge: 23
Registriert: 16.12.2015

Windows 7, 64 bit
Inventor 2012 + 2015

erstellt am: 04. Mrz. 2016 12: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

Super, das funktioniert.

Vielen Dank an dich. 

Grüße,
Brandy

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

surfeu36
Mitglied


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

Beiträge: 5
Registriert: 08.02.2007

erstellt am: 17. Sep. 2016 21:41    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 Brandy32 10 Unities + Antwort hilfreich

Funktioniert das auch auf allgemeine Texte in der Zeichnung. Also Skizzen die nicht auf einer Ansicht liegen.
Danke

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

Brandy32
Mitglied
Konstruktionsingenieur


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

Beiträge: 23
Registriert: 16.12.2015

Windows 7, 64 bit
Inventor 2012 + 2015

erstellt am: 21. Sep. 2016 11:08    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

Hey,
ich habe mal versucht den Code soweit zu adaptieren, dass er für Texte gilt, die in einer normalen Skizze liegen.

Sub ReplaceText()
    Dim oDrawing As DrawingDocument
    Set oDrawing = ThisApplication.ActiveDocument
    Dim oSheet As Sheet
    Dim oSketch As DrawingSketch
    Dim oText As TextBox

For Each oSheet In oDrawing.Sheets
        For Each oSketch In oSheet.Sketches
            oSketch.Edit
            For Each oText In oSketch.TextBoxes
               oText.FormattedText = Replace(oText.FormattedText, "alter text", "neuer Text")
            Next
            oSketch.ExitEdit
        Next
Next
End Sub


Hier noch ein weiterer Code, um Texte die nicht in Skizzen liegen zu ersetzten (habe ich glaube ich auch mal in diesem Forum gefunden):

Sub TextErsetzen()
    Dim oDrawing As DrawingDocument
    Set oDrawing = ThisApplication.ActiveDocument
   
    Dim oSheet As Sheet
    Dim oNote As DrawingNote ' Ein Objekt vom Typ DrawingNote definieren - Das sind die normalen Text Beschriftungen
   
    For Each oSheet In oDrawing.Sheets
        For Each oNote In oSheet.DrawingNotes ' Alle Notes aus diesem Blatt in einer ForEach Schleife durchgehen
            oNote.Text = Replace(oNote.Text, "alt", "neu") ' Text ändern, Achtung, nimmt kein Text aus Skizzen mit
   
 
End Sub

Grüße,
Brandy

[Diese Nachricht wurde von Brandy32 am 21. Sep. 2016 editiert.]

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

surfeu36
Mitglied


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

Beiträge: 5
Registriert: 08.02.2007

erstellt am: 21. Okt. 2016 21: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 Brandy32 10 Unities + Antwort hilfreich

Super vielen, funktioniert.
Wenn es nun noch etwas gibt zum Ersetzen von Texten in skizzierten Symbolen, dann hätte ich alles zusammen.

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