| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
 | Von Digital Twins bis Hochleistungs-Computing: PNY präsentiert seine Zukunftstechnologien für die Industrie von morgen, eine Pressemitteilung
|
Autor
|
Thema: MTEXT Gruppencode 3 (1462 mal gelesen)
|
Stefanie Mitglied Technische Zeichnerin
 Beiträge: 4 Registriert: 16.07.2002 Windows XP Professional SP1 AutoCAD 2002
|
erstellt am: 11. Aug. 2005 17:41 <-- editieren / zitieren --> Unities abgeben:         
Hallo, ich möchte einen etwas längeren MTEXT mit "assoc" auslesen. Leider ist der Text einmal unter dem GC 1 (1. "Text") und zweimal unter dem GC 3 (3. "Text") (3. "Text") abgelegt. Wie komme ich an den zweiten GC 3??? Soviel ich weiß wird der Text nach 255 Zeichen in den nächsten GC 3 abgelegt, oder ??? Mein Code: (setq elemi(entget(car(entsel))); MTEXT auswählen text (assoc 1 elemi) ; Text auslesen text1 (assoc 3 elemi)) ; Text auslesen text2 (assoc ? elemi)) ) ; Text auslesen Bin für jede Hilfe dankbar. Ciao Stefanie Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
WolfgangGutke Mitglied Konstrukteur
 
 Beiträge: 109 Registriert: 28.09.2004 AutoCAD 2002 AutoCAD 2006 ObjectDCL 2.02
|
erstellt am: 11. Aug. 2005 18:24 <-- editieren / zitieren --> Unities abgeben:          Nur für Stefanie
Vieleicht so? (defun c:mt () (vl-load-com) (setq Text "") (foreach nMT (STR:STRING_TO_LIST (vla-get-TextString (vlax-ename->vla-object (car (entsel)))) "\\P") (setq Text (strcat Text " " nMt )) ) (alert (substr Text 2)) ) (defun str:STRING_TO_LIST (str tz / lst pos) ;Teilt ein String gem. übergebenen Trennzeichen in eine Liste ;z.B. (str:String_to_List "qw;df;" ";") -> ("qw" "df") (if (and str tz) (progn (setq pos (vl-string-search tz str)) (while pos (setq lst (cons (substr str 1 pos) lst) str (substr str (+ pos (1+ (strlen tz)))) pos (vl-string-search tz str)); setq ); while (if (> (strlen str) 0) (setq lst (cons str lst)) ); if ); progn ); if (reverse lst) ) Gruß Wolfgang ------------------ LISP = Lots of Insane Stupid Parantheses Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
       

 Beiträge: 13530 Registriert: 30.11.2003 .
|
erstellt am: 11. Aug. 2005 18:57 <-- editieren / zitieren --> Unities abgeben:          Nur für Stefanie
oder so: (setq ELEMI (entget(car(entsel)))) (setq TXTLIST(mapcar 'cdr (vl-remove-if-not'(lambda(X) (member (car X) '( 1 3))) ELEMI))) zusammenpappen dann z.B. mit (setq TEXT (apply 'strcat TXTLIST)) ------------------ - 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 |

| |
Stefanie Mitglied Technische Zeichnerin
 Beiträge: 4 Registriert: 16.07.2002 Windows XP Professional SP1 AutoCAD 2002
|
erstellt am: 12. Aug. 2005 10:51 <-- editieren / zitieren --> Unities abgeben:         
Hallo Cadmium und Wolfgang, danke schon mal für die prompte Hilfe. Cadmium deine Lösung habe ich sofort ausprobiert, hat super funktioniert,(10 Units) ich glaube mit der Funktion mapcar und lambda muß ich mich doch noch etwas beschäftigen, na ja, aller Anfang ist schwer. Die Lösung von Wolfgang werde ich mir auf jeden Fall noch zu Gemüte führen, habe aber gerade heute wenig Zeit, melde mich aber auf jeden Fall ob und wie es funktioniert hat. Gruß Stefanie Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |