664571221 发表于 2023-9-6 11:32:39

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

本帖最后由 664571221 于 2023-9-6 11:42 编辑

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

ssyfeng 发表于 2023-9-6 11:42:03

需要定制嘛,;P;P

664571221 发表于 2023-9-6 11:43:36

ssyfeng 发表于 2023-9-6 11:42
需要定制嘛,

:lol..........

vitalgg 发表于 2023-9-6 12:04:11

https://atlisp.cn/static/videos/stat-att.mp4

664571221 发表于 2023-9-6 13:10:55

vitalgg 发表于 2023-9-6 12:04


图例可以放上去吗

vitalgg 发表于 2023-9-6 15:12:12

本帖最后由 vitalgg 于 2023-9-6 15:20 编辑

664571221 发表于 2023-9-6 13:10
图例可以放上去吗
有没有一种可能,属性值一样,但是块名不同,样式完全不同。这该放哪个块作为图例?。
一般编程只能解决确定性的问题。

wzg356 发表于 2023-9-6 15:22:32

张家庄的张三,张家村的张三

664571221 发表于 2023-9-6 20:40:41

vitalgg 发表于 2023-9-6 15:12
有没有一种可能,属性值一样,但是块名不同,样式完全不同。这该放哪个块作为图例?。
一般编程只能解决 ...

你说的有道理

664571221 发表于 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)
                )
      )
)

664571221 发表于 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

页: [1]
查看完整版本: 求一个另类块统计,根据块属性值统计图,部分属性值相同可是图块名不同,统计为相同块