lzg8877 发表于 2013-5-10 08:06:43

点选 两面积出错求助

感谢看贴
请选择第二个面积:; 错误: 除数为零   出错了请选择第二个面积:; 错误: 参数类型错误: stringp nil   多义线的面积也是
      希望多义线面积 面域面积 都可以计算例:1000MM 除800MM=1.25
(defun c:lzg8877 ()
(setq      en1 (entsel "\n请选择第一个面积:")
      en2 (entsel "\n请选择第二个面积:")
      num1(atof(cdr(assoc 1(entget(car en1)))))
      num2(atof(cdr(assoc 1(entget(car en2)))))
)
(princ (/ num1 num2))
)

ZZXXQQ 发表于 2013-5-10 08:17:34

不明白?从程序中看是计算单行文本的数字结果,与多义线、面域无关。

lzg8877 发表于 2013-5-10 09:39:46

那能不能帮我改成从 命令行看结果?

lzg8877 发表于 2013-5-10 09:44:01

请问 为什么也没提示 计算结果 点出显示在那里呀 、、
直接显示 请选择第二个面积:; 错误: 参数类型错误: stringp nil   
请求改进

ll_j 发表于 2013-5-10 09:44:12

lzg8877 发表于 2013-5-10 09:39 static/image/common/back.gif
那能不能帮我改成从 命令行看结果?

查询面积,是先使用area命令,随后(紧接着)查询系统变量area,在实体信息中是没有面积信息的。

lzg8877 发表于 2013-5-10 10:39:27

ll_j你好 不明白你所说的

ll_j 发表于 2013-5-10 10:49:57

lzg8877 发表于 2013-5-10 10:39 static/image/common/back.gif
ll_j你好 不明白你所说的

这样试试:

(defun c:lzg8877 ()
(setqen1 (entsel "\n请选择第一个面积:")
            en2 (entsel "\n请选择第二个面积:")
)
(command ".area" "o" en1)
(setq num1 (getvar "area"))
(command ".area" "o" en2)
(setq num2 (getvar "area"))
(princ "\n面积倍数为:")
(princ (/ num1 num2))
(princ)
)

革天明 发表于 2013-5-10 11:24:32


我的程序主要适用于这样的例子,100/3.3=30.303

代码就是一楼的那个,另外建议楼主把你的dwg上传上去,不然问题不明不白的会浪费大家的精力

zyhandw 发表于 2013-5-10 11:57:55

所选文字有错吧,是不是第二个面积选了“0”了。其它的,运行还是没问题的

zml84 发表于 2013-5-10 14:25:49


页: [1] 2
查看完整版本: 点选 两面积出错求助