怎样判断选择集为空
如题:(setq sss (ssget "f" (list pa pb) '((0 . "spline"))))怎样判断pa至pb之间有无spline曲线?
logoin说的很有道理 ssadd很好用,谢谢 (sslength sss) 楼上的招不行的,我之前已试过了.
命令:(sslength sss)
错误 : 参数类型错误: lselsetp nil (if (null sss) "选空了") Andyhon大侠的是高招,谢了! 如何判断选择集为空(= (sslength sss) 0)
但为什么楼主会出现“错误 : 参数类型错误: lselsetp nil”的情况呢?
原因很简单,因为sss不是个选择集,只一个值为nil的变量。
空选择集为(setq sss (ssadd))
(setq pa (getpoint "指定第一点"))
(if pa
(setq pb (getpoint pa "指定第二点")))
(if (and pa pb)
(progn
(setq sss (ssget "f" (list pa pb) '((0 . "spline")))
)
(if (and sss (= (type sss) 'PICKSET))
(princ (strcat "已选择" (rtos (sslength sss)) "条样条曲线"))
(princ "!!!未选择到对象!!!")
)
)
)
回复 edata 的帖子
楼上(and sss (= (type sss) 'PICKSET)
是否有点画蛇添足的感觉?
ssget的返回值难道还有别的类型吗?
Creates a selection set from the selected object
(ssget ] )
Return Values
The name of the created selection set if successful; otherwise nil if no objects were selected.
本帖最后由 logoin 于 2011-6-9 19:47 编辑
我也是用的(if (= (type sss) 'PICKSET)的喔... ...
因为这样可以避免(if (> (sslength sss) 0)当sss为nil时出错... 先收藏,以后弄懂了就会用得着!谢谢各位大师!
页:
[1]
2