| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
 | PNY: der unverzichtbare Partner für umfassende KI-Lösungen von Workstations bis zu Edge Computing und KI-Cluster-Bereitstellung, eine Pressemitteilung
|
Autor
|
Thema: Mtext bearbeiten (1571 mal gelesen)
|
It is me Mitglied
 Beiträge: 5 Registriert: 23.09.2003
|
erstellt am: 23. Sep. 2003 14:27 <-- editieren / zitieren --> Unities abgeben:         
|
RoSiNiNo Mitglied Konstrukteur
   
 Beiträge: 1126 Registriert: 09.10.2002 Acad 2011-deutsch, Express Tools 3ds Max 2010 Win 7-Professional HP Workstation Z400, 6GB GeForce GTX 470
|
erstellt am: 24. Sep. 2003 07:02 <-- editieren / zitieren --> Unities abgeben:          Nur für It is me
Hallo It is Me, ich begrüße dich in diesem tollen Forum. Zuerst ließ einmal das hier Supportangaben zu PC und Software - Fragen schneller und besser beantworten. Hier der Code den du brauchst. Code: Public Sub MTextTextChange() Dim ObjText As AcadMText Dim Pt As Variant Dim ObjTextOverride As String Const Textsearch As String = "xy" Const Textoverride As String = "ätsch" Dim ObjTextOverrideSplit As Variant On Error GoTo Err_Control GetEntityEx ObjText, Pt, vbCr & "MText wählen: " ObjTextOverride = ObjText.textString If InStr(1, ObjTextOverride, Textsearch) > 0 Then ObjTextOverrideSplit = Split(ObjTextOverride, Textsearch) Dim i As Long Dim Anzahl As Long Anzahl = UBound(ObjTextOverrideSplit) ObjTextOverride = ObjTextOverrideSplit(0) & Textoverride For i = 1 To Anzahl If Anzahl = 1 Then ObjTextOverride = ObjTextOverride & ObjTextOverrideSplit(i) Else If i < Anzahl Then ObjTextOverride = ObjTextOverride & ObjTextOverrideSplit(i) & Textoverride Else ObjTextOverride = ObjTextOverride & ObjTextOverrideSplit(i) End If End If Next i End If ObjText.textString = ObjTextOverride ObjText.Update Set ObjText = Nothing Exit_Here: Exit Sub Err_Control: Err.Clear Resume Exit_Here End SubPublic Sub GetEntityEx(ent As Object, pickedPoint, Optional Prompt) On Error Resume Next StartLoop: ActiveDocument.Utility.GetEntity ent, pickedPoint, Prompt If Err Then If ActiveDocument.GetVariable("errno") = 7 Then Err.Clear GoTo StartLoop Else Err.Raise vbObjectError + 5, , "User cancelled operation" End If End If End Sub
------------------ Roland Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RoSiNiNo Mitglied Konstrukteur
   
 Beiträge: 1126 Registriert: 09.10.2002 Acad 2011-deutsch, Express Tools 3ds Max 2010 Win 7-Professional HP Workstation Z400, 6GB GeForce GTX 470
