明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 961|回复: 9

[提问] 求一个另类块统计,根据块属性值统计图,部分属性值相同可是图块名不同,统计为相同块

[复制链接]
发表于 2023-9-6 11:32:39 | 显示全部楼层 |阅读模式
本帖最后由 664571221 于 2023-9-6 11:42 编辑

求一个另类块统计,根据块属性值统计图,部分属性值相同可是图块名不同,统计为相同块,图中第一个表格有属性相同的块,可是名称不同就列了两行,不正确,属性值相同统计为同一个块

本帖子中包含更多资源

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

x
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2023-9-6 11:42:03 | 显示全部楼层
需要定制嘛,
 楼主| 发表于 2023-9-6 11:43:36 | 显示全部楼层

..........
发表于 2023-9-6 12:04:11 | 显示全部楼层

 楼主| 发表于 2023-9-6 13:10:55 | 显示全部楼层

图例可以放上去吗
发表于 2023-9-6 15:12:12 | 显示全部楼层
本帖最后由 vitalgg 于 2023-9-6 15:20 编辑
664571221 发表于 2023-9-6 13:10
图例可以放上去吗

有没有一种可能,属性值一样,但是块名不同,样式完全不同。这该放哪个块作为图例?。
一般编程只能解决确定性的问题。
发表于 2023-9-6 15:22:32 来自手机 | 显示全部楼层
张家庄的张三,张家村的张三
 楼主| 发表于 2023-9-6 20:40:41 | 显示全部楼层
vitalgg 发表于 2023-9-6 15:12
有没有一种可能,属性值一样,但是块名不同,样式完全不同。这该放哪个块作为图例?。
一般编程只能解决 ...

你说的有道理
 楼主| 发表于 2023-9-7 21:16:43 | 显示全部楼层
波总的代码

(defun c:tt (/ k s ss)
        (vl-load-com)
        (if (and (setq s (ssget '((0 . "INS*"))))
                                (setq s (mapcar 'vlax-ename->vla-object (vl-remove-if 'listp (mapcar 'cadr (ssnamex s)))))
                                (setq s
                                        (vl-remove nil
                                                (mapcar
                                                        (function
                                                                (lambda(x)
                                                                        (if (and (= :vlax-true (vla-get-HasAttributes x))
                                                                                                (setq x (vlax-safearray->list (vlax-variant-value (vla-GetAttributes x))))
                                                                                                (setq x (vl-remove nil (mapcar '(lambda(k)(if (= "A"(vla-Get-TagString k))(vla-Get-TextString k)))x)))
                                                                                        )
                                                                                (car x)
                                                                        )
                                                                )                 
                                                        )
                                                        s
                                                )                                                
                                        )
                                )                                
                        )
                (progn
                        (while s
                                (setq ss (append ss (list (progn (setq k (vl-remove-if-not (function(lambda(x)(equal (car s)x)))s))(list (car k) (length k)))))
                                        s (vl-remove (car s) s)
                                )
                        )
                        (if ss (foreach x (append '("========================") ss '("========================")) (print x)))
                        (princ)
                )
        )
)

本帖子中包含更多资源

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

x
 楼主| 发表于 2023-9-7 21:20:40 | 显示全部楼层
664571221 发表于 2023-9-7 21:16
波总的代码

(defun c:tt (/ k s ss)

波总改线型记录一下
(defun c:tt (/ e k s)
        (vl-load-com)
        (if  (and (setq e (ssget ":E:S" '((0 . "*LINE,ARC,CIRCLE,ELLIPSE"))))
                                 (setq e (vlax-ename->vla-object (ssname e 0)))
                                 (setq s  (float(vla-get-LinetypeScale e)))
                                 (setq k (getreal (strcat "\nBOBO曰:设置新线型比例<" (rtos s 2 3) ">:")))
                         )
                (vla-put-LinetypeScale e k)
        )       
        (princ)
)


LinetypeScale >> ScaleFactor

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

本版积分规则

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

GMT+8, 2024-11-17 04:57 , Processed in 0.158825 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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