Hallo,
hab ein kleines Lispprogramm (lfx) mit dem ich ausgewählte Xref-Layer einzeln frieren kann. würde das ganze gern in der Form umschreiben wie ebenfalls angehängtes Lispprogramm (lfr) mit dem ich beliebig viele Zeichnungsobjekte auswählen kann, deren Layer dann gefroren werden. Die Schleife darin eingebaute Schleife läßt sich allerdings nicht so einfach übertragen (jedenfalls nicht mit meinen Lisp-Kentnissen).
Beide Lisproutinen hab ich vor langer Zeit mal geschrieben und kann mich mangels Übung an einzelheiten der Lispfunktionen nicht mehr so genau erinnern....
Wäre total nett, wenn sich jemand der mehr Ahnung davon hat meiner erbarmen würde und eine solche Schleife in die Funktion "lfx" einbauen würde, so dass ich auch dort beliebig viele Xref-Objekte könnte deren Layer (nicht der Xref-Einfüge-Layer !) dann gefroren würden.
Gruß
Thomas Kaulen
(defun c:lfr ()
(setvar "cmdecho" 0)
(prompt "\nBitte die Objekte auf den zu frierenden Layern wählen ")
(setq AUSW (ssget))
(if (= NIL AUSW)
(setq COUNT 0)
(setq COUNT (sslength AUSW)))
(while (> COUNT 0)
(setq COUNT (1- COUNT))
(setq ELEMENT (ssname AUSW COUNT))
(setq ENT (entget ELEMENT))
(setq L_NAME (cdr (assoc 8 ENT)))
(if (= L_NAME (getvar "CLAYER"))
(prompt (strcat "\nKann den Layer " L_NAME " nicht frieren, da es sich um den AKTUELLEN Layer handelt."))
(command "._LAYER" "_freeze" L_NAME "")
)
)
)
(defun c:lfx (/ olderr ocmd oosmd oblp zo)
(setq olderr *error* *error* myerror)
(setq ocmd (getvar "cmdecho"))
(setq oosmd (getvar "osmode"))
(setq oblp (getvar "blipmode"))
(setvar "cmdecho" 0)
(prompt "\nBitte XREF-, BLOCK-OBJEKT auf dem zu frierender Layer wählen ")
(setq zo (entget (car (nentsel))))
(setq L_NAME (cdr (assoc 8 zo)))
(setvar "cmdecho" 0)
(if (= L_NAME (getvar "CLAYER"))
(prompt (strcat "\nKann den Layer " L_NAME " nicht frieren, da es sich um den AKTUELLEN Layer handelt."))
(command "._layer" "_freeze" L_NAME "" "")
)
(setvar "cmdecho" ocmd)
(setvar "osmode" oosmd)
(setvar "blipmode" oblp)
(setq *error* olderr)
(princ)
)
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP