EXCEL VBAを使ってAutoCADの円(Circle)を描く方法 – コマンドベース

EXCEL×AutoCAD

はじめに

Excel VBAとAutoCADを組み合わせることで、図面作成の効率化と自動化が可能になります。この記事では、AutoCADのコマンドラインにコマンドを送信して、円(Circle)を描く方法を紹介します。
円は中心点と半径で定義される基本図形であり、設計図面でも頻繁に使用されます。線分と同様に、コマンドベースで描画する方法を習得しておくと、他の図形への応用にも役立ちます。

円(Circle)を描くコマンド

まずはAutoCADのコマンドラインに以下のように入力してみましょう。最後にエンターキーを押すのを忘れずに。

CIRCLE 50,50 25

このコマンドは、中心が (50,50)、半径が25 の円を描きます。

途中でカーソルが自動でコマンドラインから移りスムーズに入力できない場合があります。その時はコマンドラインに「DYNMODE」と入力し、値を「0」にしましょう。試行後、いつもの操作にも戻したい場合はDYNMODEの値を戻すことを忘れずに。

円(Circle)を描くサンプルコード

それでは、Excelに入力した座標と半径を使って円を描くVBAコードを紹介します。以下のようなExcelシートを準備してください。

A2からA3が入力セルになっています。
次にVBAコードです。次のコードをコピーしてエクセルのVBAエディタに貼り付けてください。

VB
Sub DrawCircleByCommand()
  'AutoCADアプリケーションオブジェクトを宣言
  Dim acadApp As Object
  'AutoCADドキュメントオブジェクトを宣言
  Dim acadDoc As Object
  
  '描画に必要な変数の宣言
  Dim centerX As Double  '中心のX座標
  Dim centerY As Double  '中心のY座標
  Dim radius As Double   '円の半径
  Dim commandText As String
  
  'AutoCADが起動していなければ起動し、すでに開いていたら取得する。
  On Error Resume Next
  Set acadApp = GetObject(,"AutoCAD.Application")
  If acadApp Is Nothing Then
    Set acadApp = CreateObject("AutoCAD.Application")
  End If
  On Error GoTo 0
  
  'AutoCADドキュメントを新規作成、または取得する。
  On Error Resume Next
  Set acadDoc = acadApp.ActiveDocument
  If acadDoc Is Nothing Then
    Set acadDoc = acadApp.Documents.Add
  End If
  On Error GoTo 0
  
  'エクセルから値を取得する
  centerX = Cells(2, 1)
  centerY = Cells(2, 2)
  radius = Cells(2, 3)
  
  'コマンド文の作成
  commandText = "CIRCLE " & centerX & "," & centerY & " " & radius
  
  'コマンドの送信
  acadDoc.SendCommand commandText & vbCr
  
  'AutoCADを表示
  acadApp.Visible = True
  
  'メッセージを表示
  MsgBox ”円を描きました!”
  
End Sub
  • 2~5行目でAutoCADのオブジェクトを準備します。
  • 7~11行目が作図に必要な変数です。
  • 13~19行目で、AutoCADオブジェクトをセットします。すでにAutoCADを立ち上げていれば、それをセットし、立ち上げていなければ新規で立ち上げます。
  • 21~27行目で、AutoCADのファイルをセットします。すでに図面を立ち上げていれば、それをセットし、立ち上げていなければ新規でファイルを作成します。
  • 30~32行目でエクセルからの値を取得します。
  • 35行目でコマンド文を作成しています。本コードの肝となる部分です。
  • 38行目でコマンドをAutoCADに送信しています。本コードの肝となる部分その2です。コマンドを確定するため、改行(vbCr)を付け加えます。

おわりに

円は図面の基本構成要素であり、他の図形の基礎にもなります。今回の方法を応用すれば、さまざまな図を描くことができます。ぜひ日常業務に取り入れて、AutoCADの自動化を楽しんでください!

円を描くだけ?いや、これは未来への円環です。

コメント

タイトルとURLをコピーしました