|
erstellt am: 24. Sep. 2003 11:39 <-- editieren / zitieren --> Unities abgeben:          Nur für It is me
Entschuldig, der Code oben ist zwar nicht falsch, aber doch ein totaler Blödsinn da es die Funktion Replace ja schon gibt. Daher nochmals das Beispiel, nun aber richtig. Code: Public Sub MTextTextChange1() Dim ObjText As AcadMText Dim Pt As Variant Dim ObjTextOverride As String Const Textsearch As String = "xy" Const Textoverride As String = "ätsch" On Error GoTo Err_Control GetEntityEx ObjText, Pt, vbCr & "MText wählen: " ObjTextOverride = ObjText.textString ObjTextOverride = Replace(ObjTextOverride, Textsearch, Textoverride) ObjText.textString = ObjTextOverride ObjText.Update Set ObjText = Nothing Exit_Here: Exit Sub Err_Control: Err.Clear Resume Exit_Here End Sub
------------------ Roland [Diese Nachricht wurde von RoSiNiNo am 24. September 2003 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
It is me Mitglied
 Beiträge: 5 Registriert: 23.09.2003
|
erstellt am: 25. Sep. 2003 08:53 <-- editieren / zitieren --> Unities abgeben:         
Danke für die Hilfe aber den schwierigsten Teil hast du leider übersehen. Der neu eingefügte Text soll in einem anderen Schriftstil (Wingdings)eingefügt werden. Hier bin ich bisher kläglich gescheitert. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RoSiNiNo Mitglied Konstrukteur
   
 Beiträge: 1126 Registriert: 09.10.2002 Acad 2011-deutsch, Express Tools 3ds Max 2010 Win 7-Professional HP Workstation Z400, 6GB GeForce GTX 470
|
erstellt am: 25. Sep. 2003 09:07 <-- editieren / zitieren --> Unities abgeben:          Nur für It is me
Dann probier es einmal damit: Code: Public Sub MTextTextChange1() Dim ObjText As AcadMText Dim Pt As Variant Dim ObjTextOverride As String Const Textsearch As String = "xy" Const Textoverride As String = "{\fWingdings;ätsch}" On Error GoTo Err_Control GetEntityEx ObjText, Pt, vbCr & "MText wählen: " ObjTextOverride = ObjText.textString ObjTextOverride = Replace(ObjTextOverride, Textsearch, Textoverride) ObjText.textString = ObjTextOverride ObjText.Update Set ObjText = Nothing Exit_Here: Exit Sub Err_Control: Err.Clear Resume Exit_Here End Sub
------------------ Roland Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
It is me Mitglied
 Beiträge: 5 Registriert: 23.09.2003
|
erstellt am: 25. Sep. 2003 10:34 <-- editieren / zitieren --> Unities abgeben:         
|
RoSiNiNo Mitglied Konstrukteur
   
 Beiträge: 1126 Registriert: 09.10.2002 Acad 2011-deutsch, Express Tools 3ds Max 2010 Win 7-Professional HP Workstation Z400, 6GB GeForce GTX 470
|
erstellt am: 25. Sep. 2003 10:43 <-- editieren / zitieren --> Unities abgeben:          Nur für It is me
|
It is me Mitglied
 Beiträge: 5 Registriert: 23.09.2003
|
erstellt am: 25. Sep. 2003 10:45 <-- editieren / zitieren --> Unities abgeben:         
|
RoSiNiNo Mitglied Konstrukteur
   
 Beiträge: 1126 Registriert: 09.10.2002 Acad 2011-deutsch, Express Tools 3ds Max 2010 Win 7-Professional HP Workstation Z400, 6GB GeForce GTX 470
|
erstellt am: 25. Sep. 2003 10:48 <-- editieren / zitieren --> Unities abgeben:          Nur für It is me
Versuch es damit: Code: Public Function Split(Str As String, Delim As String) As Variant Dim tokens() As String, pos As Long, i As Integer pos = InStr(1, Str, Delim, vbTextCompare) i = 0 Do While pos > 0 ReDim Preserve tokens(0 To i) tokens(i) = Mid$(Str, 1, pos - 1) If tokens(i) = Delim Then tokens(i) = "" Str = Mid$(Str, pos + Len(Delim)) i = i + 1 pos = InStr(1, Str, Delim, vbTextCompare) Loop If Len(Str) > 0 Then ReDim Preserve tokens(0 To i) tokens(i) = Str End If Split = tokens End Function
------------------ Roland Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
It is me Mitglied
 Beiträge: 5 Registriert: 23.09.2003
|
erstellt am: 25. Sep. 2003 11:30 <-- editieren / zitieren --> Unities abgeben:         
|