明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 14253|回复: 27

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

  [复制链接]
发表于 2003-10-29 22:59:00 | 显示全部楼层 |阅读模式
请问怎样读取属性块中的数据?(是使用AutoLisp的方式)
多谢各位大虾了
发表于 2003-11-1 16:28:00 | 显示全部楼层
3和1是什么,你就不知道查查帮助文件吗????DXF组码,,,
这个程序有些问题,不过不应该没有任何结果,除非你的选择的不是属性块或者属性值为空(注意,这里读的是块定义中属性的值,不是当前引用中属性的值)。
我写这个程序目的是让你看明白怎么读去块中的属性值,你需要的是知道怎么去读,而不是看看结果是什么,即使结果出现了错误,你也应该自己去调试,找到原因,学会这个方法。
发表于 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)
)

点评

有效!!  发表于 2022-12-25 20:38
给力!有效!  发表于 2020-6-27 22:50
发表于 2004-4-15 22:21:00 | 显示全部楼层
来一个爽的:)
  1. ;(getatt ) = 取块的所有属性文本--------vl方法-----by 无痕.2004.4
  2. ;测试: (getatt (car(entsel "\n选择含属性的块:")))
  3. (defun getatt (blk   / attlst lst)
  4.    (setq attlst (vlax-invoke (vlax-ename->vla-object blk) 'GetAttributes ))
  5.    (foreach n attlst (setq lst (append lst (list (vlax-get n 'TextString)))))
  6. )
发表于 2004-5-25 23:48:00 | 显示全部楼层
估计是你选择的块不是带属性的块吧
发表于 2003-10-30 08:17:00 | 显示全部楼层
看看这个程序吧
  1. (Defun SBlock (/ slist sname etbll)
  2.   (setq slist (entget (ssname (ssget) 0)))
  3.   (SetQ sname (Cdr (Assoc 2 slist))
  4.         slist (TblSearch "BLOCK" sname)
  5.   )
  6.   (SetQ sname (Cdr (Assoc -2 slist)))
  7.   (While sname
  8.     (setq slist (entget sname))
  9.     (if (/= (cdr (assoc 3 slist)) nil)
  10.     (princ (cdr (assoc 1 slist)))
  11.       )
  12.     (setq sname (EntNext sname))
  13.   )
  14.   (princ)
  15. )

点评

近20年前的帖子了,还是很好使。点赞!  发表于 2022-12-25 19:31
发表于 2003-11-1 15:58:00 | 显示全部楼层
(if (/= (cdr (assoc 3 slist)) nil)
    (princ (cdr (assoc 1 slist)))
3 和 1 分别代表什么,我查手册查晕了,试了你的程序,没有任何显示结果
发表于 2003-11-1 16:35:00 | 显示全部楼层
我建立了两个块,用不同的名字,你的程序好像是显示块中所有子实体的名字,但我试了没有结果,我知道数字代表群码,只是不知道是什么码,因为在表,块,实体中有很多码的数字是相同的但所代表的意思却不同,我读你的程序很长时间又查帮助,大概知道程序的意思,但为了弄清楚,弄透所以想向你求证
发表于 2003-11-1 16:40:00 | 显示全部楼层
你都知道我读的是子实体的名字了,然后根据你的要求,就应该知道这些子实体是属性定义了,查组码的时候,就该查属性定义的组码了。
我不知道你的为什么会没有任何结果,你把图传上来,我试试。
发表于 2003-11-1 16:44:00 | 显示全部楼层

本帖子中包含更多资源

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

x
发表于 2003-11-20 11:35:00 | 显示全部楼层
太謝謝了,我正需要這個程式
发表于 2003-11-20 12:00:00 | 显示全部楼层
呵呵. 我試試 : D
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 19:18 , Processed in 0.202595 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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