salve
das funzt leider nicht so einfach
eine einfache möglichkeit kann ich dir aber anbieten....
**********************************
(defun c:zzz ()
(if (/= 1 zzz_chk)
(progn
(setq zzz_layer (getvar "clayer"); layer
zzz_color (getvar "cecolor");farbe
zzz_ltype (getvar "celtype");linientyp
zzz_ltfaktor (getvar "celtscale");skalierungsfaktor der linie
zzz_weight (getvar "celweight");linienstärke
zzz_chk 1
);end setq
(princ "\n...merke Status ! ")
(princ)
);end progn
(progn
(setvar "clayer" zzz_layer)
(setvar "cecolor" zzz_color)
(setvar "celtype" zzz_ltype)
(setvar "celweight" zzz_weight)
(setvar "celtscale" zzz_ltfaktor)
(setq zzz_chk nil)
(princ "\nsetze zurück...")
(princ)
);end progn
);end if
);end defun
(princ)
**************************************************
speichere innerhalb der sternchen den code unter zzz.lsp in einem suchpfad von autocad ab. über extras/anwendungen würde ich nun diesen code zur startgruppe hinzufügen und vielleicht einen button erstellen mit folgendem inhalt : ^C(if (not c:zzz)(load "zzz.lsp")) zzz
der code macht nix anderes, als die systemvariablen der aktuellen einstellungen auszulesen und temp. zu speichern. bei nochmaligen klick werden die einstellungen wieder zurückgesetzt.
zu deinem button...geht auch so (damit ein klick gespart)
*^C^C(if (not c:zzz)(load "zzz.lsp")) zzz;-la;se;bemm1;;;;_dimaligned;;
was passiert.
vor deinem layer aufruf wird der aktuelle stand gesichert. nach der bemassung brauchst du dann nur auf den button zu klicken, oder zzz einzugeben und der vorher gespeicherte zustand wird wiederhergestellt. innerhalb des buttons geht es nicht !!!!!
ach so....wie du bestimmt schon oben erkannt hast, wird nicht nur der layerstatus gespeichert ;-)
------------------
Grüße aus dem Rheingau.
Rolf aka Benwisch
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP