| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Attribute an der richtigen Stelle automatisch füllen (598 mal gelesen)
|
berndhock Mitglied Holztechniker
Beiträge: 35 Registriert: 07.03.2003 AutoCAD2004 und 2005 3,20 gigahertz Intel Pentium 4 1022 Megabytes Installed Memory Matrox Parhelia 128MB
|
erstellt am: 15. Dez. 2004 10:47 <-- editieren / zitieren --> Unities abgeben:
Hallo Leute, ich beschäftige mich mal wieder mit dem Thema Schriftfelder automatisch füllen. Es gibt bei uns verschiedene Schriftfelder die aber immer die gleichen Atrribute besitzen. Beim abspechern des Blockes habe ich die Attribute auch immer in der gleichen Reihenfolge angepickt. Beim einfügen mit dem gebe ich diese Reihenfolge an. Das funktioniert aber nicht bei allen Schriftfeldern. Kann ich mich beim einfügen irgendwie auf den Attributnamen beziehen. z.B. wenn das Attribut Kunde_Z1 heißt dann soll genau an dieser Stelle auch der Text stehen. Mein insert sieht bisher so aus: (command "_insert" (strcat "L:/Blöcke/Allgemein/sfelder/" sfeld ". DWG") pkt_re_unten "1" "1" "0" "Kunde1" "Kunde2" "Kunde3" "Objekt1" "Objekt2" "Ansprechp" "Tel_AP" "Mail AP" "Gez von" "Gez am" "Masstab" "Blatt" "Auft Nr" "Zeichnungsname" "Projektname" "Bez1" ) Vielleicht kann mir jemand helfen! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.
|
erstellt am: 15. Dez. 2004 11:23 <-- editieren / zitieren --> Unities abgeben: Nur für berndhock
|
berndhock Mitglied Holztechniker
Beiträge: 35 Registriert: 07.03.2003 AutoCAD2004 und 2005 3,20 gigahertz Intel Pentium 4 1022 Megabytes Installed Memory Matrox Parhelia 128MB
|
erstellt am: 15. Dez. 2004 17:00 <-- editieren / zitieren --> Unities abgeben:
Hallo Thomas, danke für den Tipp aber hier war ich vorher schon mal gelandet. Werde leider aus der Syntax nicht ganz schlau. Wie würdest Du die Funktion verwenden wenn z.B. das Attribut Kunde_Z1 mit einem neuen Wert aktualisiert werden soll? Gruß Bernd Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
marc.scherer Ehrenmitglied V.I.P. h.c. CAD-Administrator
Beiträge: 2490 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: 16. Dez. 2004 09:09 <-- editieren / zitieren --> Unities abgeben: Nur für berndhock
Hi, guckst Du hier: Anwendung z.B. mit: (ED-ATT (cons "DATUM" "Keins") (car (entsel))) 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 |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.
|
erstellt am: 16. Dez. 2004 09:24 <-- editieren / zitieren --> Unities abgeben: Nur für berndhock
Zitat: Original erstellt von berndhock: Hallo Thomas, danke für den Tipp aber hier war ich vorher schon mal gelandet. Werde leider aus der Syntax nicht ganz schlau. Wie würdest Du die Funktion verwenden wenn z.B. das Attribut Kunde_Z1 mit einem neuen Wert aktualisiert werden soll?Gruß Bernd
(UPDATE-Title-Block nil "Kunde_Z1" "NEUER WERT") oder (UPDATE-Title-Block "sfeld" "Kunde_Z1" "NEUER WERT") = Blockname Attribname Attribwert bei Blockname=nil werden alle Blockreferenzen der Zeichnung durchsucht ------------------ - 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 |