harrison-matt 发表于 2022-7-6 09:32:51

两个尚未解决的问题

全部的
 
我想知道如何将撇号函数添加到我的程序中。
以及如何让ssget在命令启动之前识别选定的对象。
 
有什么想法吗?
 
谨致问候,
 
马特

Ahankhah 发表于 2022-7-6 09:40:33

 
(setvar 'Pickfirst 1)(ssget "_I" )

Ahankhah 发表于 2022-7-6 09:49:46

你能更清楚地解释一下你的目标吗?

alanjt 发表于 2022-7-6 09:58:33

撇号是指透明地运行命令。
如果是这样,任何LISP例程都可以在没有任何命令调用的情况下透明地执行。
 
如。
(defun c:L0 (/ ss i)
(if (setq ss (ssget "_:L"))
   (repeat (setq i (sslength ss))
   (entmod (list '(8 . "0") (cons -1 (ssname ss (setq i (1- i))))))
   )
)
(princ)
)
 
如果您注意到,这可以通过随时键入“L0”透明地执行,如果在执行例程之前选择了对象,则它将处理所述对象,从而抑制选择对象的提示。

Lee Mac 发表于 2022-7-6 10:00:40

ssget将检测现有选择,无论是否使用隐含的“I”模式字符串。
 
至于撇号,我不确定您指的是将表达式标记为文字还是在命令中透明地运行函数。如果是前者,请阅读以下内容:
http://www.cadtutor.net/forum/showpost.php?p=258390&postcount=20
 

harrison-matt 发表于 2022-7-6 10:12:11

 
我在大多数命令中都使用ssget,如果在启动命令之前有一个选择集,它就不会识别该集。
 
马特

alanjt 发表于 2022-7-6 10:17:52

在ssget调用之前有命令调用吗?另外,检查pickfirst变量。

Ahankhah 发表于 2022-7-6 10:23:44

 
李,你说得对,再加上一些必要的解释:
1-如果Pickfirst系统变量设置为1,(ssget)检测现有选择。
2-如果Pickfirst设置为0,(ssget)会提示用户选择所需的对象。
 
那么,“我”的任务是什么?我什么都不想。

Lee Mac 发表于 2022-7-6 10:28:41

 
当PICKFIRST设置为0时。。。我不知道,我总是把它设置为1。

Ahankhah 发表于 2022-7-6 10:39:01

 
我对此进行了测试。它返回一个值,不等待用户输入或选择。这是(ssget“_I”)与(ssget)的区别。
 
页: [1]
查看完整版本: 两个尚未解决的问题