コマンド ラインにアクセスする(.NET)

SendStringToExecute メソッドを使用してコマンドを直接コマンド ラインに送ることができます。SendStringToExecute メソッドでは、単一の文字列をコマンド ラインに送ります。文字列には、実行されたコマンドが予期するプロンプト シーケンス順に、引数がリストされていなければなりません。

文字列中の空白や ASCII コードでキャリッジ リターンに対応するものは、キーボードで[Enter]を押すのと同じです。AutoLISP 環境と違い、引数のない SendStringToExecute メソッドの呼び出しは無効です。

SendStringToExecute で実行されるコマンドは非同期であり、.NET コマンドが終了するまで実行されません。コマンドを即座に(同期的に)実行する必要がある場合は、次の方法を使用します。

コマンド ラインにコマンドを送る

次の例は、中心が (2, 2, 0) で半径が 4 の円を作成します。次に、図面は図面内のすべてのジオメトリに拡大ズームされます。文字列の最後には、コマンドの実行を開始するため、[Enter]を示す空白があることに注意してください。

VB.NET

Imports Autodesk.AutoCAD.ApplicationServices
Imports Autodesk.AutoCAD.Runtime
 
<CommandMethod("SendACommandToAutoCAD")> _
Public Sub SendACommandToAutoCAD()
  Dim acDoc As Document = Application.DocumentManager.MdiActiveDocument
 
  '' Draws a circle and zooms to the extents or 
  '' limits of the drawing
  acDoc.SendStringToExecute("._circle 2,2,0 4 ", True, False, False)
  acDoc.SendStringToExecute("._zoom _all ", True, False, False)
End Sub

C#

using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.Runtime;
 
[CommandMethod("SendACommandToAutoCAD")]
public static void SendACommandToAutoCAD()
{
  Document acDoc = Application.DocumentManager.MdiActiveDocument;
 
  // Draws a circle and zooms to the extents or 
  // limits of the drawing
  acDoc.SendStringToExecute("._circle 2,2,0 4 ", true, false, false);
  acDoc.SendStringToExecute("._zoom _all ", true, false, false);
}

VBA/ActiveX コード リファレンス

Sub SendACommandToAutoCAD()
   ' Draws a circle and zooms to the extents or 
   ' limits of the drawing
   ThisDrawing.SendCommand "_Circle 2,2,0 4 "
   ThisDrawing.SendCommand "_zoom a "
End Sub