;;;Programm zum Vor-und Zurückblättern im Ansichtenspeicher ;;;Programm in ein Supportdirectory kopieren ;;;mit Befehl:_appload laden ;;;Befehl für Vorblättern : V_VOR ;;;Befehl für Zurückblättern : V_RET ;;;(c)(Have Fun!!) ;;;Gruss Claudio (defun vset () ;;;Unterprogramm VSET (vl-load-com) (setq VNamli (list) VAktiv nil ) ;;;Ansichtenliste und Aktivansicht rückstellen (command "_-view" "_s" "$$123TEMP_Zoom") ;;;Aktive Ansicht für Vergleich speichern (setq PRUEF (cddr (tblsearch "VIEW" "$$123TEMP_Zoom"))) ;;;Vergleichswerte=Restliste der Ansicht (command "_-view" "_d" "$$123TEMP_Zoom") ;;;Temporäre aktive Ansicht wieder löschen (setq VList (vla-get-views (vla-get-activedocument (vlax-get-acad-object)) )) ;;;AnsichtenListe von Dokument übergeben (vlax-for item Vlist(setq VNam (vla-get-Name item)) ;;;Ansichtennamen in Liste eintragen (Setq VNamli (append VNamli (list VNam))) (if (equal PRUEF (cddr (tblsearch "VIEW" Vnam))) ;;;Prüfen ob aktive Ansicht in Liste enthalten (setq VAktiv Vnam)) ;;;Wenn ja->Namen übergeben ) ;;;EndVlax-for (if VAktiv (setq VNamPos (vl-position VAktiv VNamli))) ;;;Position der aktuellen Ansicht ermitteln ) ;;;Enddefun (defun C:V_VOR (/ VList VNamVor VNampos VNamli VAktiv PRUEF) ;;;HAUPTPROGRAMMTEIL VORBLÄTTERN (if (tblsearch "VIEW" "$$123TEMP_Zoom") (command "_-view" "_d" "$$123TEMP_Zoom")) ;;;Wenn temporärVIEW vorhanden,löschen (if (tblnext "View" T) ;;;Wenn Ansichten gespeichert sind (Progn ;;;Programm ausführen (VSET) ;;;Unterprogramm ausführen (if (= VAktiv nil)(setq VnamPos -1) ) ;;;Wenn Vaktiv nicht vorhanden, Listenanfang (if (= VNamPos (- (length VNamli) 1))(setq VnamPos -1) ) ;;;Wenn Listenende erreicht, Listenanfang (Setq VNamVor (nth (+ 1 VNampos) VNamli)) ;;;Name der nächsten Ansicht ermitteln (command "_-view" "_r" VNamVor) ;;;Nächste Ansicht aktivieren ) ;;;Endprogn (alert "Keine Ansichten gespeichert!") ;;;Sonst Hinweis ) ;;;Endif (princ) ) (defun C:V_RET (/ VList VNamVor VNampos VNamli VAktiv PRUEF) ;;;HAUPTPROGRAMMTEIL ZURÜCKBLÄTTERN (if (tblsearch "VIEW" "$$123TEMP_Zoom") (command "_-view" "_d" "$$123TEMP_Zoom")) ;;;Wenn temporärVIEW vorhanden,löschen (if (tblnext "View" T) ;;;Wenn Ansichten gespeichert sind (Progn ;;;Programm ausführen (VSET) ;;;Unterprogramm ausführen (if (= VAktiv nil)(setq VnamPos (- (length VNamli) 1)) ) ;;;Wenn Vaktiv nicht vorhanden, ListenEnde (if (= VNamPos 0) (setq VnamPos (- (length VNamli) 1)) ) ;;;Wenn Listenanfang erreicht , ListenEnde (Setq VNamVor (nth (- VNampos 1) VNamli)) ;;;Name der vorhergehenden Ansicht ermitteln (command "_-view" "_r" VNamVor) ;;;Vorhergehende Ansicht aktivieren ) ;;;Endprogn (alert "Keine Ansichten gespeichert!") ;;;Sonst Hinweis ) ;;;Endif (princ) )