本帖最后由 wungqiao3 于 2025-10-30 16:48 编辑
【应用场景】
在布局里有很多视口,找到这个视口在模型里的位置
这段码说明了在布局里的坐标转换到模型里
以前不明白怎么用,其实就是要激活当前视口,通过trans把布局里的坐标转换到视口坐标,再转换到世界坐标系
直接上码吧,如果对你有用可以赏个明经币
 - (defun C:TT (/ doc pts pv s)
- (vl-load-com)
- (if (and
- (setq doc (vla-get-ActiveDocument (vlax-get-acad-object)))
- (setq s (ssget ":S" '((0 . "VIEWPORT"))))
- (setq pv (vlax-ename->vla-object (ssname s 0)))
- (not (vla-put-MSpace doc :vlax-true))
- (not (vla-put-ActivePViewport doc pv))
- (not (vla-put-MSpace doc :vlax-false))
- )
- (progn
- (vla-getboundingbox pv 'minp 'maxp)
- (setq pts (mapcar 'vlax-safearray->list (list minp maxp)))
- (setq pts (mapcar '(lambda (x) (trans (trans x 3 2) 2 1)) pts))
- (vla-put-ActiveSpace doc 1)
- (vl-cmdf "ZOOM" "W" (car pts) (cadr pts))
- )
- )
- (vlax-release-object doc)
- (princ)
- )
【附件】
|