马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
Question
Is it possible to lock a viewport using Visual LISP?
Answer
It is not possible to lock the viewport by using (entmod). However, it can
be successfully done using ActiveX functions. The following sample code checks
the viewport object's DisplayLocked property and, if currently unlocked, proceeds
to lock it:
[JavaScript] 纯文本查看 复制代码
(vl-load-com)
(setq app (vlax-get-acad-object)
doc (vla-get-activedocument app)
ent (car (entsel "\nSelect a viewport:"))
obj (vlax-ename->vla-object ent)
)
(if (= (vlax-get-property obj 'objectName) "AcDbViewport")
(progn
(setq vpLk (vlax-get-property obj 'DisplayLocked))
(if (= vpLk :vlax-false)
(progn
(vlax-put-property obj 'DisplayLocked :vlax-true)
(setq vpLk (vlax-get-property obj 'DisplayLocked))
(alert "Viewport is now locked")
)
(alert "Viewport was already locked")
)
)
(alert "Not a viewport")
)
After executing this code we can not zoom into the viewport:
Command: ms MSPACE
Command: z ZOOM
Viewport is view-locked. Switching to Paper space.
|