我正在尝试"c:wd_insym2"
从 .NET 调用内置的 AutoCad Electrical LISP 命令。我最近安装了 AutoCad 2016,它现在具有 Editor.Command 和 Editor.CommandAsync 功能,但是我能找到的所有帮助/论坛帖子都指的是使用它来调用 AutoCad 命令,例如 LINE、CIRCLE 等。我想调用lisp 命令,例如:
(c:wd_insym2 "HPB11.dwg" (list 0 0) 1.0 nil)
在 处插入一个按钮符号0, 0
。
这就是我所得到的(我一直在使用 CommandAsync,因为我之前在使用 Application.Invoke 同步发送该命令时遇到了问题:AutoCad Command Rejected "Undo" when using Application.Invoke()
<CommandMethod("SendCmdAsync", CommandFlags.Modal)>
Async Sub SendCmdAsync()
Dim doc As Document = DocumentManager.MdiActiveDocument
Dim ed As Editor = doc.Editor
Dim cmd As String = "(c:wd_insym2 " & ControlChars.Quote & "HPB11.dwg" & ControlChars.Quote & " (list 0 0) nil nil)"
ed.WriteMessage(vbNewLine & "Trying to execute: <" & cmd & ">" & vbNewLine)
Await ed.CommandAsync(cmd)
ed.WriteMessage(vbNewLine & "Done.")
End Sub
当我运行它时,它显示“LISP 命令不可用”。
我正在做的事情是否可能,如果是,我做错了什么?