| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY WIRD VON NVIDIA ZUM HÄNDLER DES JAHRES GEWÄHLT, eine Pressemitteilung
|
Autor
|
Thema: namedobjdict : wo liegt mein fehler ?? (790 mal gelesen)
|
benwisch Mitglied Bautechniker, CAD-Konstrukteur
Beiträge: 375 Registriert: 01.02.2001
|
erstellt am: 15. Jan. 2003 13:48 <-- editieren / zitieren --> Unities abgeben:
ich möchte gerne über eine lisproutine layoutnamen ändern können das konstrukt (setq dictlist (entget (namedobjdict)) x (member '(3 . "ACAD_LAYOUT") dictlist) liste (entget (cdr (cadr x))) q (nth 14 liste);ermittle Layoutname des zweiten Layouts... neu '(3 . "test");das soll der neue Layoutname werden liste (subst neu q liste); in Liste korrekt aufgenommen );end setq (entmod liste) (entmod dictlist) (layoutlist); -->was passiert ?? nach dem letzten entmod befehl : a) kann ich nicht mehr auf das geänderte layout zugreifen b) der name des layouts wird nicht geändert c) mttels (layoutlist) wird das zu ändern versuchende layout nicht mehr angezeigt wo liegt mein fehler ??
------------------ Grüße aus dem Rheingau. Rolf aka Benwisch Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 15. Jan. 2003 16:01 <-- editieren / zitieren --> Unities abgeben: Nur für benwisch
Hallo Rolf, wo Dein Fehler ist kann ich Dir nicht sagen, habe das nicht weiter untersucht. Ich mache so etwas über die VL-Funktionen. Da klappt das! Anbei die paar Code-Zeilen, die auch universell einsetzbar sind. Die Funktion nln ist nur mal als Beispiel gedacht, damit du sehen kannst, wie es angewendet wird. Bei Fragen... Grüße Holger CADlon - Lisp over night! Holger Brischke http://www.CADlon.de Tel: +49(0)681/989 06 84 mobil: +49(0)175/205 88 77 mailto:kontakt@CADlon.de
Code:
(defun c:nln ();NewLayoutName (vl-load-com) (if (not (change:tblobjname "LAYERS" "Layer1" "CADlon")) (alert "Name bereits vorhanden\noder\nKein Objekt mit diesem Namen gefunden") ) (if (not (change:tblobjname "LAYOUTS" "Layout1" "CADlon")) (alert "Name bereits vorhanden\noder\nKein Objekt mit diesem Namen gefunden") ) (princ) ) (defun change:tblobjname (tab alt neu / namelist) (setq objli (get_allnames_table tab) namelist (mapcar 'strcase (mapcar 'car objli))) (if (AND (not (member (strcase neu) namelist)) (member (strcase alt) namelist) ) (mapcar '(lambda (Y) (if (= (strcase alt)(strcase (car Y))) (vlax-put-property (cdr Y) 'name neu) ) ) objli ) ) ) (defun ModelSpace () (vlax-get-property (drawing) 'ModelSpace ) ) (defun drawing () (vlax-get-property (vlax-get-acad-object) "ActiveDocument" ) ) ;;; (defun get_count_table (table /) (vlax-get-property (vlax-get-property (drawing) table;"DimStyles" ) 'count ) ) ;;; (defun get_allnames_table (table / names z) (repeat (get_count_table table) (setq z (if z (1+ z) 0) names (cons(cons (vlax-get-property (setq dimobjtmp(vlax-invoke-method (vlax-get-property (drawing) table ) 'item z ) ) 'name ) dimobjtmp) names) ) ) (if names (reverse names)) )
------------------ Holger Brischke CADlon - Lisp over night! Jetzt neu: FreeDownload Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
benwisch Mitglied Bautechniker, CAD-Konstrukteur
Beiträge: 375 Registriert: 01.02.2001
|
erstellt am: 15. Jan. 2003 16:34 <-- editieren / zitieren --> Unities abgeben:
|
Brischke Moderator CAD on demand GmbH
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 15. Jan. 2003 16:49 <-- editieren / zitieren --> Unities abgeben: Nur für benwisch
Hallo Rolf, Zitat: Original erstellt von benwisch: einfach so aus dem arm geschüttelt ??
sicher nicht. Ich versuche allerdings, auch wenn es für den Moment etwas mehr Arbeit ist, allgemeingültige wiederverwendbare Routinen zu schreiben. Dann lassen sich solche Fragen eben auch etwas schneller erledigen. Faulheit macht kreativ! Grüße Holger ------------------ Holger Brischke CADlon - Lisp over night! Jetzt neu: FreeDownload Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |