EXCEL VBA をつかったAutoCADのオフセットラインを作図する方法

EXCEL×AutoCAD

はじめに

AutoCADでオフセットラインを作図することは、設計や製図の際に非常に便利です。この記事では、Excel VBAをつかってAutoCADのオフセットラインを作図する方法を紹介します。さらに、オフセットは線分だけではなく、他のオブジェクトにも適用できることを説明します。

必要な準備

  1. AutoCADとExcelのインストール:AutoCADとExcelがインストールされていることを確認してください。
  2. VBAの設定:ExcelでVBAを使用するために、開発者タブを有効にします。
  3. Excelを開き、Alt+F11キーを押してVBAエディタを開きます。
  4. 「ツール」メニューから「参照設定」を選択し、「AutoCAD Type Library」にチェックを入れます

EXCELでのVBAの準備

次に、簡単に平行寸法線を追加できるFunctionプロシージャを紹介しますが、その前に準備が必要です。AutoCADのオブジェクトライブラリを参照設定を行います。下記操作を行ってください。

  • VBAエディタのメニューから「ツール」→「参照設定」を選択します。
  • リストから「AutoCAD Type Library」または「AutoCAD Object Libraly」を選択し、チェックを入れて「OK」をクリックします。
    (※Verにより多少名称が変わるかもしれません。「AutoCAD 2021 Type Library」など。)

オフセットラインを作図するサンプルコード

次に、AutoCADでオフセットラインを作図するVBAコードを作成します。まずは、基準となる線を引き、そこから2の距離の位置にオフセットラインを描くサンプルコードです。
以下のコードをVBAエディタに入力してください。

VB
Sub CreateOffsetLine()
  Dim acadApp As Object
  Dim acadDoc As Object
  Dim baseLine As Object
  Dim offsetLine As Variant
  Dim offsetDistance As Double
  
  '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
  
  '始点と終点を入れる変数の宣言
  Dim startPt(0 To 2) As Double
  Dim endPt(0 To 2) As Double
  
  '始点を設定
  startPt(0) = 0 'X座標
  startPt(1) = 0 'Y座標
  startPt(2) = 0 'Z座標
  
  '終点を設定
  endPt(0) = 10 'X座標
  endPt(1) = 0 'Y座標
  endPt(2) = 0 'Z座標
  
  
  '基本となる線分を作図
  Set baseLine = acadDoc.ModelSpace.AddLine(startPt, endPt)
  
  'オフセット距離を設定
  offsetDistance = 2.0
  
  'オフセットラインを作図
  offsetLine = baseLine.Offset(offsetDistance)
  
  'メッセージを表示
  MsgBox "オフセットラインを描きました"
  
  'AutoCADを表示
  acadApp.Visible = True

End Sub

オフセットサークルを作図するサンプルコード

先ほどのコードは、線分に対してオフセットを適用しましたが、他のオブジェクトも同様にオフセットを適用できます。例えば、円やポリラインなどです。次は円に対してオフセットを適用するサンプルコードを紹介します。

VB
 Sub CreateOffsetCircle()
  Dim acadApp As Object
  Dim acadDoc As Object
  Dim baseCircle As Object
  Dim offsetCircle As Variant
  Dim offsetDistance As Double
  
  '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
  
  '始点と半径を入れる変数の宣言
  Dim startPt(0 To 2) As Double
  Dim radius As Double
  
  '始点を設定
  startPt(0) = 0 'X座標
  startPt(1) = 0 'Y座標
  startPt(2) = 0 'Z座標
  
  '半径を設定
  radius = 10
  
  '基本となる円を作図
  Set baseCircle = acadDoc.ModelSpace.AddCircle(startPt, radius)
  
  'オフセット距離を設定
  offsetDistance = 1.0
  
  'オフセット円を作成
  offsetCircle = baseCircle.Offset(offsetDistance)
  
  'AutoCADを表示
  acadApp.Visible = True
    
  'メッセージを表示
  MsgBox "オフセットサークルを描きました"

End Sub

おわりに

この記事では、Excel VBAを使ってAutoCADのオフセットラインを作図する方法を紹介しました。オフセットは線分だけでなく、円やポリラインなどほかのオブジェクトにも適用できます。これにより、設計作業がより効率的に行えるようになります。ぜひ試してみてください。

オフセットのしすぎで、現実でも距離を置かれないように気をつけましょう。

コメント

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