はじめに
AutoCADでオフセットラインを作図することは、設計や製図の際に非常に便利です。この記事では、Excel VBAをつかってAutoCADのオフセットラインを作図する方法を紹介します。さらに、オフセットは線分だけではなく、他のオブジェクトにも適用できることを説明します。
必要な準備
- AutoCADとExcelのインストール:AutoCADとExcelがインストールされていることを確認してください。
- VBAの設定:ExcelでVBAを使用するために、開発者タブを有効にします。
- Excelを開き、Alt+F11キーを押してVBAエディタを開きます。
- 「ツール」メニューから「参照設定」を選択し、「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のオフセットラインを作図する方法を紹介しました。オフセットは線分だけでなく、円やポリラインなどほかのオブジェクトにも適用できます。これにより、設計作業がより効率的に行えるようになります。ぜひ試してみてください。

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