Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  namedobjdict : wo liegt mein fehler ??

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
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


Sehen Sie sich das Profil von benwisch an!   Senden Sie eine Private Message an benwisch  Schreiben Sie einen Gästebucheintrag für benwisch

Beiträge: 375
Registriert: 01.02.2001

erstellt am: 15. Jan. 2003 13:48    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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




Sehen Sie sich das Profil von Brischke an!   Senden Sie eine Private Message an Brischke  Schreiben Sie einen Gästebucheintrag für Brischke

Beiträge: 4187
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 15. Jan. 2003 16:01    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für benwisch 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von benwisch an!   Senden Sie eine Private Message an benwisch  Schreiben Sie einen Gästebucheintrag für benwisch

Beiträge: 375
Registriert: 01.02.2001

erstellt am: 15. Jan. 2003 16:34    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

einfach so aus dem arm geschüttelt ??
einfach nur "geil" !!

vielen dank holger

------------------
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




Sehen Sie sich das Profil von Brischke an!   Senden Sie eine Private Message an Brischke  Schreiben Sie einen Gästebucheintrag für Brischke

Beiträge: 4187
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 15. Jan. 2003 16:49    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für benwisch 10 Unities + Antwort hilfreich

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

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2024 CAD.de | Impressum | Datenschutz