| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY bietet das umfangreichste Ökosystem von B2B als auch B2C-Lösungen für IT-Akteure auf dem Markt, eine Pressemitteilung
|
Autor
|
Thema: Attributwert ändern! (3259 mal gelesen)
|
Markus_cad Mitglied Techn. Zeichner
Beiträge: 23 Registriert: 07.05.2004 WIN XP Autocad Mechanical 6
|
erstellt am: 07. Mai. 2004 15:37 <-- editieren / zitieren --> Unities abgeben:
Hallo, hab ein kleines Problem! Ich habe mehrere Zeichnungen, auf denen alle der gleich Block "NUMMER" drauf ist. In dem Block gibt es eine Attribut, das "Zahl" heißt. Und möchte jetzt den Attributwert der auf allen Blättern unterschiedlich ist nur von 123_456 in 123/456 ändern. Eigentlich nur aus dem "_" einen "/" machen. Kann mir vielleicht jemand einen Tip für ein Lisp-programm geben. Besten Dank im voraus. Gruß MARKUS Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
StephanJP Mitglied CAD-Admin
Beiträge: 837 Registriert: 09.11.2000
|
erstellt am: 07. Mai. 2004 15:50 <-- editieren / zitieren --> Unities abgeben: Nur für Markus_cad
|
Proxy Ehrenmitglied Stateless-DHCP v6-Paketfragmentierer
Beiträge: 1629 Registriert: 13.11.2003 Tastaturen, Mäuse, Pladden, ..., AutoCADs 200X, SWX 2kX
|
erstellt am: 07. Mai. 2004 16:50 <-- editieren / zitieren --> Unities abgeben: Nur für Markus_cad
hmmmmm, *dummdaherschau* ... ich wusste garnicht dass AC bei -rename auch Attribute als Parameter hat... ------------------ "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 |
tunnelbauer Ehrenmitglied V.I.P. h.c. Bauingenieur
Beiträge: 7085 Registriert: 13.01.2004 ich hab eh keine Probleme damit...
|
erstellt am: 07. Mai. 2004 17:06 <-- editieren / zitieren --> Unities abgeben: Nur für Markus_cad
|
Proxy Ehrenmitglied Stateless-DHCP v6-Paketfragmentierer
Beiträge: 1629 Registriert: 13.11.2003 Tastaturen, Mäuse, Pladden, ..., AutoCADs 200X, SWX 2kX
|
erstellt am: 07. Mai. 2004 17:09 <-- editieren / zitieren --> Unities abgeben: Nur für Markus_cad
stehst nicht mehr auf dem Schlauch ... leider hat dieser Befehl IMHO keine Optionen d.h. mann kann es nicht scripten. Aber mit'n Lisp könnte es gehen. ------------------ "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 |
marc.scherer Ehrenmitglied V.I.P. h.c. CAD-Administrator
Beiträge: 2494 Registriert: 02.11.2001 Windows 10 64bit AutoCAD Architecture 2018/2019 (deu/eng) AEC-Collection 2019 (Revit und Zeugs) Wenn sich's nicht vermeiden läßt: D-A-CH Erweiterung (mies implementierter Schrott)
|
erstellt am: 10. Mai. 2004 08:33 <-- editieren / zitieren --> Unities abgeben: Nur für Markus_cad
Hi Markus_cad, hier ein uraltes Lisp von mir, welches Dir helfen könnte: Code:
;;; Funktion tauscht Attributwerte aus. ;;; Zu übergeben ist eine cons List aus ;;; ("ATTBEZEICHNUNG" . "NEUER TEXTWERT") ;;; sowie der Elementname des Blocks, dessen Werte verändert werden sollen (defun ED-ATT (CHANGELST OBJNAME / ATTNAME BACK CHK OBJDATA TXTWRT) (setq ATTNAME (car CHANGELST) TXTWRT (cdr CHANGELST) OBJDATA (entget OBJNAME) ) ;_ end of setq (while (/= (cdr (assoc 0 OBJDATA)) "SEQEND") (setq OBJDATA (entget (entnext (cdr (assoc -1 OBJDATA))))) (if (eq (cdr (assoc 2 OBJDATA)) ATTNAME) (progn (setq OBJDATA (subst (cons 1 TXTWRT) (assoc 1 OBJDATA) OBJDATA)) (entmod OBJDATA) (setq CHK (entupd OBJNAME) OBJDATA (list (cons 0 "SEQEND")) ) ;_ end setq ) ;_ end progn ) ;_ end if ) ;_ end while (if CHK (setq BACK (strcat "\nWert: \"" TXTWRT "\" für: \"" ATTNAME "\" eingesetzt..." ) ;_ end strcat ) ;_ end of setq (setq BACK (strcat "\nFeld: \"" ATTNAME "\" im Zielblock nicht vorhanden...") ) ;_ end of setq ) ;_ end of if BACK ) ;_ end of defun
.. ------------------ Ciao, Marc Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Markus_cad Mitglied Techn. Zeichner
Beiträge: 23 Registriert: 07.05.2004 WIN XP Autocad Mechanical 6
|
erstellt am: 11. Mai. 2004 07:32 <-- editieren / zitieren --> Unities abgeben:
|
CADwiesel Moderator CAD4FM UG
Beiträge: 1991 Registriert: 05.09.2000 AutoCAD, Bricscad Wir machen das Mögliche unmöglich
|
erstellt am: 11. Mai. 2004 08:36 <-- editieren / zitieren --> Unities abgeben: Nur für Markus_cad
Hier die gesamte Funktion (defun tauschdas ( / as) (defun bau_elemli (asatz / n elemli) (setq n 0) (repeat (sslength asatz) (setq elemli (cons (ssname asatz n) elemli) n (1+ n) ) ;_ end of setq ) ;_ end of repeat elemli ) ;;; Funktion tauscht Attributwerte aus. ;;; Zu übergeben ist eine cons List aus ;;; ("ATTBEZEICHNUNG" . "NEUER TEXTWERT") ;;; sowie der Elementname des Blocks, dessen Werte verändert werden sollen (defun ED-ATT (CHANGELST OBJNAME / ATTNAME BACK CHK OBJDATA TXTWRT) (setq ATTNAME (car CHANGELST) TXTWRT (cdr CHANGELST) OBJDATA (entget OBJNAME) ) ;_ end of setq (while (/= (cdr (assoc 0 OBJDATA)) "SEQEND") (setq OBJDATA (entget (entnext (cdr (assoc -1 OBJDATA))))) (if (eq (cdr (assoc 2 OBJDATA)) ATTNAME) (progn (setq OBJDATA (subst (cons 1 TXTWRT) (assoc 1 OBJDATA) OBJDATA)) (entmod OBJDATA) (setq CHK (entupd OBJNAME) OBJDATA (list (cons 0 "SEQEND")) ) ;_ end setq ) ;_ end progn ) ;_ end if ) ;_ end while (if CHK (setq BACK (strcat "\nWert: \"" TXTWRT "\" für: \"" ATTNAME "\" eingesetzt..." ) ;_ end strcat ) ;_ end of setq (setq BACK (strcat "\nFeld: \"" ATTNAME "\" im Zielblock nicht vorhanden...") ) ;_ end of setq ) ;_ end of if BACK ) ;_ end of defun (if(setq as (ssget "_X" '((0 . "INSERT")(2 . "NUMMER")))) (mapcar '(lambda (X) ( ED-ATT (cons "ZAHL" "123/456")x) ) (bau_elemli as) ) ) )
------------------ Gruß CADwiesel Besucht uns im CHAT
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Markus_cad Mitglied Techn. Zeichner
Beiträge: 23 Registriert: 07.05.2004 WIN XP Autocad Mechanical 6
|
erstellt am: 11. Mai. 2004 10:56 <-- editieren / zitieren --> Unities abgeben:
|