zolly 发表于 2024-9-3 10:21:47

飞雪神光 发表于 2024-9-3 10:10


循环中,执行ssget时,不选直接按空格就会出现这个错误:选择对象:; 错误: 参数类型错误: lselsetp nil                  然后就退出程序了

liuhe 发表于 2024-9-3 10:22:59

需求好乱啊,调出while也可以执行while外面的代码啊

zolly 发表于 2024-9-3 10:29:43

tryhi 发表于 2024-9-3 09:57
没看懂在问什么,重新组织一下问题吧

就是while里面有ssget,然后ssget循环几次后,我不想选了,然后到ssget时不选,按空格或回车后就出错,导致整个程序就出错退出了

zolly 发表于 2024-9-3 10:31:57

有可能就是ssget这个命令本身的问题,有没有大神可以解决这个问题

tryhi 发表于 2024-9-3 10:32:07

zolly 发表于 2024-9-3 10:29
就是while里面有ssget,然后ssget循环几次后,我不想选了,然后到ssget时不选,按空格或回车后就出错,导 ...

给出完整代码以及出错提示

飞雪神光 发表于 2024-9-3 10:55:43

zolly 发表于 2024-9-3 10:21
循环中,执行ssget时,不选直接按空格就会出现这个错误:选择对象:; 错误: 参数类型错误: lselsetp nil ...

你在while跳出后又使用ss了?发代码看看

czb203 发表于 2024-9-3 11:07:36

向大佬们学习

dcl1214 发表于 2024-9-3 11:20:10

本帖最后由 dcl1214 于 2024-9-3 19:16 编辑


;徒手写的代码,没有测试,你自己测试,我在群里经常提到这个函数vl-catch-all-apply

(PROGN (SETQ GO T)
       (while GO
   (setq ss (VL-CATCH-ALL-APPLY 'ssget))
   (IF (VL-CATCH-ALL-ERROR-P SS)
   (SETQ SS NIL)
   )
   (IF(and ss (> (SSLENGTH SS) 1))
   (SETQ GO NIL)
   )
   (setq ss NIL)
       )
)

自贡黄明儒 发表于 2024-9-3 11:42:37

本帖最后由 自贡黄明儒 于 2024-9-3 11:44 编辑

dcl1214 发表于 2024-9-3 11:20

太极端了吧,ssget 都要用VL-CATCH-ALL-APPLY ?
(while(setq ss (ssget))
   。。。
)不就好了吗?

tryhi 发表于 2024-9-3 11:49:28

dcl1214 发表于 2024-9-3 11:20


其实他出错并不是ssget,他出错的是SSLENGTH
页: 1 [2] 3
查看完整版本: While循环如何终止ssget