只需一步,快速开始
如果图块有两个属性,先vla-Delete掉一个,然后再用vla-getattributes就不起作用了,保存后关闭文件后重新打开又能用vla-getattributes ,大家测试下看看,下面是测试步骤:
1、如果一个块有两个或者多个属性,先vla-Delete一个属性
2、然后执行下面这段,下面这段执行到红色部分就出错:
(defun c:tt (/ BLKREF) (setq BLKREF (vlax-ename->vla-object (car (entsel)))) (vla-getattributes BLKREF))
但是保存后关闭文件,再重新打开又能用vla-getattributes
使用道具 举报
(defun c:tt (/ BLKREF) (setq BLKREF (vlax-ename->vla-object (car (entsel)))) (vla-getattributes BLKREF) (vlax-method-applicable-p BLKREF "attributes");返回NIL)
是否能得到图像对象的属性要判断图形是否有该属性!
上面语句返回NIL ,证明该对象没有attributes属性,当然无法返回值。
(Defun c: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))
以上程序可以帮你,具体详见http://bbs.mjtd.com/forum.php?mod=viewthread&tid=11957
正常调用应该是(vla-get-attributes BLKREF)
不是(vla-getattributes BLKREF)吧,
输入(vla-get-attributes BLKREF)显示不可用的,没有变成蓝色!
vla-getattributes和(vla-get-attributes BLKREF)应该是一回事,获取属性都是不可用的,但我图里的确实有属性
getattributes 是方法
没有 attributes 属性
无痕发表于2008-1-27 12:37:00getattributes 是方法没有 attributes 属性
有属性,打开我图就知道了,只是我删除了一个
没有变蓝,是因为你没有加载vlisp支持函数,试试
(defun c:tt (/ BLKREF) (vl-load-com) (setq BLKREF (vlax-ename->vla-object (car (entsel)))) (vla-getattributes BLKREF))
保存关闭文件后重新打开又能用vla-getattributes ,不知道怎么回事:
如果图块有两个属性,先vla-Delete掉一个,然后再用vla-getattributes就不起作用了,如果关掉文件vla-getattributes又能取出属性
这到底是怎么回事?大家测试下看看
本版积分规则 发表回复 回帖后跳转到最后一页
小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 ) ©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途
GMT+8, 2024-4-26 22:10 , Processed in 1.199194 second(s), 28 queries , Gzip On.
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.