JJtre 发表于 2022-7-5 20:23:07

 
好的,我再打一次,但我有一个问题,这意味着什么
“_+:E:S”?直到我开始这项任务,我才看到这一点。谢谢李的信心提升。

Lee Mac 发表于 2022-7-5 20:25:35

 
这是ssget模式字符串的组合,其中有两个未记录:
 

_= allow for language compatibility
+. = force point selection (similar to PICKAUTO=0)
:E = select everything in the cursor aperture
:S = forces single entity selection

 
关于您的任务,您是否希望为选择中的所有块检索特定标记的值?还是所有标记的所有值?这两种方法都可以实现,您只需要考虑如何构建列表输出。
 

Lee Mac 发表于 2022-7-5 20:31:17

在检索多个值的示例中,使用了与我前面的链接中演示的相同的方法。
 
选择后,将构造一个列表并打印到命令行,该列表采用以下形式:
 
((<tag1> <value1> ... <valueN>) (<tag2> <value1> ... <valueN>) ... (<tagN> <value1> ... <valueN>))

(defun c:test ( / _assoc++ ss )
;; Example by Lee Mac 2010 www.lee-mac.com

(defun _assoc++ ( key value lst )
   (
   (lambda ( pair )
       (if pair
         (subst (cons key (cons value (cdr pair))) pair lst)
         (cons(list key value) lst)
       )
   )
   (assoc key lst)
   )
)

(if (setq ss (ssget '((0 . "INSERT") (66 . 1))))
   (
   (lambda ( i / e el l )
       (while (setq e (ssname ss (setq i (1+ i))))
         (while
         (not
             (eq "SEQEND"
               (cdr
               (assoc 0
                   (setq el
                     (entget
                     (setq e (entnext e))
                     )
                   )
               )
               )
             )
         )
         (setq l (_assoc++ (cdr (assoc 2 el)) (cdr (assoc 1 el)) l))
         )
       )
       (print l)
   )
   -1
   )
)

(princ)
)

JJtre 发表于 2022-7-5 20:33:02

谢谢,这几乎正是我想要的。谢谢你的帮助李。

Lee Mac 发表于 2022-7-5 20:39:35

 
不客气,JJtre-我相信你可以根据需要操作它。
 
下次,不要那么轻易放弃

sanalmakina 发表于 2022-7-5 20:41:19

 
你好
 
这段代码对我也很有用,但我想用这种排列方式将值列在文本文件中:
 

 
DN200-VA-002
DN200-VA-003
 
我有一个原理图dwg文件,我想列出阀门、楼梯等。
 
阀门属性。块名称:
阀门标签块
区块中有两个标题:
#(目标对象大小)
#(目标对象标签)
 
你能帮我吗?
页: 1 [2]
查看完整版本: 如何获取属性信息