Pietari 发表于 2022-7-6 06:07:14

关于使用<未知命令

我在想。。。
 
每当我键入一个不可用的命令时,它都会返回,这当然是有意义的。但是,这可以用于其他一些功能。。。
 
小示例(用处不大,但出于理解目的):如何使用此tekst“you typed:blabla”获取警报并保留错误消息。
 
也许这是不可能的,但人们永远不知道:-)

pBe 发表于 2022-7-6 06:29:28

现在你让我思考

BlackBox 发表于 2022-7-6 06:40:45

 
下面是一个简单的例子。
 
不幸的是,虽然可以钩住UnknownCommand事件,但生成的错误消息是由编辑器发送的(可能是通过调用WriteMessage()方法?),即使NOMUTT==1,也无法阻止。
 
[编辑]-对于这一点,通过可能会更成功。NET API*不确定*
 

(vl-load-com)

(defun c:UnknownCommand ()
(if *UnknownCommandReactor*
   (progn
   (vlr-remove *UnknownCommandReactor*)
   (setq *UnknownCommandReactor* nil)
   (setq onUnknownCommand nil)
   (prompt "\n** Unknown command reactor stopped ** ")
   )
   (progn
   (setq *UnknownCommandReactor*
            (vlr-command-reactor
            "My unknown command reactor"
            '(
                (:vlr-unknowncommand . onUnknownCommand)
               )
            )
   )
   (defun onUnknownCommand (rea cmd)
       (alert (strcat "You typed: \""
                      (car cmd)
                      "\" which isn't a valid command. "
            )
       )
   )
   (prompt "\nUnknown command reactor loaded. ")
   )
)
(princ)
)

pBe 发表于 2022-7-6 06:44:24

 
我的想法完全正确。我记得你可以编辑命令的日子。com文件,并根据您的喜好更改错误消息。风险是的,但这是可以做到的。但不确定acad。

BlackBox 发表于 2022-7-6 07:03:02

不,大多数错误消息基本上都是硬编码的,如果不是接受*异常类型对象或其结果*异常的“helper”方法的话。消息字符串属性,并通过WriteMessage方法调用或其ObjectARX变体(AFAIK)显式写入命令行。

Pietari 发表于 2022-7-6 07:13:52

 
谢谢大家提供的信息。
@黑匣子:这似乎有效。
我没有想过反应堆,好的!
 
@pBe:你说的“现在你让我思考”是什么意思?
 
我可以解释我的想法在哪里。
 
我有一个程序,可以通过一个简单的命令调用。弹出窗口显示(文本字段),我可以在其中输入关键字或数字。
 
它返回特定目录中的任何文件夹名称,其中包含我输入的确切短语。如果我输入“345”,它将返回该目录中包含该部分的任何文件夹名。所以它可能会回来:
“1234567”或“85747345009”或“abc345def”或00011001100345”。
 
对不起,我解释得不好。最终的目标是用windows资源管理器打开该文件夹。当前程序正在运行。
 
所以我在想,如果我不启动一个程序怎么办。只需在命令行上键入关键字,让autocad立即打开所需的目录。
 
为了防止与其他命令发生冲突,它可能会以双星号作为前缀。因此,未知命令“**345”将打开包含“345”的文件夹。
 
好的,现在我看到了另一个问题:如果有更多包含“345”的文件夹怎么办。
哦。我需要反思一下。
页: [1]
查看完整版本: 关于使用<未知命令