明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 707|回复: 2

块属性值统计求和.lsp

[复制链接]
发表于 2025-9-28 21:54:07 | 显示全部楼层 |阅读模式
(defun c:Attsum (/ ss i ent blkname att attname attvalue total)
    (setq total 0)  ; 初始化总和为0
    (princ "\n请选择需要统计的wdx*或wgd*块...")
    (setq ss (ssget '((0 . "INSERT") (2 . "wdx*,wgd*"))))  ; 筛选块名以wdx或wgd开头的块

    (if ss  ; 判断是否选择了对象
        (progn
            (setq i 0)
            (repeat (sslength ss)  ; 遍历选择集中的每个块
                (setq ent (ssname ss i))  ; 获取块对象
                (setq blkname (cdr (assoc 2 (entget ent))))  ; 获取块名
                (princ (strcat "\n处理块: " blkname))  ; 输出当前处理的块名

                ; 遍历块的属性
                (setq att (entnext ent))  ; 获取第一个属性
                (while (= (cdr (assoc 0 (entget att))) "ATTRIB")  ; 判断是否为属性对象
                    (setq attname (strcase (cdr (assoc 2 (entget att))))  ; 属性名(转为大写)
                          attvalue (cdr (assoc 1 (entget att)))  ; 属性值
                    )
                    (if (= attname "LENGTH")  ; 匹配属性名为"length"(不区分大小写)
                        (progn
                            (if (numberp (atof attvalue))  ; 判断属性值是否为数字
                                (progn
                                    (setq total (+ total (atof attvalue)))  ; 累加数值
                                    (princ (strcat " - 找到Length属性: " attvalue))  ; 输出属性值
                                )
                                (princ (strcat " - 警告: Length属性值 '" attvalue "' 不是有效数字"))
                            )
                        )
                    )
                    (setq att (entnext att))  ; 获取下一个属性
                )
                (setq i (1+ i))  ; 处理下一个块
            )
            ; 输出最终结果
            (princ (strcat "\n\n===== 统计结果 ====="))
            (princ (strcat "\n选中块的Length属性总和: " (rtos total 2 2)))  ; 保留2位小数
        )
        (princ "\n未选择任何块或选择集中无符合条件的块!")  ; 未选择对象时提示
    )
    (princ)  ; 清理命令行显示
)

回复

使用道具 举报

 楼主| 发表于 2025-9-28 21:55:24 | 显示全部楼层
块名“wdg*”、“wgd*”,统计值length,可以修改为自己的实际名称,达到正确求和的目的
回复 支持 反对

使用道具 举报

发表于 2025-9-28 22:09:11 | 显示全部楼层
好的 好的 非常感谢分享
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-11-26 17:00 , Processed in 0.163837 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表