yangyangyixia 发表于 2025-1-23 18:05:13

检查并统计各种填充面积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 18:50:54

本帖最后由 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)
)

yangyangyixia 发表于 2025-1-26 18:35:18

迷失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-16 17:54:34

本帖最后由 muai2010 于 2025-3-17 23:55 编辑

yangyangyixia 发表于 2025-1-23 19:50
大佬,你的代码提示:参数类型错误: numberp: nil。
我的不是统计一个总面积,是根据各个填充的名称,分 ...
生成的文字和填充图案不居中,有时候多了不太美观,可以考虑居中,稍微修改了下可以用了

yangyangyixia 发表于 2025-1-23 19:50:13

xyp1964 发表于 2025-1-23 18:50


大佬,你的代码提示:参数类型错误: numberp: nil。
我的不是统计一个总面积,是根据各个填充的名称,分类统计出各个的面积。
另外增加了多线段自交点的检查。

xyp1964 发表于 2025-1-23 21:43:21

yangyangyixia 发表于 2025-1-23 19:50
大佬,你的代码提示:参数类型错误: numberp: nil。
我的不是统计一个总面积,是根据各个填充的名称,分 ...


yefei812678 发表于 2025-1-24 08:26:41

谢谢分享谢谢分享谢谢分享谢谢分享

moranyuyan 发表于 2025-1-24 08:40:47

谢谢分享

yk1216 发表于 2025-1-24 08:59:52

谢谢楼主分享

lqs383 发表于 2025-1-24 10:29:56

不错,挺好的!!!

yangyangyixia 发表于 2025-1-25 17:35:48

xyp1964 发表于 2025-1-23 21:43


大佬,我更新了一下,统计表格样式抄了你的

迷失1786 发表于 2025-1-26 15:39:50

能改以mm为单位么?
页: [1] 2
查看完整版本: 检查并统计各种填充面积2.0