More Free AutoLISP and Visual LISP code snippets for AutoCAD
;;; By Jimmy Bergmark ;;; Copyright (C) 1997-2016 JTB World, All Rights Reserved ;;; Website: http://jtbworld.com ;;; E-mail: info@jtbworld.com ;;; the command name is VPC ;;; About: show the coordinates for the center of the current viewport on command line ;;; if command is run within a viewport in model space it can be run transparently ;;; for example like this using 'vpc ;;; Command: LINE ;;; Specify first point: 'vpc ;;; if command is in paper space it will ask to select viewport and the point will ;;; be available as last used point and can be used with @ like this: ;;; Command: LINE ;;; Specify first point: @ (vl-load-com) ;;; get the viewportcenter old version (defun viewportcenterold () (vlax-safearray->list (vlax-variant-value (vla-get-center (vla-get-activepviewport (vla-get-activedocument (vlax-get-acad-object)))))))
; Example of using the variable viewctr ;(defun c:vpc () ; (getvar "viewctr") ;)
(defun c:vpc (/ viewportcenter ad ss vp ent) (defun vpc () (vlax-safearray->list (vlax-variant-value (vla-get-center (if (= (getvar "tilemode") 0) (vla-get-activepviewport ad ) (vla-get-activeviewport ad ) ) ) ) )) (setq ad (vla-get-activedocument (vlax-get-acad-object) )) (if (= (getvar "tilemode") 0) (if (= (getvar "cvport") 1) (if (/= (setq ss (ssget ":E:S" '((0 . "VIEWPORT")))) nil) (if (/= 1 (logand 1 (cdr (assoc 90 (setq vp (entget (setq ent (ssname ss 0)))))))) (progn (command "._mspace") (setvar "cvport" (cdr (assoc 69 vp))) (setq viewportcenter (vpc)) (command "._pspace") ) (princ "\n Command not allowed in perspective view.") ) (princ " No viewport found.") ) (progn (setq ent (vlax-vla-object->ename (vla-get-activepviewport (vla-get-activedocument (vlax-get-acad-object))))) (if (/= 1 (logand 1 (cdr (assoc 90 (entget ent))))) (setq viewportcenter (trans (vpc) 3 2)) (princ "\n Command not allowed in perspective view.") ) ) ) (setq viewportcenter (vpc)) ) (setvar "LASTPOINT" viewportcenter) (list (car viewportcenter) (cadr viewportcenter)) ) (princ)