明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 262|回复: 8

[源码] 求助大师们优化一个统计块名并汇总的代码,谢谢!

[复制链接]
发表于 昨天 15:45 | 显示全部楼层 |阅读模式
本帖最后由 金鹅起飞 于 2025-4-20 15:51 编辑

小弟从同事处得到个程序(出处不详),目前只能框选属性块统计到块名及其数量,但不能去重和汇总块数量,因为工作中经常使用到这个插件这样的功能,可以省事快速完成工作,我去论坛搜索过,没有找到类似的代码,也让deepseek优化更改,搞了一个上午都没有成功。请看到此贴的大师们出手相助,帮帮小弟,谢谢!小弟不才,不会代码编写,只有求助大师们帮助了。源码和要求在下方,谢谢您们!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复

使用道具 举报

 楼主| 发表于 昨天 15:53 | 显示全部楼层
请有缘看到的大师帮帮忙,谢谢您了!
回复 支持 反对

使用道具 举报

发表于 昨天 18:38 | 显示全部楼层
本帖最后由 xiao1984 于 2025-4-20 18:41 编辑

你搜一下论坛有现成的超级统计块(源码分享)
http://bbs.mjtd.com/forum.php?mo ... amp;fromuid=7331256
(出处: 明经CAD社区)

回复 支持 反对

使用道具 举报

 楼主| 发表于 9 小时前 | 显示全部楼层
xiao1984 发表于 2025-4-20 18:38
你搜一下论坛有现成的超级统计块(源码分享)
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=90917&f ...

谢谢 xiao1984 大师的回复,我搜索到了这个代码,它可以实现一部分的功能。我的目标是选择属性块后统计属性包围盒里所有的块名进行块名去重、块数量累加并最后汇总。它这个是框选所有的块都会统计,不能统计属性块里的块,表格的格式也不是我想要的。谢谢您!
回复 支持 反对

使用道具 举报

 楼主| 发表于 9 小时前 | 显示全部楼层
请大师们出手相助,谢谢!
回复 支持 反对

使用道具 举报

发表于 8 小时前 | 显示全部楼层
金鹅起飞 发表于 2025-4-21 08:17
请大师们出手相助,谢谢!

(defun @汇总 (front base)
        (setq all-names nil)
        (foreach item front
                (setq all-names (cons (car item) all-names))
        )
        (foreach item base
                (if (not (member (car item) all-names))
                        (setq all-names (cons (car item) all-names))
                )
        )       
        (setq result nil)
        (foreach name all-names
                (setq fval 0)
                (setq bval 0)
                (setq entry-in-front (assoc name front))
                (setq entry-in-base (assoc name base))
                (if entry-in-front
                        (setq fval (cadr entry-in-front))
                )
                (if entry-in-base
                        (setq bval (cadr entry-in-base))
                )
                (setq total (+ fval bval))
                (setq result (cons (list name fval bval total) result))
        )
         result
)

;
(defun c:tt (/ $底座 $前壳 result)
        (setq $前壳 (list '("AK34铜芯-外协厂1" 1) '("Kuma-15主帽(镀镍)" 2)'("ty-uobo" 1)))
        (setq $底座 (list '("AK34铜芯-外协厂1" 1) '("Kuma-15主帽(镀镍)" 2)'("M6x12内牙母-外协厂1" 2)))
        (setq result (@汇总 $前壳 $底座))
        (princ result)
)
;结果 ((AK34铜芯-外协厂1 1 1 2) (Kuma-15主帽(镀镍) 2 2 4) (ty-uobo 1 0 1) (M6x12内牙母-外协厂1 0 2 2))
让豆包写了个函数,你的问题应该可以解决了。
回复 支持 反对

使用道具 举报

发表于 6 小时前 | 显示全部楼层
这类需求明显是需要个性化定制的,最好还是找人付费制作。想白嫖。。。。基本不可能的了。
回复 支持 反对

使用道具 举报

发表于 6 小时前 | 显示全部楼层
用table做块统计,是比较合适的

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复 支持 反对

使用道具 举报

发表于 3 小时前 | 显示全部楼层
如果需要付费定制,可以联系我
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-21 17:53 , Processed in 0.180827 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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