Nachtrag:
ich benutze seit längerem u.a. lisp
Ist für das BKS-drehen nach Objekt einfach Klasse
;; -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
;; XPLAN
;;
;; Programm, daß die Befehlsfolge UCS mit <Object> zusammen mit PLAN <Current UCS> 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--aufwärts
;; -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
;; 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/<Objekt> "))
(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/<Ja> ")) 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)
)
------------------
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP