求助大师们优化一个统计块名并汇总的代码,谢谢!
本帖最后由 金鹅起飞 于 2025-4-20 15:51 编辑小弟从同事处得到个程序(出处不详),目前只能框选属性块统计到块名及其数量,但不能去重和汇总块数量,因为工作中经常使用到这个插件这样的功能,可以省事快速完成工作,我去论坛搜索过,没有找到类似的代码,也让deepseek优化更改,搞了一个上午都没有成功。请看到此贴的大师们出手相助,帮帮小弟,谢谢!小弟不才,不会代码编写,只有求助大师们帮助了。源码和要求在下方,谢谢您们!:handshake:handshake
太另类
金鹅起飞 发表于 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))
让豆包写了个函数,你的问题应该可以解决了。 xiao1984 发表于 2025-4-20 18:38
你搜一下论坛有现成的超级统计块(源码分享)
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=90917&f ...
谢谢 xiao1984 大师的回复,我搜索到了这个代码,它可以实现一部分的功能。我的目标是选择属性块后统计属性包围盒里所有的块名进行块名去重、块数量累加并最后汇总。它这个是框选所有的块都会统计,不能统计属性块里的块,表格的格式也不是我想要的。谢谢您! 请有缘看到的大师帮帮忙,谢谢您了! 本帖最后由 xiao1984 于 2025-4-20 18:41 编辑
你搜一下论坛有现成的超级统计块(源码分享)
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=90917&fromuid=7331256
(出处: 明经CAD社区)
请大师们出手相助,谢谢! 这类需求明显是需要个性化定制的,最好还是找人付费制作。想白嫖。。。。基本不可能的了。 用table做块统计,是比较合适的 如果需要付费定制,可以联系我 统一网名 发表于 2025-4-21 08:57
(defun @汇总 (front base)
(setq all-names nil)
(foreach item front
谢谢 统一网名 大师的代码,您的代码可以统计块名和汇总,但是不能生成表格,谢谢您!如果能统计好块名和汇总数量并能生成图上那样的表格,就好了
页:
[1]
2