;;;从AutoCAD 2013 Active Reference帮助中code Examples中提取 ;;;本源代码由 xshrimp 2013.2.20 搜集整理,版权归原作者所有! (vl-load-com) (defun c:Example_Split() ;; This example creates a new viewport and makes it active. ;; Then it splits the viewport into four windows. ;; It then takes one of the four windows, and splits that ;; window horizontally in half. (setq acadObj (vlax-get-acad-object)) (setq doc (vla-get-ActiveDocument acadObj)) ;; Create a new viewport and make it active (setq newViewport (vla-Add (vla-get-Viewports doc) "TESTVIEWPORT")) (vla-put-ActiveViewport doc newViewport) ;; Split the viewport in four windows (vla-Split newViewport acViewport4) ;; Make the newly split viewport active (vla-put-ActiveViewport doc newViewport) ;; Note that current drawing layout will show four windows. ;; However, only one of the windows will be active. ;; The following code sets the lower-left corner window ;; to be the active window and then splits that ;; window into two horizontal windows. (vlax-for entry (vla-get-Viewports doc) (if (= (vla-get-Name entry) "TESTVIEWPORT") (progn (setq lowerLeft (vlax-variant-value (vla-get-LowerLeftCorner entry))) (if (and (= (vlax-safearray-get-element lowerLeft 0) 0) (= (vlax-safearray-get-element lowerLeft 1) 0)) (setq newViewport entry) ) ) ) ) (vla-Split newViewport acViewport2Horizontal) (vla-put-ActiveViewport doc newViewport) )