Hallo,
bin kein Lisp-Spezialist und habe daher zu den folgenden Lisproutinen eine Frage.
Die Routinen benutze ich um die Arbeit mit mehreren Ansichtsfenstern im Modellmodus zu erleichtern.
"f" läßt den Anwender aus dem aktuellen Ansichtsfenster in ein anderes "Übersichtsfenster" wechseln und dort einen Ausschnitt wählen der dann wiederum im ursprünglich aktiven angezeigt wird.
"fg" macht im Prinzip das selbe, nur dass in dem "Übersichtsfenster" zunächst "Zoom Grenzen" ausgelöst wird, dann der gewünschte Ausschnitt gewählt werden kann und dieser dann im ursprünglich aktiven Ansichtsfenster wieder angezeigt wird. Während im Übersichtsfenster auch wieder der "alte" Ausschnitt angezeigt wird.
"ff" ist nichts anderes als "f" nur mit einer Schleife sozusagen zum Durchwandern der Zeichnung.
Leider sind die Routinen so nicht transparent anwendbar sondern immer nur vor oder nach anderen Befehlen.
Läßt sich das ändern ???
Gruß
Thomas Kaulen
(defun c:f ()
(defun *error* (msg)
(setvar "cmdecho" 1)
(setvar "osmode" OS)
(setvar "orthomode" OT)
(princ msg)
(princ)setvR
)
(setq OS (getvar "osmode"))
(setq OT (getvar "orthomode"))
(setvar "cmdecho" 0)
(setvar "osmode" 0)
(command "_.ucs" "_save" "temp_BKS" "_y")
(setq ANSF (getvar "cvport"))
(graphscr)
(princ "\nBitte ins Übersichtsfenster wechseln und den ersten Punkt")
(princ "des Auswahlfensters waehlen")
(setq pt1 (getpoint))
(princ "\nBitte den zweiten Punkt des Auswahlfensters wählen: ")
(setq pt2 (getcorner pt1))
(command "._view" "_w" "temp" pt1 pt2)
(setvar "cvport" ANSF)
(command "._view" "_restore" "temp" )
(setvar "osmode" OS)
(setvar "orthomode" OT)
(setvar "cmdecho" 1)
(command "_.ucs" "_restore" "temp_BKS")
)
(defun c:fg ()
(defun *error* (msg)
(setvar "cmdecho" 1)
(setvar "osmode" OS)
(setvar "orthomode" OT)
(princ msg)
(princ)setvR
)
(setq OS (getvar "osmode"))
(setq OT (getvar "orthomode"))
(setvar "cmdecho" 0)
(setvar "osmode" 0)
(command "_.ucs" "_save" "temp_BKS" "_y")
(setq ANSF (getvar "cvport"))
(princ "\nBitte ins Übersichtsfenster wechseln und den ersten Punkt")
(princ "des Auswahlfensters waehlen")
(setq point (getpoint))
(graphscr)
(command "-ausschnt" "_save" "temp_uebersicht" "_Y")
(setq ANSF_uebersicht (getvar "cvport"))
(command "_zoom" "_extents" "")
(setq pt1 (getpoint))
(princ "\nBitte den zweiten Punkt des Auswahlfensters wählen: ")
(setq pt2 (getcorner pt1))
(command "._view" "_w" "temp" pt1 pt2)
(command "-ausschnt" "_restore" "temp_uebersicht")
(setvar "cvport" ANSF)
(command "._view" "_restore" "temp" )
(setvar "osmode" OS)
(setvar "orthomode" OT)
(setvar "cmdecho" 1)
(command "_.ucs" "_restore" "temp_BKS")
)
(defun c:ff ()
(GETVARIA)
(setvar "cmdecho" 0)
(setvar "osmode" 0)
(setq ANSF (getvar "cvport"))
(graphscr)
(princ "\nBitte ins Uebersichtsfenster wechseln und den ersten Punkt")
(princ "des Auswahlfensters waehlen")
(setq pt1 (getpoint))
(while (/= pt1 nil)
(princ "\nBitte den zweiten Punkt des Auswahlfensters wählen: ")
(setq pt2 (getcorner pt1))
(command "._view" "_w" "temp" pt1 pt2)
(setvar "cvport" ANSF)
(command "._view" "_restore" "temp" )
(princ "\nBitte ins šbersichtsfenster wechseln und den ersten Punkt")
(princ "des Auswahlfensters waehlen <RETURN> für Abbruch")
(setq pt1 (getpoint))
)
(SETVARIA)
)
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP