;; -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ;; XPLAN ;; ;; Programm, daß die Befehlsfolge UCS mit zusammen mit PLAN verknüpft ;; Dabei wird der aktuelle Planausschnitt nach 'PLAN' wieder hergestellt, sodaß man sich das ;; Zoomen nach 'plan' spart ;; ;; (c) Volker Kleppel / Beethovenstrasse 68 / 71640 Ludwigsburg / vkleppel@lycosmail.com ;; ;; Erstellt: 27.11.1998 ;; Letzte Änderung: 27.11.1998 ;; ;; System: AutoCAD 14 ;; -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ;; Befehle: ;; ;; XPLAN - Aufforderung ein Objekt zu wählen, wonach das BKS ausgerichtet wird. Danach wird die Ansicht ;; nach dem BKS ausgerichtet, wobei der Zoom-Ausschnitt nicht geändert wird ;; ;; CustomViewUCS - Die Ansicht wird nach einem bereits gedrehten BKS ausgerichtet, wobei der Zoom-Ausschnitt nicht ;; verändert wird (defun c:xplan ( / dump vctr vsize ssize ucsx windowX windowY ratio p) ;Systemvariablen (setq sys1 (getvar "CMDECHO")) (setq vctr (trans (getvar "viewctr") 1 0)) (setq vsize (getvar "viewsize")) (setq ssize (getvar "screensize")) (setq ucsx (getvar "ucsXdir")) (setq xperror *error) (setq *error* xplan_error) ;Berechnungen (setq ratio (/ (car ssize) (cadr ssize))) (setq windowX (* vsize ratio)) (setq windowY vsize) ;Ausführung (if (= (boole 1 1 (getvar "viewmode")) 0) (progn (initget 128 "Welt Objekt") (setq answer (getkword "\nBKS ausrichten nach: Welt/ ")) (if (or (= answer nil) (= answer "Objekt")) (command "_ucs" "_object" pause) (command "_ucs" "") ) (if (equal ucsx (getvar "ucsXdir")) (progn (princ "\nDas gewählte Objekt hat kein gültiges UCS") ) (progn (initget 128 "Ja Nein") (if (= (setq answer (getkword "\nSoll der Plan nach dem gegenwärtigen UCS ausgerichtet werden? Nein/ ")) nil) (setq answer "Ja")) (if (= answer "Ja") (progn (command "_plan" "") (setq dump (getvar "osmode")) (setq p (trans vctr 0 1)) (setvar "osmode" 0) (command "_zoom" "_window" (list (- (car p) (* windowX 0.5)) (- (cadr p) (* windowY 0.5))) (list (+ (car p) (* windowX 0.5)) (+ (cadr p) (* windowY 0.5)))) (setvar "osmode" dump) ) ) ) ) ) (progn (princ "\nXPLAN kann nicht innerhalb von Perspektiven angewendet werden") ) ) (print) ) (defun c:CustomViewUCS ( / dump vctr vsize ssize ucsx windowX windowY ratio p p1 p2) ;Systemvariablen (setq sys1 (getvar "CMDECHO")) (setq vctr (trans (getvar "viewctr") 1 0)) (setq vsize (getvar "viewsize")) (setq ssize (getvar "screensize")) (setq ucsx (getvar "ucsXdir")) (setq xperror *error) (setq *error* xplan_error) ;Berechnungen (setq ratio (/ (car ssize) (cadr ssize))) (setq windowX (* vsize ratio)) (setq windowY vsize) ;Ausführen (command "_plan" "") (setq dump (getvar "osmode")) (setq p (trans vctr 0 1)) (setvar "osmode" 0) (setq p1 (list (- (car p) (* windowX 0.5)) (- (cadr p) (* windowY 0.5)))) (setq p2 (list (+ (car p) (* windowX 0.5)) (+ (cadr p) (* windowY 0.5)))) (command "_zoom" "_window" p1 p2) (setvar "osmode" dump) ;Ende (print) ) (defun xplan_error () (setq *error* xperror) (setq xperror nil) (princ "\nDas Element besitzt kein gültiges UCS oder das UCS ist bereits danach ausgerichtet") (print) ) (princ "\nXPLAN geladen:") (princ "\n(c) Volker Kleppel / 1998") (princ "\nBefehle ausführen über 'XPLAN' oder 'CustomViewUCS'") (print)