Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Rund um AutoCAD
  Textstile global in MTexten ä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
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Textstile global in MTexten ändern (3218 mal gelesen)
molo
Mitglied
Dipl. Ing. Versorgungstechnik


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

Beiträge: 384
Registriert: 16.07.2002

Windows 7 64 bit, AutoCAD MEP 2012

erstellt am: 27. Jan. 2005 15:01    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

Moin,

wenn wir eine Datei von Architekten bekommen, wandeln wir erstmal alle Stile die TTF-Schriftarten beinhalten um, so dass die TTF-Fonts durch SHX-fonts ersetzt werden.

Das machen wir, da unser Acad erheblich langsamer wird, wenn wir diese Datei mit TTF-Fonts als Xref irgendwo unterlegen. Dabei nehmen wir durchaus in kauf, dass sich das Schriftbild ändert.

Allerdings hat die Umwandlung der Textstile keine Auswirkung auf Textelemente, die in MTexten enthalten sind.

In folgenden Beitrag hat Holger schon drauf hingewiesen, dass diese sich nur mit einem Tool bearbeiten lassen würden.
http://ww3.cad.de/foren/ubb/Forum54/HTML/008091.shtml

Wir behelfen uns allerdings zurzeit damit, dass wir sämtliche3 Texte explodieren. Der Nachteil daran ist, dass die Texte alle auf das aktuelle Layer kommen.

Falls jemand für die Umwandlung der Textelemente in MTexten ein Tool hat würde ich darüber sehr freuen.

Falls nicht, lebe ich eben weiter damit, dass die Texte alle auf einem Layer landen.

Ist dieser Poformensverlust bei TTF-Schriften bei neueren AKAD-Versionen eigentlich immer noch vorhanden?

------------------
Schöne Grüsse aus dem Herzen Hamburgs

Morten

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

Proxy
Ehrenmitglied
Stateless-DHCP v6-Paketfragmentierer


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

Beiträge: 1629
Registriert: 13.11.2003

Tastaturen, Mäuse,
Pladden, Monitore, ...

erstellt am: 27. Jan. 2005 17:06    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 molo 10 Unities + Antwort hilfreich

Schon mal Chtext von CADWiesel probiert ?

------------------
"Lisp?!?! Why the Hell did you pick the most arcane, obscure, and hopelessly-rooted-in-the-computer-science-department language in the world for an AutoCAD programming language?"  Read the whole story: The Autodesk File ca. 890 Seiten | 7500 KB PDF

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

molo
Mitglied
Dipl. Ing. Versorgungstechnik


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

Beiträge: 384
Registriert: 16.07.2002

Windows 7 64 bit, AutoCAD MEP 2012

erstellt am: 27. Jan. 2005 17:14    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

Ja, ich hab natürlich erstmal bei DEFUN und CADwiesel gesucht. 

(Vielen dank nochmal an dieser Stelle an die Beiden!)

Hat aber leider nicht geholfen. :|

"0 Textelemente gefunden"

Aber trotzdem Danke

------------------
Schöne Grüsse aus dem Herzen Hamburgs

Morten

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

flaschenpost
Mitglied
Architekt


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

Beiträge: 497
Registriert: 29.09.2004

ADT 2004 / Windows XP

erstellt am: 27. Jan. 2005 18:31    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 molo 10 Unities + Antwort hilfreich

Hallo molo,

und das geht bei Euch nicht über das Eigenschaftsfenster ?
Oder hab ich Dich falsch verstanden ?

Gruß Carsten

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

Kramer24
Ehrenmitglied V.I.P. h.c.
Architekt


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

Beiträge: 5881
Registriert: 09.11.2001

Acad Architecture 2023
WIN 10

erstellt am: 27. Jan. 2005 18: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 molo 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von flaschenpost:

...und das geht bei Euch nicht über das Eigenschaftsfenster ?

aber nur, wenn nicht innerhalb des Mtextes -z.B. ein Wort- ein anderer Schriftname eingefügt wurde. Und das scheint hier so.

Lothar

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

flaschenpost
Mitglied
Architekt


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

Beiträge: 497
Registriert: 29.09.2004

ADT 2004 / Windows XP

erstellt am: 27. Jan. 2005 19: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 Nur für molo 10 Unities + Antwort hilfreich

Hallo Lothar,

Du meinst solche netten Sachen :  (1 . "{\\fArial Black|b0|i0|c0|p34;das ist nur ein }beispiel").

Bevor jemand ein Lisp macht, wäre es sicher gut, zu wissen was bei ihm drinsteht.

Gruß Carsten

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

Proxy
Ehrenmitglied
Stateless-DHCP v6-Paketfragmentierer


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

Beiträge: 1629
Registriert: 13.11.2003

Tastaturen, Mäuse,
Pladden, Monitore, ...

erstellt am: 27. Jan. 2005 20: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 molo 10 Unities + Antwort hilfreich

Schau mal hier mal nach da Hr. Brischke eine nette Funktion eingebaut. Wenn du jedoch tatsächlich sooo kaputte M-Text drin hast ist die Optik der "neuen" Texte die am Ende einer Konvertierungsfunktion rauskommt echt schlecht.

Wenn du es jedoch riskieren willst kannst auch z.B. eine Funktion verwenden die IMHO extrem gefährlich ist. Es wird schon einen Grund haben dass dort in Textobjekten z.B. "\\fArial Black|b0|i0|c0|p34;" steht. Vielleicht schaft ein Lisp-Guru die dort eingepflegten Daten so auszulesen damit z.B. ein temporärer Textstill erzeugt werden kann der z.B alle Fremden Truetypeschriftartenverweise auf einen oder mehrere andere Textstille verweist / ändert und den ur-M-Text "bereinigt". z.B. Arial Black Schriftart => Textstil ArialBlack => mit entsprechenden auszurechnenden Textgrösse, da liegt für mich der Knackpunkt weil ich keine fehlerfreie Logik zwischen den bei dir eingetragenen Texthöhenwerten, Optik (Kursiv, Unterstrichen, ... ) und und entsprechend einem neuen Textstil zuweisen kann.


Als Beispiel z.B. ein kleine Funktion die alle Textstille auf ISOCP der Textobjekte umschreibt.

Code:

(defun c:Alle_Text_Styles_2_ISOCP ()
    (command "_regenauto" "_off")
    (setq oldTextstyle (getvar "Textstyle"))
    (setq temp (cdr (assoc '2 (tblnext "style" t))))
    (setq stylelist (list temp))
    (while temp
(setq temp (cdr (assoc '2 (tblnext "style"))))
(setq stylelist (append
    (list temp)
    stylelist
)
)
    )
    (setq stylelist (cdr stylelist))
    (foreach style stylelist
(command "_style" style "isocp.shx" "" "" "" "" "")
    )
    (setvar "Textstyle" oldTextstyle)
    (command "_regenauto" "_on")
    (command "_regen")
    (princ "\nAlle Textstile wurden auf Schriftzeichentabelle ISOCP.SHX gesetzt !")
    (princ)
)
(princ)

Es kann auch mal nicht schaden bei z.B. Defun mal nach einem Preis für eine Einzelprogrammierung nachzufragen wenn es z.B. für einen Stappellauf von "verschmutzen" Zeichnungen benötigt wird.

------------------
"Lisp?!?! Why the Hell did you pick the most arcane, obscure, and hopelessly-rooted-in-the-computer-science-department language in the world for an AutoCAD programming language?"  Read the whole story: The Autodesk File ca. 890 Seiten | 7500 KB PDF

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

startrek
Mitglied
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: 27. Jan. 2005 20:35    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 molo 10 Unities + Antwort hilfreich

Hei Leute,

ich glaub zwar das harkt hinten und vorne gewaltig,
aber der Wille war zumindest da ...  ;;-))
ansonsten schwenk ich schonmal die weisse Flagge ...
lg Nancy

Code:

Option Explicit
Sub test()
  Dim i As Long, x As Long, y&, arr, s As String
  With ThisDrawing.ModelSpace
      For i = 0 To .Count - 1
        If TypeOf .Item(i) Is IAcadMText Then
            arr = Split(.Item(i).TextString, "\f")
            s = arr(0)
            For x = 1 To UBound(arr)
              y = InStr(1, arr(x), "|")
              s = s & "\Fsimplex.shx" & Mid(arr(x), y, Len(arr(x)) - y)
            Next
        End If
      Next
      .Item(i - 1).TextString = s
  End With
End Sub

ps: achja, nochwas - lower acad2000i = VBE5 mit split() no chance, sorry

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

Proxy
Ehrenmitglied
Stateless-DHCP v6-Paketfragmentierer


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

Beiträge: 1629
Registriert: 13.11.2003

Tastaturen, Mäuse,
Pladden, Monitore, ...

erstellt am: 27. Jan. 2005 20:50    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 molo 10 Unities + Antwort hilfreich

@ Startrek

Hmmmmmm.

Versuchsmal mit sowas:

Code:

\\A1;{\\fArial|b0|i1|c0|p34;\\C2;T\\fSansSerif|b0|i0|c2|p2;\\H3x;\\C3;E\\fTahom
a|b0|i0|c0|p34;\\H0.3333x;\\C6;S\\fTimes New Roman|b0|i0|c0|p18;\\H3x;\\LT}
{\\H0.7001x;\\S 1/2;} * {\\C1;8%%c}

Oppps , so einfach ist die ganze Geschichte leider nicht. 

------------------
"Lisp?!?! Why the Hell did you pick the most arcane, obscure, and hopelessly-rooted-in-the-computer-science-department language in the world for an AutoCAD programming language?"  Read the whole story: The Autodesk File ca. 890 Seiten | 7500 KB PDF

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

flaschenpost
Mitglied
Architekt


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

Beiträge: 497
Registriert: 29.09.2004

ADT 2004 / Windows XP

erstellt am: 27. Jan. 2005 21: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 Nur für molo 10 Unities + Antwort hilfreich

Hallo Proxy,

er brauchte nur  {\\fArial Black|b0|i0|c0|p34;  und  }  über eine Schleife rauswerfen. Danach kann er beliebig manipulieren.
Die Frage wäre, ob all seine Formatänderungen in der gleichen Form {*****;  vorliegen. Sonst würde man den Textinhalt beschädigen.
Am besten wäre eine Beispiel.dwg mit ein paar typischen Texten.

Gruß Carsten

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

startrek
Mitglied
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: 27. Jan. 2005 21: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 molo 10 Unities + Antwort hilfreich

Nochmal High,

also wenn ich das mal richtig durchdenke,
für die x-verschiedenen Fälle an Fonts und überhaupt, die hier zutreffen können/könnten,
wirds wohl etwas komplizierter, hier was 'global-allgemeingültiges' zu programmieren.
Einen guten Ansatz hat mapcar hier geliefert:  http://ww3.cad.de/foren/ubb/Forum54/HTML/004190.shtml#000012
Fällt aber unter die Kategorie: effektiv, aber nix ist fix mal so hingetippst ;-))

Carsten, Du gehst jetzt aber nur starr & steif von Arial Black aus, oder?
Ich mein mit 'global' kann 'alles Mögliche' gemeint sein ...,
insofern hat Proxy scho recht - is nicht so einfach das Ganze ...

Gruss Nancy
             

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

flaschenpost
Mitglied
Architekt


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

Beiträge: 497
Registriert: 29.09.2004

ADT 2004 / Windows XP

erstellt am: 27. Jan. 2005 22:02    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 molo 10 Unities + Antwort hilfreich

Hallo Nancy,

ich kenne Molos Texte nicht. Das war nur ein Beispiel von mir. Und bevor wir probieren bräuchten wir typische Texte von ihm. Wenn innerhalb seiner Textblöcke keine Formatänderungen vorkommen, ist das Ändern des Stils mit Eigenschaftsfenster kein Problem. Kommen sie vor und es stört ihn nicht, dass alles in dem Textblock auf ein Format gesetzt wird, könnte man vermutlich alle reinen Formatanweisungen rauswerfen. In dem Programm brauchte gar kein Stil vorkommen - den Stil festlegen, das kann er dann selbst machen.

Da ich Mtext kaum einsetze und dann innerhalb des Textes keine Formatänderungen habe, war mir das Problem nicht bekannt -
nur dank Lothar.

Gruß Carsten

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

startrek
Mitglied
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: 27. Jan. 2005 22:48    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 molo 10 Unities + Antwort hilfreich

Naja, okay ..., lass ich mal so gelten ;-)
Eins kann ich mir nur nicht verkneifen, es geht ja hier nicht um 'Molos Texte'
sondern global/pauschal um MTexte.
Ein geupptes beispiel von Mortens MTexten besteht halt nur aus Mortens MTexten,
wird aber programmtechnisch nie allgemeingültig sein, sondern immer nur Molo-Text-gültig sein.

Aber darum ging ja die ganze Kiste eigentlich - eben um die Allgemeingültigkeit ...

> Da ich Mtext kaum einsetze und dann innerhalb des Textes keine Formatänderungen habe,
> war mir das Problem nicht bekannt [...]

Carsten, kenn ich das Gefühl, man kniet sich in was dahinter, von dem man nur bedingt Ahnung hat,
bzw. man halst sich Probleme auf, die man ohne das Forum gar nicht hätte.

Aber egal - man lernt ja auch selber was dabei - von daher isses okay.
Aber muss man deswegen immer posten?
Allein das 'zurückhalten' und 'Mitlesen' - daran wächst man ungemein,
und wenn mal ein Prob auftritt, wo man wirklich was zu sagen hat, zählt dann das Post 'zigfach

aber nur eine Meinung ;-))

Gruss Nancy
--
ps: Carsten jetz hab ich doch glatt ne wette verloren ;-)))

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

flaschenpost
Mitglied
Architekt


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

Beiträge: 497
Registriert: 29.09.2004

ADT 2004 / Windows XP

erstellt am: 27. Jan. 2005 23:27    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 molo 10 Unities + Antwort hilfreich

Hallo Nancy,
da es mir egal ist, wie viele Wetten Du hier verlierst (sorry), noch etwas zur Ergänzung.

Proxy schreibt:
Es wird schon einen Grund haben dass dort in Textobjekten z.B. "\\fArial Black|b0|i0|c0|p34;" steht.

Klar hat es einen Grund - weil ich das so gesetzt habe.
Und weil ich dann auf Molos Antwort gewartet habe.

(Falls Du verstehst, was ich meine)

Ich habe hier übrigens noch ein paar Beiträge drin, wo die Antworten unbefriedigend waren oder keine Vorschläge brachten.
Ich hätte mir gewünscht, mehr Antworten zu erhalten - auch wenn die Antworten mal halbfertig oder falsch sind.
Weil ich dann in einigen Dingen vielleicht eine Lösung gefunden hätte - auch wenn der Weg zur Lösung ein anderer geworden wäre.
Und das meistens nicht für mich. 

Aber schön, dass Ihr Euch solche Sorgen um mich macht !


Gruß Carsten

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

startrek
Mitglied
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: 28. Jan. 2005 19:20    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 molo 10 Unities + Antwort hilfreich

Abend nochmal,

hab' mich nochmal dran verkünstelt, [sorry no LISP & RegEx] sondern nur 'billiges' VBA
sieht nicht besonders hübsch aus und obs für 'alle' Fälle zutrifft,
weiss ich auch nicht, also hier nochmal ein Versuch/Ansatz:

