言戲無軍 发表于 2021-12-19 19:58:02

一种创建视口的方法

(defun c:cvp (/ ss e1 twangle obj doc layouts layout cpt *mypaper*)
;(defun MAT:Rot2D (v a / c s x y)
;(setq c (cos a) s (sin a))
;(setq x (car v) y (cadr v))
;(list (- (* x c) (* y s)) (+ (* x s) (* y c)))
;)

(setq doc (vla-get-ActiveDocument (vlax-get-acad-object)))

(setq twangle (getangle "选择图框倾斜方向:"))
(setvar "TILEMODE" 0)
(vl-cmdf "_pspace")
(vl-cmdf "ERASE" (ssget "x") "")
(SetQ *mypaper* (VLA-Get-PaperSpace doc))
;(Setq cpt (MAT:Rot2D '(300.00 300.00) (- twangle)))
(setq cpt '(300.00 300.00))
(vl-cmdf "_zoom" '(0 0 0) '(420 297 0))
(setq obj (vla-addpviewport *mypaper* (vlax-3d-point '(210 148.5 0)) 420 297))
;创建视口'(210 148.5 0)为视口中心点 420为视口宽度 297为视口高度

(vla-put-TwistAngle obj (- twangle)) ;视口旋转角度
(vla-Display obj 1);视口显示
(vl-cmdf "_mspace")
(vl-cmdf "_zoom" "c" cpt "1x" "");以cpt为中心zoom 比例1 显示的模型空间以cpt为中心的区域
(vl-cmdf "_pspace")   
;(vla-Display obj 1);视口显示
(vla-put-DisplayLocked obj 1);锁定视口   
)

言戲無軍 发表于 2021-12-20 14:24:59

本帖最后由 言戲無軍 于 2021-12-20 15:18 编辑

xvjiex 发表于 2021-12-20 12:09
这个方法很好!能否再把要显示的内容框选到视口内?
只需要给出CPT的坐标就能把内容显示出来

言戲無軍 发表于 2021-12-27 22:41:14

yanshengjiang 发表于 2021-12-27 02:31
我想用在地形图上面,提示选择对象太多了。

删除原来的视口再测试

alexmai 发表于 2021-12-24 19:48:51

言戲無軍 发表于 2021-12-24 17:58
这个可以用么

cad 安装 express tools 就可以用

依然小小鸟 发表于 2021-12-20 08:49:35

xvjiex 发表于 2021-12-20 12:09:55

这个方法很好!能否再把要显示的内容框选到视口内?

szhorse 发表于 2021-12-22 20:20:04

这个很好,布局旋转分图可以用到了

Wanda 发表于 2021-12-24 08:18:26

可能别的专业常用,但是看起来确实不错

alexmai 发表于 2021-12-24 16:51:51

图纸空间对齐 alignspace

言戲無軍 发表于 2021-12-24 17:58:16

alexmai 发表于 2021-12-24 16:51
图纸空间对齐 alignspace

这个可以用么

nijiea123 发表于 2021-12-26 19:01:02

这个方法很不错呢
页: [1] 2
查看完整版本: 一种创建视口的方法