通信人家园

 找回密码
 注册

只需一步,快速开始

短信验证,便捷登录

搜索

军衔等级:

  新兵

注册:2024-2-23
发表于 2024-2-27 10:55:28 |显示全部楼层
如何用autolisp代码获得属性块中自定义的属性信息,谢谢!

如下图块中的属性值:

无标题.png


举报本楼

军衔等级:

  大将

注册:2004-5-20138
发表于 2024-2-27 11:17:58 |显示全部楼层
有点专业

举报本楼

军衔等级:

  少校

注册:2008-11-2546
发表于 2024-2-27 12:41:49 |显示全部楼层
我不会,

举报本楼

军衔等级:

  中士

注册:2019-4-13
发表于 2024-2-29 10:28:10 |显示全部楼层
没看懂什么意思

举报本楼

军衔等级:

  少将

注册:2006-4-20145

爱心徽章,08年为希望小学奉献爱心纪念徽章 爱心徽章,09年为家园助学活动奉献爱心纪念徽章 爱心徽章,2010年为家园助学活动奉献爱心纪念徽章

发表于 2024-2-29 17:06:01 |显示全部楼层
在AutoLISP中,你可以使用entget函数来获取图元(包括块和属性)的数据列表,然后使用assoc函数来搜索特定的数据项。对于属性块中的自定义属性,你需要先找到块引用,然后找到与之关联的属性定义。

以下是一个简单的示例,该示例将搜索具有特定名称的属性块,并提取出自定义属性的值:

lisp
(defun c:GetAttrValue (/ ss i ent attr_ent attr_val block_name attr_name)  
  (setq block_name "你的块名") ; 替换为你的块名  
  (setq attr_name "你的属性名") ; 替换为你的属性名  
  (setq ss (ssget "x" '((0 . "INSERT") (2 . block_name)))) ; 搜索具有特定名称的块引用  
  (if ss  
    (progn  
      (setq i 0)  
      (repeat (sslength ss)  
        (setq ent (ssname ss i))  
        (setq attr_ent (entget ent))  
        (while (and attr_ent (not (= (type (car attr_ent)) 'LIST)))  
          (setq attr_ent (entnext attr_ent)))  
        (while attr_ent  
          (if (= (cdr (assoc 0 attr_ent)) "ATTRIB")  
            (if (= (cdr (assoc 2 attr_ent)) attr_name)  
              (progn  
                (setq attr_val (cdr (assoc 1 attr_ent)))  
                (princ "\n找到属性值: ")  
                (princ attr_val)  
              )  
            )  
          )  
          (setq attr_ent (entnext attr_ent))  
        )  
        (setq i (1+ i))  
      )  
    )  
    (princ "\n没有找到指定的块.")  
  )  
  (princ)  
)
请注意,这个代码可能无法处理嵌套块中的属性。对于更复杂的情况,你可能需要使用递归搜索或其他更高级的技术。此外,这个代码也没有处理可能发生的错误,例如当块或属性不存在时。在实际使用中,你可能需要添加适当的错误处理代码。

另外,请注意将上述代码中的 "你的块名" 和 "你的属性名" 替换为你实际的块名和属性名。在AutoCAD中运行此代码后,你可以通过在命令行输入 GetAttrValue 来调用这个函数。

举报本楼

军衔等级:

  上等兵

注册:2019-7-22
发表于 2024-3-2 17:29:50 来自手机 |显示全部楼层
感谢的分享  

举报本楼

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

Archiver|手机版|C114 ( 沪ICP备12002291号-1 )|联系我们 |网站地图  

GMT+8, 2024-4-18 15:34 , Processed in 0.114482 second(s), 20 queries , Gzip On.

Copyright © 1999-2023 C114 All Rights Reserved

Discuz Licensed

回顶部