| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Attribute in Text wandeln (7831 mal gelesen)
|
richard01 Mitglied Bereichsleiter Projektierung und Konstruktion
Beiträge: 40 Registriert: 29.10.2007 AutoCAD 2014
|
erstellt am: 09. Sep. 2009 17:14 <-- editieren / zitieren --> Unities abgeben:
Hallo! Ich müsste vorhandene Attributswerte in Texte wandeln. Leider wird mit Burst aus den E-Tools auch der Block aufgelöst. Gibt es eine Möglichkeit, dass der Block ganz bleibt? Danke für Eure Hilfe. MfG Richard Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer
Beiträge: 9732 Registriert: 01.12.2003 AutoCAD 2.5 - 2022, Civil 3D, MAP 3D, ACADM Inventor AutoCAD 2022, AIP 4-2022 Win 10
|
erstellt am: 09. Sep. 2009 18:03 <-- editieren / zitieren --> Unities abgeben: Nur für richard01
|
richard01 Mitglied Bereichsleiter Projektierung und Konstruktion
Beiträge: 40 Registriert: 29.10.2007 AutoCAD 2014
|
erstellt am: 10. Sep. 2009 09:19 <-- editieren / zitieren --> Unities abgeben:
|
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer
Beiträge: 9732 Registriert: 01.12.2003 AutoCAD 2.5 - 2022, Civil 3D, MAP 3D, ACADM Inventor AutoCAD 2022, AIP 4-2022 Win 10
|
erstellt am: 10. Sep. 2009 11:25 <-- editieren / zitieren --> Unities abgeben: Nur für richard01
Habe mal 2 BUGs im Code gefixt, nun sollte es laufen Code: ;************************************************************************* ;** Datei ATTRTXT.LSP ;** Dient zum Umwandeln von sichtbaren Blockattributen in Text ;************************************************************************* ;** Funktionen ;** C:ATTRTOTXT_EXP Wandelt sichtbare Blockattribute in Text um und ;** zerlegt den Block ;** C:ATTRTOTXT_NOEXP Wandelt sichtbare Blockattribute in Text und setzt ;** alle Attributwerte des Blocks auf "", der Block ;** wird nicht zerlegt ;************************************************************************* ;** Autor: NAVRATIL Heinz ;** Stand: 04.11.1998 ;** Ver.: 4.2 -- AutoCAD Ver. 13 / 14 ;** email: hnavratil@KGH.KABA.com ;************************************************************************* ;** Update/Bugfixing Udo Hübner Udo@CAD-Huebner.de 10.09.09 ;** getestet mit AutoCAD 2008 ;*************************************************************************;** ---------------------------------------------------------------------- ;** C:ATTRTOTXT_EXP ;** ---------------------------------------------------------------------- (defun C:attrtotxt_exp( / as i e el bn nl l1 l2) (if (setq as (ssget)) (progn (setq i 0) (while (setq e (ssname as i)) (setq el (entget e)) (if (/= (assoc 66 el) nil) (progn (setq bn e) (while (/= (cdr (assoc 0 (setq el (entget e)))) "SEQEND") (if (and (= (cdr (assoc 0 el)) "ATTRIB") (/= (logand (cdr (assoc 70 el)) 1) 1) ) (progn (setq nl (cdr el)) (setq nl (subst '(0 . "TEXT") (assoc 0 nl) nl)) (setq l1 (cdr (member (assoc 2 nl) nl))) (setq l2 (reverse (cdr (member (assoc 2 nl) (reverse nl))))) (setq nl (append l2 l1)) (setq l1 (cdr (member (assoc 70 nl) nl))) (setq l2 (reverse (cdr (member (assoc 70 nl) (reverse nl))))) (setq nl (append l2 l1)) (setq nl (subst (cons 73 (cdr (assoc 74 nl))) (assoc 74 nl) nl)) (entmake nl) ) ) (setq e (entnext e)) ) (setq le (entlast)) (command "._EXPLODE" bn) (while (setq le (entnext le)) (if (= (cdr (assoc 0 (entget le))) "ATTDEF") (entdel le) ) ) ) ) (setq i (1+ i)) ) (command "._REGEN") ) ) 'DANKE ) ;** ---------------------------------------------------------------------- ;** C:ATTRTOTXT_NOEXP ;** ---------------------------------------------------------------------- (defun C:attrtotxt_noexp( / as i e el bn nl l1 l2) (if (setq as (ssget)) (progn (setq i 0) (while (setq e (ssname as i)) (setq el (entget e)) (if (/= (assoc 66 el) nil) (progn (setq bn e) (while (/= (cdr (assoc 0 (setq el (entget e)))) "SEQEND") (if (and (= (cdr (assoc 0 el)) "ATTRIB") (/= (logand (cdr (assoc 70 el)) 1) 1) ) (progn (setq nl (cdr el)) (setq nl (subst '(0 . "TEXT") (assoc 0 nl) nl)) (setq l1 (cdr (member (assoc 2 nl) nl))) (setq l2 (reverse (cdr (member (assoc 2 nl) (reverse nl))))) (setq nl (append l2 l1)) (setq l1 (cdr (member (assoc 70 nl) nl))) (setq l2 (reverse (cdr (member (assoc 70 nl) (reverse nl))))) (setq nl (append l2 l1)) (setq nl (subst (cons 73 (cdr (assoc 74 nl))) (assoc 74 nl) nl)) ; Eintrag Code 280 aus neueren Attributsdef. für den Text entfernen ; www.CAD-Huebner.de 10.09.09 (setq nl (vl-remove (assoc 280 nl) nl)) (entmake nl) ; hier noch BUG korrigiert assoc 1 el statt assoc 2 el (setq el (subst '(1 . "") (assoc 1 el) el)) (entmod el) ) ) (setq e (entnext e)) ) ) ) (entupd bn) (setq i (1+ i)) ) (command "._REGEN") ) ) 'DANKE )
(princ "\nAufruf mit: attrtotxt_exp oder attrtotxt_noexp\n") (princ)
------------------ Mit freundlichem Gruß Udo Hübner www.CAD-Huebner.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 07. Mai. 2020 09:14 <-- editieren / zitieren --> Unities abgeben: Nur für richard01
Uralt, aber da ich gerade für jemandem darauf verlinken wollte und gesehen habe das hier noch die alte unvollständige Korrektur online steht: Hier die gefixte Version der gefixten Version (ohne die 280er Fehlermeldung) [grundsätzliche Funktion ist gleich, habe nur Udos Versuch zum unterdrücken der Fehlermeldung umgesetzt] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |