除了统计长度,统计面积可能就是另一个高频需求了。事实上,总的来讲,统计汇总类插件都可以算是高频需求。
毕竟,图纸画出来是拿来看的,不是画完就完了的。套用软件开发行业的说法,可能1分钟的画图时间,
要对应10分钟的看图时间。
既然看图时间远远多于画图,统计汇总自然就是一个永远存在的需求了。
统计面积的cad插件,比统计长度的略微复杂一点,总共19行autolisp代码。其中,有效行数15行,核心函数有效代码14行。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
(vl-load-com)
;;; no.2
(defun xg/sum-area (/ a a1 i ls n ob)
;; 统计面积的核心函数
;; 作者:徐工, 微博:@徐工徐工2020,头条:@徐工徐工
(if (and (setq ls (ssget)) (< 0 (setq n (sslength ls))))
(progn
(setq i 0
a 0)
(repeat n
(setq ob (vlax-ename->vla-object (ssname ls i))
i (1+ i)
a1 (vl-catch-all-apply 'vla-get-area (list ob)))
(if (not (vl-catch-all-error-p a1))
(setq a (+ a1 a))))
(prompt (strcat "\n总面积为" (rtos a 2 3)))
(princ))))
(defun c:mjmj () (xg/sum-area))
|
最后一行的c:mjmj意味着调用命令是mjmj,你可以修改为自己喜欢的快捷键。
文章作者
Jack Hsu
上次更新
2022-03-03
许可协议
Copyright © Jack Hsu. All Rights Reserved.