明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1353|回复: 3

修改属性值时出错,请帮忙

[复制链接]
发表于 2012-12-30 22:34:25 | 显示全部楼层 |阅读模式
本帖最后由 shiyan001 于 2012-12-30 22:35 编辑

(defun c:gatt()
    (vl-load-com)
    (setq bzpt (list 100 100))
    (command "insert" "lwzss" bzpt 1 1 0 )
    (setq wtblock (entlast))
    (setq attvlaue(vlax-ename->vla-object wtblock))
    (setq att-list(vlax-safearray->list(vlax-variant-value(vla-getattributes attvlaue))))
    (setq wtjdatt(vla-get-textstring(car att-list)))
    (vla-put-textstring wtjdatt "10°12'")
    (vla-update wtjdatt)
)
错误如下:
命令: gatt
insert 输入块名或 [?] <lwzss>: lwzss
单位: 毫米   转换:    1.0000
指定插入点或 [基点(B)/比例(S)/X/Y/Z/旋转(R)]:
输入 X 比例因子,指定对角点,或 [角点(C)/XYZ(XYZ)] <1>: 1 输入 Y 比例因子或 <使用 X 比例因子>: 1
指定旋转角度 <0>: 0
命令: ; 错误: 参数类型错误: VLA-OBJECT "6°12'"

6°12'是块的原属性值,而且块中只有这一个属性,执行到(vla-put-textstring wtjdatt "10°12'")时就出错,不知哪里出了问题。



本帖子中包含更多资源

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

x

点评

不是已经告诉你了吗,参数类型错误!wtjdatt不是vla对象,当然要出错  发表于 2012-12-31 00:00
发表于 2012-12-31 08:10:39 | 显示全部楼层
经查,该块只有一个属性,所以
(defun c:gatt()
    (vl-load-com)
    (setq bzpt (list 100 100))
    (command "insert" "lwzss" bzpt 1 1 0 )
    (setq wtblock (entlast))
    (setq attvalue(vlax-ename->vla-object wtblock))
    (setq att-list(vlax-safearray->list(vlax-variant-value(vla-getattributes attvalue))))
    (foreach att att-list
              (vla-put-textstring att "10°12'")
    )
    (vla-update attvalue)
)

 楼主| 发表于 2012-12-31 12:48:04 | 显示全部楼层
谢谢两位,解决了。
发表于 2014-6-6 15:24:44 | 显示全部楼层
sunny20102 发表于 2012-12-31 08:10
经查,该块只有一个属性,所以
(defun c:gatt()
    (vl-load-com)

请教,要是块中有多个属性,又该如何写呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-24 16:04 , Processed in 0.179530 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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