Zitat:
Original erstellt von tcadmin:
Hallo Zusammen,mir stellt sich folgende Frage.
Ist es möglich beim benutzen von 3 AF ein AF als Übersichsfenster zu nutzen, um sich aus der Übersicht ein beliebigen Ausschnitt raus zu zoomen und dieser Ausschnitt automatisch im Hauptansichtsfenster dargestellt wird.
Gruß
tcadmin
Hallo tcadmin,
arbeite auch häufiger mit mehreren Ansichtsfenstern im Modellbereich, da mir die Anwendung des Übersichtsfensters zu umständlich erscheint.
Um die Arbeit mit den Ansichtsfenstern erträglich zum achen habe ich ein paar Zeilen Lisp geschrieben, die einige Zusatzfunktionen ermöglichen, mit denen es angenehmer wird.
"f" ermglicht in das gerade aktuelle Ansichtsfenster einen beliebigen Ausschnitt aus einem der anderen Fenster zu holen. Natürlich bleibt auch die Standardmöglichkeit im gerade aktiven Fenster einen Ausschnitt heraus zu zoomen.
(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")
)
"flip" Tauscht den angezeigten Ausschnitt des gerade aktuellen Ansichtsfensters mit dem eines anzuwählenden.
(defun c:flip ()
(setq OS (getvar "osmode"))
(setvar "cmdecho" 0)
(setvar "osmode" 0)
(setq ANSF1 (getvar "cvport"))
(command "._view" "_save" "temp1")
(princ "\nBitte in das Austauschfenster wechseln : ")
(command pause)
(command "._view" "_save" "temp2")
(command "._view" "_restore" "temp1")
(setvar "cvport" ANSF1)
(command "._view" "_restore" "temp2" )
(setvar "osmode" OS)
(setvar "cmdecho" 1)
)
"fi" Zeichnet in Verbindung mit "uebersicht" einen kleinen roten Rahmen welcher in einem zu wählenden Übersichtsfenster den Bereich Markiert der in dem gerade aktuellen Ansichtsfenster als Ausschnitt angezeigt wird. Durch Beenden der Lisproutine mit return-Taste wird der Rahmen, der nichts anderes ist als eine dicke Polylinie, wieder gelöscht.
Gruß
Thomas Kaulen
(defun UEBERSICHT ()
(command "._view" "_save" "temp")
(command "._ucs" "_delete" "temp")
(command "._ucs" "_save" "temp")
(setq plan (tblsearch "view" "temp"))
(setq x_12 (/ (float (setq x (cdr (assoc 41 plan)))) 2))
(setq y_12 (/ (float (setq y (cdr (assoc 40 plan)))) 2))
(setq x_m (float (setq x_center (cadr (assoc 10 plan)))))
(setq y_m (float (setq y_center (caddr (assoc 10 plan)))))
(setq pl_width (/ x_12 5))
(setq x_links (- x_m x_12))
(setq x_rechts (+ x_m x_12))
(setq y_unten (- y_m y_12))
(setq y_oben (+ y_m y_12))
(setq pt1a (list x_links y_unten 0.0))
(setq pt1 (trans pt1a 2 0))
(setq pt2a (list x_rechts y_unten 0.0))
(setq pt2 (trans pt2a 2 0))
(setq pt3a (list x_rechts y_oben 0.0))
(setq pt3 (trans pt3a 2 0))
(setq pt4a (list x_links y_oben 0.0))
(setq pt4 (trans pt4a 2 0))
)
(defun c:fi ()
(GETVARIA)
(setvar "cmdecho" 0)
(setvar "osmode" 0)
(setq ANSF (getvar "cvport"))
(graphscr)
(UEBERSICHT)
(princ "\nBitte ins Übersichtsfenster wechseln ")
(Command pause)
(LAYTEST "0" 7)
(command "._color" "_red")
(command "._ucs" "_world")
(command "._pline" pt1 "_width" pl_width "" pt2 pt3 pt4 "_close" "")
(princ "\nBitte >RETURN< um fortzufahren ")
(Command pause)
(command "._undo" "")
(command "._ucs" "_restore" "temp")
(setvar "cvport" ANSF)
(command "._redraw")
(SETVARIA)
)
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP