Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  MTEXT im Block Ursprung setzten

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:  MTEXT im Block Ursprung setzten (1777 mal gelesen)
Nano
Mitglied



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

Beiträge: 179
Registriert: 25.10.2004

erstellt am: 12. Jan. 2011 13: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


Block-Mtext.dwg.txt

 
HALLO

Habe hier ein Block mit Mtext und möchte sie gerne in ursprung setzten.

Ziel ist die Farbe Vonlayer zu setzten.
Bei Mtext Editor ist die Farbe Schwarz/Weiss.


(defun C:MT ( /  sub e3 e2 block subenti farbe)
    (setq block (tblobjname "BLOCK" (cdr(assoc 2 (entget(car(entsel)))))))
    (setq e2 (entnext block))
            (while (/= e2 nil)
                (setq sub (cdr(assoc 0 (entget e2))))
                    (cond
                        ((= sub "MTEXT")
                            (princ "\nMTEXT vorhanden")
                            (setq subenti (entget e2));??????
                            (command "_explode"  subenti )
                        )
                    );cond
                        (setq e3 (entnext e2))
                        (setq e2 e3)
            );end while
        (entupd block)
)

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

archtools
Mitglied



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

Beiträge: 823
Registriert: 09.10.2004

Entwickler für AutoCAD, BricsCAD u.a., alle Systeme

erstellt am: 12. Jan. 2011 13:43    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 Nano 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Nano:
HALLO

Habe hier ein Block mit Mtext und möchte sie gerne in ursprung setzten.

Ziel ist die Farbe Vonlayer zu setzten.
Bei Mtext Editor ist die Farbe Schwarz/Weiss.


(defun C:MT ( /  sub e3 e2 block subenti farbe)
    (setq block (tblobjname "BLOCK" (cdr(assoc 2 (entget(car(entsel)))))))
    (setq e2 (entnext block))
            (while (/= e2 nil)
                (setq sub (cdr(assoc 0 (entget e2))))
                    (cond
                        ((= sub "MTEXT")
                            (princ "\nMTEXT vorhanden")
                            (setq subenti (entget e2));??????
                            (command "_explode"  subenti )
                        )
                    );cond
                        (setq e3 (entnext e2))
                        (setq e2 e3)
            );end while
        (entupd block)
)



Erstens: Du willst also den MTEXT auflösen und nicht die Blockreferenz. Das bringt natürlich selbst dann nix, wenn das MTEXT-Element auf explode reagieren würde, weil Du das MTEXT-Element ja nicht in Text auflösen willst, sondern es nur ändern willst.

Zweitens würde der EXPLODE Befehl ein Entity erwarten und nicht eine entget-Liste.

Drittens wäre (while (/= e2 nil) ...) besser als (while e2 ...) auszudrücken.

Deiner Lösung bist Du also nahe: anstatt subenti aufzulösen, brauchst Du nur die Farbinformation (siehe DXF-Gruppencodes) darin gegen die von Dir gewünschte auszutauschen, und diese neue subenti-Liste mit ENTMOD anzuwenden. Die Blockreferenz würde ich eventuell mit ENTUPD aktualisieren.

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: 13508
Registriert: 30.11.2003

.

erstellt am: 12. Jan. 2011 13:45    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 Nano 10 Unities + Antwort hilfreich

so wird das nichts ...
entweder den Textinhalt des MtextObjekt in der Blockdefinition mit sowas wie STRIPMTEXT bearbeiten und die Property "Color" des Mtextes auf von layer setzen ( das ganze ohne Block und Mtext auflösen )

oder

MText aus Block via activX und copyobjects in das Active LAyout kopieren .. "_explode" aufrufen .. neue Einzeltexte einsammeln,Farbe von Layer setzen und in den Block zurückkopieren ... dann hast du Texte im Block ( keinen Mtext mehr )

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

Nano
Mitglied



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

Beiträge: 179
Registriert: 25.10.2004

erstellt am: 12. Jan. 2011 13: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


Block-Mtextdwg.txt

 
habe es schon mit diesem Lisp versucht. doch die Farbe verändert sich nicht
Layer = a_txt/ Farbe rot


(defun c:mt ( / BLOCK ob  subenti farbe)
    (setq BLOCK (tblobjname "BLOCK" (cdr(assoc 2 (entget(car(entsel)))))))
    (setq OB BLOCK)
    (while (setq ob (entnext ob))
      (if (= (cdr(assoc 0 (setq subenti(entget ob))))"MTEXT")
        (progn               
          (if (assoc 62 subenti)
            (setq subenti (subst  (cons 62 256) (assoc 62 subenti) subenti))
(setq subenti (append subenti (list (cons 62 256))))
          )
          (entmod subenti)
        )
      )
    )
    (entupd block)
    (command "_regen")
)

Jedoch wenn ich ein neuer Text schreibe wird es rot.

(defun c:mtr ( / BLOCK ob  subenti farbe)
    (setq BLOCK (tblobjname "BLOCK" (cdr(assoc 2 (entget(car(entsel)))))))
    (setq OB BLOCK)
    (while (setq ob (entnext ob))
      (if (= (cdr(assoc 0 (setq subenti(entget ob))))"MTEXT")
        (progn               
          (if (assoc 1 subenti)
            (setq subenti (subst  (cons 1 "rrr") (assoc 1 subenti) subenti))
(setq subenti (append subenti (list (cons 1 "rrr"))))
          )
          (entmod subenti)
        )
      )
    )
    (entupd block)
    (command "_regen")
)
Jetzt aber habe ich im Block Text-Elemten kann ich sie umfärben.
Farbe gleich VonLayer.

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

Nano
Mitglied



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

Beiträge: 179
Registriert: 25.10.2004

erstellt am: 12. Jan. 2011 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

habe auch dies versucht.

(defun c:mt ( / BLOCK ob  subenti farbe)
    (setq BLOCK (tblobjname "BLOCK" (cdr(assoc 2 (entget(car(entsel)))))))
    (setq OB BLOCK)
    (while (setq ob (entnext ob))
      (if (= (cdr(assoc 0 (setq subenti(entget ob))))"MTEXT")
        (progn  (setq text1 (setq text1 (cdr (assoc 1 subenti))) 
          (if (assoc 1 subenti)
            (setq subenti (subst  (cons 1 text1) (assoc 1 subenti) subenti))
(setq subenti (append subenti (list (cons 1 text1))))
          )
          (entmod subenti)
        )
      )
    )
    (entupd block)
    (command "_regen")
)
Sollte eigendlich gehen.
wenn ich diese Zeile so schreibe geht es setq text1 "neu")

WUNSCH IST DAS DER TEXT DIE FARBE VONLAYER HAT, ES KANN MTEXT BLEIBEN.

Hat jemand von Euch eine lösung?

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

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


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

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 12. Jan. 2011 14:17    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 Nano 10 Unities + Antwort hilfreich

Hallo Nano,
ich habe den Beitrag nur überflogen, wäre der AutoCAD-Befehl
_setbylayer nicht die gewünschte Funktion für Dich?? Allerdings werden dann alle Elemente des Blockes auf "vonLayer" gesetzt.

------------------
viele Grüße

Jörn
http://www.bosse-engineering.com

Stammtisch in Wolfsburg im Januar 2010

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: 13508
Registriert: 30.11.2003

.

erstellt am: 12. Jan. 2011 14:26    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 Nano 10 Unities + Antwort hilfreich

noch mal was Grundsätzliches ....
Das MTEXTOBJEKT hat die eigenschaft Farbe.
Der Textinhalt des Mtextobjektes kann auch Farbformatierungen enthalten... sind hier welche vorhanden, werden diese Farben dargestellt und nicht die Farbinformationen, die am MTEXTObjekt hängen.

Also ich denke, du willst die Farbe des Mtextobjektes auf "von layer"setzen und zusätzlich alle Farbcodierungen innerhalb des Textinhaltes entfernen ?

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

Nano
Mitglied



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

Beiträge: 179
Registriert: 25.10.2004

erstellt am: 12. Jan. 2011 14:37    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 so ist es

Habe jetzt eine Lösung, aber es gefällt mir nicht.
Es kann sicher einfacher sein.
Sehr wahrscheinlich hast du die bessere Lösung.

Gruss

(defun c:mt ( / BLOCK ob  subenti farbe)
    (setq BLOCK (tblobjname "BLOCK" (cdr(assoc 2 (entget(car(entsel)))))))
    (setq OB BLOCK)
    (while (setq ob (entnext ob))
      (if (= (cdr(assoc 0 (setq subenti (entget ob))))"MTEXT")
        (progn (setq ma002laenge (strlen (cdr (assoc 1 subenti))))
(setq text11 (substr (cdr (assoc 1 subenti)) 1 6))
(IF (= TEXT11 "{\\C7;\\")
(Progn (setq text1 (substr (cdr (assoc 1 subenti)) 8 (- ma002laenge 1)))
(if (assoc 1 subenti)
            (setq subenti (subst  (cons 1 text1) (assoc 1 subenti) subenti))
(setq subenti (append subenti (list (cons 1 text1))))
          )
          (entmod subenti)
)
(Progn (setq text1 (substr (cdr (assoc 1 subenti)) 6 (- ma002laenge 1)))
(if (assoc 1 subenti)
            (setq subenti (subst  (cons 1 text1) (assoc 1 subenti) subenti))
(setq subenti (append subenti (list (cons 1 text1))))
          )
          (entmod subenti)
)
)
        )
      )
    )
    (entupd block)
    (command "_regen")
)

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

Nano
Mitglied



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

Beiträge: 179
Registriert: 25.10.2004

erstellt am: 12. Jan. 2011 14: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

Habe es Verucht mit Befehl:setbylayer
Leide geht es nicht.
Aber gut zu wissen.
Danke
Gruss Nano

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

Sanru
Mitglied



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

Beiträge: 24
Registriert: 23.07.2010

erstellt am: 12. Jan. 2011 14:45    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 Nano 10 Unities + Antwort hilfreich

Hallo
ich würde so wie schon CADmium darauf hingewiesen hat aus der Funktion STRIPMTEXT "Unformat" benutzen!
LG Wolfgang

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

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


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

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 12. Jan. 2011 15: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 Nano 10 Unities + Antwort hilfreich

Hallo Nano,
den Befehl gibt es glaube ich ab 2008:
_setbylayer (englisch mit Unterstrich)
VONLAYEREINST

oder im Menü untern Ändern=>In VonLayer ändern

------------------
viele Grüße

Jörn
http://www.bosse-engineering.com

Stammtisch in Wolfsburg im Januar 2010

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

Nano
Mitglied



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

Beiträge: 179
Registriert: 25.10.2004

erstellt am: 12. Jan. 2011 16: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

Hier noch eine Lösung die ich gefunden habe.

(defun c:StripBlockMtext (/ adoc text_style_name text_height)
  (vl-load-com)
  (setq adoc (vla-get-activedocument (vlax-get-acad-object)))
  (vla-startundomark adoc)
  (vlax-for blk (vla-get-blocks adoc)
    ;; Exclude model and paper spaces and  anonymus blocks
    (if (and  (equal (vla-get-IsLayout blk) :vlax-false)
              (equal (vla-get-IsXref blk) :vlax-false)
              (/= (substr (vla-get-Name blk) 1 1) "*")
    )
(vlax-for ent blk
  (if (= (vla-get-objectname ent) "AcDbMText")
    (progn
      (setq str (strip_text (vla-get-textstring ent) "*"))
      (vl-catch-all-apply 'vla-put-textstring (list ent str))
    )
  )
      )
    )
  )
  (vla-regen adoc acactiveviewport)
  (vla-endundomark adoc)
  (princ)
)
(defun strip_text (str fmt / skipcnt ndx newlst char fmtcode lst_len
                  IS_MTEXT LST  NEXTCHR PT TMP)

(if (or (/= (type fmt) 'Str) (= fmt "*") (= fmt ""))
(setq fmt (vl-string->list "AaCcFfHhLlOoPpQqSsTtQqWw~%"))
(setq fmt (vl-string->list fmt))
)
  (setq ndx 0
        ;; "fmtcode" is a list of code flags that will end with ;
        fmtcode
        (vl-string->list "CcFfHhTQqWwAa") ;("\C" "\F" "\H" "\T" "\Q" "\W" "\A")
  )
  (if (/= str "") ; skip if empty text ""
    (progn
      (setq lst      (vl-string->list str)
            lst_len  (length lst)
            newlst  '()
            is_mtext nil ; true if mtext
      )
      (while (< ndx lst_len)
        ;; step through text and find FORMAT CHARACTERS
        (setq char    (nth ndx lst) ; Get next character
              nextchr (nth (1+ ndx) lst)
              skipcnt 0
        )

        (cond
          ((and (= char 123) (= nextchr 92)) ; "{\" mtext code
          (setq is_mtext t
                skipcnt 1
          )
          )

          ((and (= char 125) is_mtext) ; "}"
          (setq skipcnt 1)
          )


          ((= char 37) ; code start with "%"
          (if (null nextchr) ; true if % is last char in text
            (setq skipcnt 1)
            ;;  Dtext codes
            (if (= nextchr 37) ; %% code found
              (if (< 47 (nth (+ ndx 2) lst) 58) ; is a number
                (if (vl-position 37 fmt)
                ;;  number found so fmtcode %%nnn
                ;;  convert the nnn to a character
                (setq skipcnt 5
                      newlst  (append newlst (list (atoi (strcat (chr (nth (+ ndx 2) lst))
                                                                  (chr (nth (+ ndx 3) lst))
                                                                  (chr (nth (+ ndx 4) lst))
                )))))
                  ;;  keep the code in the string
                  (setq skipcnt 5
                        newlst  (append newlst (list 37 37 (nth (+ ndx 2) lst)
                                                            (nth (+ ndx 3) lst)
                                                            (nth (+ ndx 4) lst)
                  )))
                )
               
                ;; else letter code, so fmtcode %%p, %%d, %%c
                ;;  CAB note - this code does not always exist in the string
                ;;  it is used to create the character but the actual ascii code
                ;;  is used in the string, not the case for %%c
                (if (vl-position 37 fmt)
                (setq skipcnt 3
                      newlst  (append newlst (list (cond ((= (nth (+ ndx 2) lst) "p") 177)
                                                          ((= (nth (+ ndx 2) lst) "d") 176)
                                                          ((= (nth (+ ndx 2) lst) "c") 216)
                                                          ((= (nth (+ ndx 2) lst) "%")  37)
                ))))
                (setq skipcnt 3
                      newlst  (append newlst (list 37 37 (nth (+ ndx 2) lst)
                )))
                )
              ) ; endif
            ) ; endif
          ) ; endif
          ) ; end cond (= char "%"))


          ((= char 92) ; code start with "\"
          ;;  This section processes mtext codes

          (cond
            ;; Process Coded information
            ((null nextchr) ; true if \ is last char in text
              (setq skipcnt 1)
            ) ; end cond 1

            ((member nextchr fmtcode) ; this code will end with ";"
              ;; fmtcode -> ("\C" "\F" "\H" "\T" "\Q" "\W" "\A"))
              (while (/= (setq char (nth (+ skipcnt ndx) lst)) 59)
                (setq skipcnt (1+ skipcnt))
              )
              (setq skipcnt (1+ skipcnt))
            ) ; end cond


            ;; found \U then get 7 character group
            ((= nextchr 85) (setq skipcnt (+ skipcnt 7)))

            ;; found \M then get 8 character group
            ((= nextchr 77) (setq skipcnt (+ skipcnt 8)))

            ;; found \P then replace with CR LF 13 10
            ;;  debug do not add CR LF, just remobe \P
            ((= nextchr 80) ; "\P"
              (if (vl-position 80 fmt)
                (setq newlst  (append newlst '(32))
                      ;ndx    (+ ndx 1)
                      skipcnt 2
                )
              )
            ) ; end cond


            ((= nextchr 123) ; "\{" normal brace
              (setq ndx (+ ndx 1))
            ) ; end cond

            ((= nextchr 125) ; "\}" normal brace
              (setq ndx (+ ndx 1))
            ) ; end cond

            ((= nextchr 126) ; "\~" non breaking space
              (if (vl-position 126 fmt)
                (setq newlst (append newlst '(32)) ; " "
                      skipcnt 2) ; end cond 9
              )
            )

            ;; 2 character group \L \l \O \o
            ((member nextchr '(76 108 79 111))
              (setq skipcnt 2)
            ) ; end cond

            ;;  Stacked text format as "[ top_txt / bot_txt ]"
            ((= nextchr 83) ; "\S"
              (setq pt  (1+ ndx)
                    tmp '()
              )
              (while
                (not
                  (member
                    (setq tmp (nth (setq pt (1+ pt)) lst))
                    '(94 47 35) ; "^" "/" "#" seperator
                  )
                )
                (setq newlst (append newlst (list tmp)))
              )
              (setq newlst (append newlst '(47))) ; "/"
              (while (/= (setq tmp (nth (setq pt (1+ pt)) lst)) 59) ; ";"
                (setq newlst (append newlst (list tmp)))
              )
              (setq ndx    pt
                    skipcnt (1+ skipcnt)
              )
            ) ; end cond
          ) ; end cond stmt  Process Coded information
          ) ; end cond  (or (= char "\\")

        ) ; end cond stmt
        ;;  Skip format code characters
        (if (zerop skipcnt) ; add char to string
          (setq newlst (append newlst (list char))
                ndx    (+ ndx 1)
          )
          ;;  else skip some charactersPLOTTABS

          (setq ndx (+ ndx skipcnt))
        )
      ) ; end while Loop
    ) ; end progn
  ) ; endif
  (vl-list->string newlst) ; return the stripped string
) ; end defun


Gruss Nano

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