ssget 条件选择为空返回nil时,想对该次选择进行如下提示(princ 0),AUTOLISP应如何编程

在一个图形中有不同孔径的圆φ9、φ11、φ13、φ19,程序设置对φ9、φ11、φ13、φ15、φ17、φ19、φ21的圆分别进行条件选择并输出相应圆数量,当选择条件为φ15时,因为没有符合条件的选择对象,选择为空,
程序运行提示错误: 参数类型错误: lselsetp nil,程序运行中止,未能继续后面的选择与输出

如何编写程序可以使之在选择为空时输出选择数量为”0“ ?

加个 IF 语句,把空返回值赋值为 0追问

如何给空返回赋值为0

追答

格式就这样:,具体自己写了:

if xx nil
setq zz 0

追问

(DEFUN C:fin()
...
(if (= (ssget "W" a b '((0 . "CIRCLE")(40 . 3.5))) nil)(SETQ gop2 0)

(SETQ gop2 (ssget "W" a b '((0 . "CIRCLE")(40 . 3.5)))))

结果如下
Number of D9:1 个
Number of D7:; 错误: 参数类型错误: lselsetp 0

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-06-18
我常用的一种方式,用于选择多段线,参照:http://wenku.baidu.com/view/3daa6a68ad02de80d5d8401d.html