vitalgg 发表于 2023-1-11 09:51:34

【函数】pickset:zoom 缩放选择集ss到当前视口,支持在 DCL中控制绘图区的显示

本帖最后由 vitalgg 于 2023-1-11 23:59 编辑

pickset:zoom

"缩放选择集ss到当前视口.

显示的屏占比可由设置选项 @:magnify 控制,
其值越大,放大率越低。默认满屏"


*ACAD* 就是当前的 cad application 对象。可自行修改。
安装了@lisp的CAD无需修改可直接使用该函数,并进行设置显示的大小。

在vscode 中安装了 @lisp函数库扩展的,可以直接查看函数说明和语法。

本函数源码:
https://gitee.com/atlisp/atlisp-lib/blob/main/src/pickset/zoom.lsp

@lisp函数库
https://gitee.com/atlisp/atlisp-lib


函数库问题讨论,建议及意见交流区
https://gitee.com/atlisp/atlisp-lib/issues

@lisp开源项目
https://gitee.com/atlisp


(defun pickset:zoom (ss / box)
"缩放选择集ss到当前视口.
显示的屏占比可由设置选项 @:magnify 控制,
其值越大,放大率越低。默认满屏"
""
"(pickset:zoom (ssget))"
(setq box (pickset:getbox ss 0))
(vla-ZoomCenter
   *ACAD*
   (apply 'vlax-3D-point (point:centroid box))
   (* (if (and (setq magnify (@:get-config '@:magnify))
         (> magnify 0.01))
    magnify
1)
      (/
       (apply
'max
(mapcar
         '/
         (mapcar '- (cadr box) (car box))
         (getvar "SCREENSIZE")
   ))
       0.001
       ))))
用法:



源码:



VScode 语法提示





更多函数见 @lisp 函数库:
https://gitee.com/atlisp/atlisp-lib

开源可查,更可直接调用。不再需要自己一个一个地组织。

中国梦 发表于 2023-1-11 19:38:54

谢谢楼主分享
页: [1]
查看完整版本: 【函数】pickset:zoom 缩放选择集ss到当前视口,支持在 DCL中控制绘图区的显示