修改属性值时出错,请帮忙
本帖最后由 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'")时就出错,不知哪里出了问题。
经查,该块只有一个属性,所以
(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)
)
谢谢两位,解决了。
sunny20102 发表于 2012-12-31 08:10 static/image/common/back.gif
经查,该块只有一个属性,所以
(defun c:gatt()
(vl-load-com)
请教,要是块中有多个属性,又该如何写呢?
页:
[1]