"c:wd_insym2"
.NET から組み込みの AutoCad Electrical LISP コマンドを呼び出そうとしています。最近、AutoCad 2016 をインストールしました。AutoCad 2016 には Editor.Command および Editor.CommandAsync 関数が含まれていますが、見つけることができるすべてのヘルプ/フォーラムの投稿は、それを使用して LINE、CIRCLE などの AutoCad コマンドを呼び出すことを参照しています。次のようなlispコマンド:
(c:wd_insym2 "HPB11.dwg" (list 0 0) 1.0 nil)
に押しボタン記号を挿入し0, 0
ます。
これが私が得たものです(以前にApplication.Invokeを使用してそのコマンドを同期的に送信するのに問題があったため、CommandAsyncを使用しています: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 コマンドは使用できません」と表示されます。
私がやっていることは可能ですか?もしそうなら、何が間違っていますか?