shiyan001 发表于 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'")时就出错,不知哪里出了问题。



sunny20102 发表于 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)
)

shiyan001 发表于 2012-12-31 12:48:04

谢谢两位,解决了。

梦里水香 发表于 2014-6-6 15:24:44

sunny20102 发表于 2012-12-31 08:10 static/image/common/back.gif
经查,该块只有一个属性,所以
(defun c:gatt()
    (vl-load-com)


请教,要是块中有多个属性,又该如何写呢?
页: [1]
查看完整版本: 修改属性值时出错,请帮忙