qq229918602 发表于 2012-5-13 23:40:40

关于对象修改及更新的问题

(setq data (entget (car (entsel "\n>>>请选择对象")) '("*")))
(setq oldr (assoc 1 data))
(setq newr (cons 1 1.2))
(setq endata(subst newr oldr data))
(entmod endata)

代码如上,实现选中数字改为1.2,运行上述代码时出现:命令: (entmod endata) ; 错误: DXF 组不正确: (1 . 1.2)
请问这个错误是什么意思???

万分感谢。

690994 发表于 2012-5-14 07:41:25

选中的数字是文字吧

byghbcx 发表于 2012-5-14 07:56:46

1.2是字符"1.2",在这之前运行要加判断,或在选择时加过滤

qq229918602 发表于 2012-5-14 20:16:01

byghbcx 发表于 2012-5-14 07:56 static/image/common/back.gif
1.2是字符"1.2",在这之前运行要加判断,或在选择时加过滤

我只选择一个数字,例如1.5,运行这段代码就出现错误,请问怎么判断??谢谢

qq229918602 发表于 2012-5-14 20:26:49

690994 发表于 2012-5-14 07:41 static/image/common/back.gif
选中的数字是文字吧

选中的是单一的数字。

690994 发表于 2012-5-15 07:50:14

qq229918602 发表于 2012-5-14 20:26 static/image/common/back.gif
选中的是单一的数字。

选中的数字在代码中是文字,不是数字,用(cons 1 "1.2")试试

qq229918602 发表于 2012-5-15 20:49:29

690994 发表于 2012-5-15 07:50 static/image/common/back.gif
选中的数字在代码中是文字,不是数字,用(cons 1 "1.2")试试

加上“”号就可以了,谢谢。还有像问下,不加“”与加“”的意思是??

690994 发表于 2012-5-16 07:50:26

qq229918602 发表于 2012-5-15 20:49 static/image/common/back.gif
加上“”号就可以了,谢谢。还有像问下,不加“”与加“”的意思是??

加了是文字,不加是数字,二者是完全不同类型
页: [1]
查看完整版本: 关于对象修改及更新的问题