(vl-load-com)
(if vs:autor (vlr-remove vs:autor))
(setq vs:autor (VLR-SysVar-Reactor nil '((:vlr-sysvarchanged . sysvarchg))) )
(setq _vsautoinproc nil)
(defun _isortho (badval / )
(and ; orto pohledy:
(or (equal (car badval) 0.0 0.000001)(equal (cadr badval) 0.0 0.000001))
(or (equal (car badval) 0.0 0.000001)(equal (caddr badval) 0.0 0.000001))
(or (equal (cadr badval) 0.0 0.000001)(equal (caddr badval) 0.0 0.000001))
)
)
;-----------
(defun sysvarchg (r data / varname badval adoc VpEnt vport vsname)
(if (not _vsautoinproc)(progn ; in proc?
(setq _vsautoinproc T)
(setq varname (car data))
(setq badval (getvar varname))
(PRINC "\n")(princ varname)(princ "=")(princ badval)
(if (= varname "VIEWDIR")(progn
;(PRINT "*SW*")
(setq adoc (vla-get-activedocument (vlax-get-acad-object)))
;(if (> (atoi (substr (getvar "ACADVER") 1 2)) 16) ; JENOM!
(if (= (getvar "TILEMODE") 1)
(setq VpEnt (vlax-vla-object->ename (setq vport (vla-get-activeviewport adoc))))
(setq VpEnt (vlax-vla-object->ename (setq vport (vla-get-activepviewport adoc))))
)
(setq vsname (cdr (assoc 2 (entget (cdr (assoc 348 (entget VpEnt)))))))
;(PRINT vsname)
(if (< (getvar "CMDACTIVE") 2)(progn ; nop nebo bezny prikaz
(if (and (_isortho badval)
(/= vsname "Wireframe")
)
(vla-sendcommand adoc "_VSCURRENT _2d ") ; go ORTO
;(vla-put-VisualStyle vport 1)
)
(if (and (not (_isortho badval))
;(= vsname "Wireframe")
)
(vla-sendcommand adoc "_VSCURRENT _rea ") ; go REALISTIC
)
)) ; jde poslat sendocmmand
)) ; jde o VIEWDIR
(setq _vsautoinproc nil)
))
)