Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  MText entformatieren

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
  
PNY WIRD VON NVIDIA ZUM HÄNDLER DES JAHRES GEWÄHLT, eine Pressemitteilung
Autor Thema:  MText entformatieren (1764 mal gelesen)
startrek
Moderator
Architekt


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

Beiträge: 1361
Registriert: 13.02.2003

.

erstellt am: 16. Feb. 2007 21: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

Hallo Leute,

das 'EntformatiereMTexte-Thema' hatten wir vor längerer Zeit schonmal,
anyway - ist auch nicht ganz easy irgendwie.
Hatte heute abend mal Muse und hab nochmal bissel rumgespielt,
rausgekommen ist dabei das:

Code:

Sub deformateMtext()
  Dim sset As AcadSelectionSet, ent As AcadEntity, re As Object
  Set sset = ActiveDocument.SelectionSets.Add("set2")
  sset.SelectOnScreen
  Set re = CreateObject("vbscript.regexp")
  re.IgnoreCase = 1: re.Global = 1: re.MultiLine = 0
  re.Pattern = "\{?(?:\\[fHLC].*?;|\}).*?(.*?)"
  For Each ent In sset
      If TypeOf ent Is IAcadMText Then
        Debug.Print "before:", ent.TextString
        ent.TextString = re.Replace(ent.TextString, "$1")
        Debug.Print "after:", ent.TextString
      End If
  Next
  sset.Delete
  Set re = Nothing
End Sub

Bei mir hat das hingehauen für folgende getestete textstrings:

Code:

{\fArial|b0|i1|c0|p34;zeile1}\P{\fArial Narrow|b1|i0|c0|p34;\C2;zeile2\P\fBauhaus 93|b0|i0|c0|p82;\H2x;\L\C256;zeile3\P\fArial|b0|i0|c0|p34;\H0.5x;zeile4}"
'ergibt
zeile1\Pzeile2\Pzeile3\Pzeile4

{\fArial|b1|i0|c0|p34;zeile1\P}zeile2\P{\C1;zeile3\P}zeile4
'ergibt
zeile1\Pzeile2\Pzeile3\Pzeile4

{\H2x;\C3;zeile1\P}zeile2\P{\fCourier New|b0|i0|c0|p49;\Lzeile3}\Pzeile4
'ergibt
zeile1\Pzeile2\P\Lzeile3\Pzeile4 'das \L ist noch suboptimal;-)

zeile1\P{\fArial|b1|i1|c0|p34;\H2x;zeile2\L\P\fTahoma|b0|i0|c0|p34;\H0.3x;\lzeile3\Pzeile4}
'ergibt
zeile1\Pzeile2\lzeile3\Pzeile4 'auch noch nicht so ganz ...


Frage: Kann man bei MTexten eigentlich alle möglichem Eventualitäten/Combinationéz;-) finden?

Wer Lust hat, würde mich mal interessiern, was bei euren Mtexten rauskommt, einfach zur Info und testhalber, man kann gar nicht alles selber durchspielen;-)
Wenn geht, mal bitte Originaltextstring und Ergebnistextstring posten.

Glaube zwar nicht, dass das Fass nen Boden finden wird, aber die Hoffnung stirbt bekanntlich zuletzt.

Danke Euch;-)
Nancy

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13527
Registriert: 30.11.2003

ACAD 2008 Mechanical

erstellt am: 17. Feb. 2007 18:13    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 startrek 10 Unities + Antwort hilfreich


getmext-string.VLX.txt

 
Hi Nancy .. ich hatte  da mal was in Lisp gemacht .. Siehe Anhang
(bei tiefergehenden Fragen.. frag 

------------------
  - Thomas -
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

startrek
Moderator
Architekt


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

Beiträge: 1361
Registriert: 13.02.2003

.

erstellt am: 21. Feb. 2007 21:13    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

Hi Thomas,

sorry, bin bissel spät dran, ich weiss;-)

Also erstmal danke für das File, das klappt recht gut.
WIE du das nun aber machst, bleibt mir leider unerschlossen,
- wobei ich glaube das ging mir selbst mit 'ner 'open' *.lsp so - ;-)

Ich meine aber der Wege gibt es nicht sooo viele, oder?:

1. - Mtext exploden und die strings zusammensetzen
2. - (virtuelles) Mtext-Fenster erzeugen und via Api das Handle finden und den Text auslesen
3. - Regex
4. - ...?
5. - [trekedi] wäre dann das Arbeiten mit klassischen Stringbearbeitungs/-Prüffunktionen, aber das wäre denke ich ein Mordsaufwand, ich habe dazu noch neverever einen Code gesehen [/trekedi]

DAS wäre denne die tiefergehende Frage ...;-)

lg Nancy
--
ps: die RE-Kiste klappt nicht 100% ig (wenn manns überhaupt dadrüber lösen könnte)
war eigentlich eine reine [sportliche] Übung.
Irgendwie sind da die Muster teilweise nicht greifbar, oder wechseln häufig,
so dass es ad absurdum läuft und man mit zB 1. oder 2. besser/sicherer fährt.

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