Code:
Sub clearFormats()
  Dim sset As AcadSelectionSet, ent As AcadEntity
  Dim i As Long, x As Long, y&, arr1, arr2, s As String, z&
  Set sset = ActiveDocument.SelectionSets.Add("set1")
  sset.SelectOnScreen
  For Each ent In sset
      If TypeOf ent Is IAcadMText Then
        arr1 = Split(ent.TextString, "{\f")
        s = ""
        For x = 0 To UBound(arr1)
            If InStr(1, arr1(x), ";") Then
              arr2 = Split(arr1(x), ";")
              For y = 1 To UBound(arr2)
                  s = s & Replace(arr2(y), "}", "")
                Next
            Else: s = s & arr1(x)
            End If
        Next
      End If
      ent.TextString = s
  Next
  sset.Delete
End Sub

Carsten, hab' scho verstanden wie Du es meintest,
mir schwebte allerdings sowas wie Allgemeingültigkeit vor,
alles andere ist M.E. zu starr und schade um jede Zeile Code ;-))

> Ich hätte mir gewünscht, mehr Antworten zu erhalten - auch wenn die Antwort[en] [deine?]
> mal halbfertig oder falsch sind. [waren?]
> Weil ich dann in einigen Dingen vielleicht eine Lösung gefunden hätte -
> auch wenn der Weg zur Lösung ein anderer geworden wäre.

Schön gesagt - Carsten, so gehts mir auch öfters, wie zB jetzt ... ;-))

Grüsse Nancy   

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

Brischke
Ehrenmitglied V.I.P. h.c.
CAD on demand GmbH



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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools

erstellt am: 28. Jan. 2005 20:25    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 molo 10 Unities + Antwort hilfreich

Hallo Nancy,

Nur eine Anmerkung: Wenn ich deinen Code richtig lese (nicht getstet), dann wird der String an den Stellen gebrochen, an denen entweder ein \f oder ein ; gefunden wird. Das ist sehr waghalsig, da ja diese Zeichen oder Zeichenkombination auch in dem Text vorkommen kann.
Ich selbst bin am basteln einer Lösung, die allerdings bis jetzt auch schon recht komplex ist, da in Kombination mit weiteren Steuerkonstrukten(Texthöhenänderung, Farbänderung, Fett, Kursiv...) noch ganz andere Probleme aufwirft.
Wenn's fertig ist, werde ich's auf der Webseite bekannt geben.

Grüße Holger

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

startrek
Mitglied
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: 28. Jan. 2005 21: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 Nur für molo 10 Unities + Antwort hilfreich

Hallo Holger,

ja, da hast Du recht, das hat mir auch schon Kopfzerbrechen bereitet.
Deswegen bin ich eiskalt beim zweiten split(arr(x), ";") von lbound = 1 ausgegangen,
das erste [0'te] Element enthält halt die Formatinfos, und die wollen wir ja rausbügeln,
deswegen erst ab eins begonnen.
Bei Text der sowohl '{/f' als auch ';' in der Kombination/Reihenfolge enthält, wirds natürlich Mist ... ;-))
Aber da fällt mir auf, wenn im Text ein Semikolon entahlten ist, fehlte da auch sowas wie s=s&join(arr2(y), ";")
oder sowas halt, sonst fällt das ';' unterm Tisch.
Ist/war aber vielleicht zu einfach gedacht ...
Naja - ausserdem funzt das ganze sowieso nicht so recht, hab zwar x-mal debug.print ent.textstring
verglichen, aber ist halt nicht so einfach - wenn mans zweifach nimmt ;-))
Denke mal Axels Regexp ist da wesentlich eleganter, als den Textstring erstmal auseinanderzunehmen
und irgendwie wieder zusammenzubasteln, denn nix andres isses doch eigentlich?
Jedenfalls, Holger, ein sehr komplexes Thema mit vielen Eventualitäten - seh' ich auch so,
und freu' mich wenn du eine Lösung gefunden hast und diese preisgibst.
Deswegen - viel Glück/Inspiration auf dem Weg dahin ;-))

Grüsse Nancy         

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

startrek
Mitglied
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: 29. Jan. 2005 17: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 molo 10 Unities + Antwort hilfreich

Okay, nur der Vollständigkeit halber, hier noch Be[r]ta2 - jetzt auch mit Semikolons
Holger, die Farben & Höhen gebe ich dankend ab ;-))
Grüsse Nancy
Code:

