Hallo Dirk,
ganz sicher bin ich mir nicht, ob ich Dich verstanden haben. Ich habe Dir mal 2 Funktionen geschrieben, die vielleicht ja für Deine Zwecke funktionieren.
ZoomIni = es wird die Koordinate des Bildschirmmittelpunktes und der Inhalt der Variablen "VIEWSIZE" ins BloackBoard geschrieben (damit die Inhalte auch in weiteren geöffneten Zeichnungen verfügbar sind).
Wenn Du jetzt die Zeichnung wechselst, dann kannst Du mit der Funktion "ZoomDo" den Fensterbereich genauso einstellen, wie es in der "Ini"-Zeichnung der Fall ist.
Code:
(defun c:ZoomIni ( / A)
(vl-bb-set 'mp
(mapcar '(lambda(A)(/ A 2.0))
(mapcar '+
(list (- (car (getvar "viewctr"))
(/ (* (getvar "viewsize")
(/ (car (getvar "screensize"))
(cadr (getvar "screensize"))))
2))
(- (cadr (getvar "viewctr"))
(/ (getvar "viewsize") 2))0.0)
(list (+ (car (getvar "viewctr"))
(/ (* (getvar "viewsize")
(/ (car (getvar "screensize"))
(cadr (getvar "screensize")))) 2))
(+ (cadr (getvar "viewctr"))
(/ (getvar "viewsize") 2))
0))))
(vl-bb-set 'vs (getvar "VIEWSIZE")))(defun c:ZoomDo ( / MP1 VS1)
(if (and (setq mp1 (vl-bb-ref 'mp))
(setq vs1 (vl-bb-ref 'vs)))
(vla-zoomcenter (vlax-get-acad-object)
(vlax-3d-point mp1) vs1)
(alert
"Es muss erst die Funktion \"ZoomIni\" ausgeführt werden.")
))
------------------
viele Grüße
Jörn
http://www.bosse-engineering.com
Liniensignaturen Youtube
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP