| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
 | AutoCAD und DWG-Dateien mit Enterprise Search durchsuchen, eine Pressemitteilung
|
Autor
|
Thema: Attribute in Text wandeln (8803 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: 9808 Registriert: 01.12.2003 AutoCAD 2.5 - 2025, Civil 3D, MAP 3D, ACADM, ACA Inventor Prof. 2025, AIP 4-2025 Win 11
|
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: 9808 Registriert: 01.12.2003 AutoCAD 2.5 - 2025, Civil 3D, MAP 3D, ACADM, ACA Inventor Prof. 2025, AIP 4-2025 Win 11
|
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: 22497 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 |