xiaowa 发表于 2003-10-29 22:59:00

请问怎样读取属性块中的数据?

请问怎样读取属性块中的数据?(是使用AutoLisp的方式)
多谢各位大虾了

alin 发表于 2003-11-1 22:06:00

(Defun attblk(/ ename LOOP elist)
(setq ename (entnext (car (entsel))))
(setq LOOP T)
(While (and ename LOOP)
    (setq elist (entget ename))
    (if (= (cdr (assoc 0 elist)) "ATTRIB")
      (progn
           (princ (cdr (assoc 2 elist)))
           (princ " ----> ")
           (princ (cdr (assoc 1 elist)))
         (princ "\n")
        )
      (setq LOOP nil)
    )
    (setq ename (EntNext ename))
)
(princ)
)

meflying 发表于 2003-11-1 16:28:00

3和1是什么,你就不知道查查帮助文件吗????DXF组码,,,
这个程序有些问题,不过不应该没有任何结果,除非你的选择的不是属性块或者属性值为空(注意,这里读的是块定义中属性的值,不是当前引用中属性的值)。
我写这个程序目的是让你看明白怎么读去块中的属性值,你需要的是知道怎么去读,而不是看看结果是什么,即使结果出现了错误,你也应该自己去调试,找到原因,学会这个方法。

无痕 发表于 2004-4-15 22:21:00

来一个爽的:);(getatt ) = 取块的所有属性文本--------vl方法-----by 无痕.2004.4
;测试: (getatt (car(entsel "\n选择含属性的块:")))
(defun getatt (blk   / attlst lst)
   (setq attlst (vlax-invoke (vlax-ename->vla-object blk) 'GetAttributes ))
   (foreach n attlst (setq lst (append lst (list (vlax-get n 'TextString)))))
)

meflying 发表于 2004-5-25 23:48:00

估计是你选择的块不是带属性的块吧

meflying 发表于 2003-10-30 08:17:00

看看这个程序吧
(Defun SBlock (/ slist sname etbll)
(setq slist (entget (ssname (ssget) 0)))
(SetQ sname (Cdr (Assoc 2 slist))
        slist (TblSearch "BLOCK" sname)
)
(SetQ sname (Cdr (Assoc -2 slist)))
(While sname
    (setq slist (entget sname))
    (if (/= (cdr (assoc 3 slist)) nil)
    (princ (cdr (assoc 1 slist)))
      )
    (setq sname (EntNext sname))
)
(princ)
)

bigboom 发表于 2003-11-1 15:58:00

(if (/= (cdr (assoc 3 slist)) nil)
    (princ (cdr (assoc 1 slist)))
3 和 1 分别代表什么,我查手册查晕了,试了你的程序,没有任何显示结果

bigboom 发表于 2003-11-1 16:35:00

我建立了两个块,用不同的名字,你的程序好像是显示块中所有子实体的名字,但我试了没有结果,我知道数字代表群码,只是不知道是什么码,因为在表,块,实体中有很多码的数字是相同的但所代表的意思却不同,我读你的程序很长时间又查帮助,大概知道程序的意思,但为了弄清楚,弄透所以想向你求证

meflying 发表于 2003-11-1 16:40:00

你都知道我读的是子实体的名字了,然后根据你的要求,就应该知道这些子实体是属性定义了,查组码的时候,就该查属性定义的组码了。
我不知道你的为什么会没有任何结果,你把图传上来,我试试。

bigboom 发表于 2003-11-1 16:44:00

wangyue 发表于 2003-11-20 11:35:00

太謝謝了,我正需要這個程式

BDYCAD 发表于 2003-11-20 12:00:00

呵呵. 我試試 : D
页: [1] 2 3
查看完整版本: 请问怎样读取属性块中的数据?