检查并统计各种填充面积2.0
本帖最后由 yangyangyixia 于 2025-1-25 17:40 编辑参考了以下几个前辈成果,整合并增加了点功能。
http://bbs.mjtd.com/forum.php?mo ... 3%E4%2B%C3%E6%BB%FD
http://bbs.mjtd.com/forum.php?mo ... %C3%E6%BB%FD&page=3
2025/1/25,放假了,更新了一下。样式参照了下面大佬给的样式。
填充没有错误时统计样式:
填充没有面积属性,有可能是边界线存在自交点,用D=30mm的圆标记出来:
测试图纸:
没有币了,我收到点币。
无币的朋友先测试一下
本帖最后由 xyp1964 于 2025-1-23 21:43 编辑
(defun c:tt ()
"填充面积求和"
(setq i -1
a 0
)
(if (setq ss (ssget '((0 . "hatch"))))
(while (setq s1 (ssname ss (setq i (1+ i))))
(setq a1 (vl-catch-all-apply
'vla-get-area
(list (setq ob (vlax-ename->vla-object s1)))
)
)
(if (vl-catch-all-error-p a1)
(vla-put-color ob "1")
(setq a (+ a a1))
)
)
)
(princ "\n填充总面积 = ")
(princ a)
(princ)
) 迷失1786 发表于 2025-1-26 15:39
能改以mm为单位么?
能改,第66行后面有注释。
(setq hname (vla-get-patternname obj)
area(/ (vl-catch-all-apply ' vla-get-area (list obj) ) 1);单位为mm时,1000000;单位为m时,1。 本帖最后由 muai2010 于 2025-3-17 23:55 编辑
yangyangyixia 发表于 2025-1-23 19:50
大佬,你的代码提示:参数类型错误: numberp: nil。
我的不是统计一个总面积,是根据各个填充的名称,分 ...
生成的文字和填充图案不居中,有时候多了不太美观,可以考虑居中,稍微修改了下可以用了
xyp1964 发表于 2025-1-23 18:50
大佬,你的代码提示:参数类型错误: numberp: nil。
我的不是统计一个总面积,是根据各个填充的名称,分类统计出各个的面积。
另外增加了多线段自交点的检查。 yangyangyixia 发表于 2025-1-23 19:50
大佬,你的代码提示:参数类型错误: numberp: nil。
我的不是统计一个总面积,是根据各个填充的名称,分 ...
谢谢分享谢谢分享谢谢分享谢谢分享 谢谢分享 谢谢楼主分享 不错,挺好的!!! xyp1964 发表于 2025-1-23 21:43
大佬,我更新了一下,统计表格样式抄了你的 能改以mm为单位么?
页:
[1]
2