Sub clearFormats()
  Dim sset As AcadSelectionSet, ent As AcadEntity
  Dim i As Long, x As Long, y&, arr1, arr2, arr3, s As String, hx As Boolean
  Set sset = ActiveDocument.SelectionSets.Add("set2")
  sset.SelectOnScreen
  For Each ent In sset
      If TypeOf ent Is IAcadMText Then
        Debug.Print ent.TextString
        If InStr(1, ent.TextString, "{\f") Then
            arr1 = Split(ent.TextString, "{\f")
            s = ""
            For x = 0 To UBound(arr1)
              If InStr(1, arr1(x), ";") Then
                  arr2 = Split(arr1(x), ";")
                  ReDim arr3(UBound(arr2) - 1)
                  For y = 1 To UBound(arr2)
                    If Left(arr2(y), 2) = "\L" Then arr2(y) = Replace(arr2(y), "\L", "", , 1)
                    arr3(y - 1) = Replace(arr2(y), "}", "")
                  Next
                  s = s & Join(arr3, ";")
              ElseIf Left(arr1(x), 3) = "{\L" Then
                  arr1(x) = Replace(arr1(x), "\L", "", 2, 1)
                  s = s & arr1(x)
              Else: s = s & arr1(x)
              End If
            Next
            ent.TextString = s
            Debug.Print s
        End If
      End If
  Next
  sset.Delete
End Sub

 

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

molo
Mitglied
Dipl. Ing. Versorgungstechnik


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

Beiträge: 384
Registriert: 16.07.2002

Windows 7 64 bit, AutoCAD MEP 2012

erstellt am: 31. Jan. 2005 09: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

Ich bin erst heute wieder dazu gekommen hier reinzuschauen.

Danke das Ihr Euch alle diesem Thema angenommen habt!

Bei mir geht es darum die in Architekturzeichnungen häufig vorkommenden Text-Stile Arial und Arial Black in ISOCP umzuwandeln.

Schön, das Ihr Euch soger eine allgemeingültigen Lösung entwickelt!

Das wird sicherlich vielen eine Hilfe sein.

Ich werde mich schon mal mit den Lösungen von Euch beschäftigen.

------------------
Schöne Grüsse aus dem Herzen Hamburgs

Morten

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

flaschenpost
Mitglied
Architekt


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

Beiträge: 497
Registriert: 29.09.2004

ADT 2004 / Windows XP

erstellt am: 01. Feb. 2005 12:39    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 molo 10 Unities + Antwort hilfreich


MTEXTBereinigen.txt

 
Hallo Morten,

ich habe mal so eine Lösung angehängt.
Wenn Du die störenden Stilüberschreibungen entfernt hast, kannst Du das Eigenschaftsfenster wieder für Stile nutzen.
Probier mal, ob das für Dich geeignet ist.

Gruß Carsten

(edit upload)

[Diese Nachricht wurde von flaschenpost am 01. Feb. 2005 editiert.]

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

molo
Mitglied
Dipl. Ing. Versorgungstechnik


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

Beiträge: 384
Registriert: 16.07.2002

Windows 7 64 bit, AutoCAD MEP 2012

erstellt am: 01. Feb. 2005 14: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

@ Nancy

Dein Code harkt bei mir in folgender Zeile

arr1 = Split(ent.TextString, "{\f")

Split
"Sub oder Function nicht definiert"

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


@Carsten

Deine Lisp läuft bei mir.


Danke an alle

------------------
Schöne Grüsse aus dem Herzen Hamburgs

Morten

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

startrek
Mitglied
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: 01. Feb. 2005 14: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 Nur für molo 10 Unities + Antwort hilfreich

Hi Morten, kann auch nich gehen ;;-))
Zitat:
Original erstellt von startrek:
ps: achja, nochwas - lower acad2000i = VBE5 mit split() no chance, sorry

Aber es 'lispelt' ja nun

Gruss Nancy

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