lht 发表于 2011-6-9 17:00:48

怎样判断选择集为空

如题:(setq sss (ssget "f" (list pa pb) '((0 . "spline"))))
怎样判断pa至pb之间有无spline曲线?

renhaitao_nice 发表于 2017-11-23 07:44:49

logoin说的很有道理

168a 发表于 2017-11-22 21:33:54

ssadd很好用,谢谢

duotu007 发表于 2011-6-9 17:04:02

(sslength sss)

lht 发表于 2011-6-9 17:15:55

楼上的招不行的,我之前已试过了.
命令:(sslength sss)
错误 : 参数类型错误: lselsetp nil

Andyhon 发表于 2011-6-9 17:16:41

(if (null sss) "选空了")

lht 发表于 2011-6-9 18:03:54

Andyhon大侠的是高招,谢了!

lenlenq 发表于 2011-6-9 18:13:32

如何判断选择集为空(= (sslength sss) 0)
但为什么楼主会出现“错误 : 参数类型错误: lselsetp nil”的情况呢?
原因很简单,因为sss不是个选择集,只一个值为nil的变量。
空选择集为(setq sss (ssadd))

edata 发表于 2011-6-9 18:20:16




(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 "!!!未选择到对象!!!")
      )
    )
)


highflybir 发表于 2011-6-9 18:28:23

回复 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:01

本帖最后由 logoin 于 2011-6-9 19:47 编辑

我也是用的(if (= (type sss) 'PICKSET)的喔... ...
因为这样可以避免(if (> (sslength sss) 0)当sss为nil时出错...

669423907 发表于 2011-6-10 15:14:43

先收藏,以后弄懂了就会用得着!谢谢各位大师!
页: [1] 2
查看完整版本: 怎样判断选择集为空