はじめに
こんにちは!今回は、Excel VBAを使ってAutoCADにポリラインを描く方法をご紹介します。
AutpCADは強力な設計ツールですが、VBAを使うことで自動化や効率化が図れます。
初心者の方でもわかりやすいように、解説していきますので、ぜひ最後までお付き合いください。
VBAの準備
まずは、VBAを使うための準備をしましょう。
ExcelでVBAをエディタを開く
Excelを開き、「Alt + F11」を押してVBAエディタを起動します。
参照設定を行う
VBAエディタで「ツール」→「参照設定」を選択し、「AutoCAD Type Library」にチェックを入れます。
これでAutoCADのオブジェクトをVBAから操作できるようになります。
(たた、本記事の場合は参照設定は不要かもしれません。)
ポリラインを描くサンプルコード
以下はポリラインを描くサンプルコードです。
VB
Sub CreatePolylineInAutoCAD()
Dim acadApp As Object
Dim acadDoc As Object
Dim polyline As Object
Dim pointNum As Long 'ポリラインの頂点の数
Dim points() As Double 'ポリラインの頂点の座標を入れる配列
Dim handle 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を表示
acadApp.Visible = True
'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
'ポリラインの頂点の数を設定
pointNum = 5
ReDim points((pointNum -1) * 2 + 1) 'points()配列の大きさを頂点の数に合わせる
'ポリラインの頂点座標を設定(偶数はZ座標、奇数はY座標)
points(0) = 0 : points(1) = 5
points(2) = -3 : points(3) = -4
points(4) = 4.75 : points(5) = 1.5
points(6) = -4.75 : points(7) = 1.5
points(8) = 3 : points(9) = -4
'ポリラインを作成
Set polyline = acadDoc.ModelSpace.AddLightWeightPolyline(points)
'ポリラインを閉じる(閉じる場合はTrue, 閉じない場合はFalseにする)
polyline.Closed = True
'ポリラインのハンドルを取得
handle = polyline.Handle
'メッセージボックスを表示
MsgBox "ポリラインを作成しました。ポリラインのハンドル: " & handle
'AutoCADを表示
acadApp.Visible = True
End Sub
- 10行目から16行目はAutoCADを起動していたらそれを取得、起動していなければ新規で起動するようにしています。
- 21行目から27行目はAutoCADでファイルを開いていれば取得、開いていなければ新規で開くようにしています。
- 30-31行目でポリラインの頂点を格納する配列を作成しています。ポリラインの頂点を指定するには配列が必要です。その配列の大きさは偶数である必要があります。
- 33行目から38行目で頂点の座標を入力しています。順に点1のX座標、点1のY座標、点2のX座標、点2のY座標と格納していきます。
- 41行目、acadDoc.ModelSpace.AddLightWeightPolyline(points)がポリラインを生成するコードです。引数は先ほど作成した頂点の座標配列です。
編集時の注意点
上記ポリラインの作成コードを編集する際には、以下の点に注意してください。
pointNumにはポリラインの頂点の数を入れます。これによりpoints()の配列の大きさを変えるようにしています。
頂点の数と位置に合わせて、points()の数と中身を調整してください。points()には順に1つ目の点のX座標、Y座標、2つ目の点のX座標、Y座標、3つ目の点のX座標、、、と値を格納します。
おわりに
いかがでしたか? 今回は、Excel VBAを使ってAutoCADにポリラインを描く方法をご紹介しました。
VBAを活用することで、設計作業の効率化が図れますので、ぜひ試してみてください。
この記事が皆さんのお役に立てれば幸いです。楽しんでVBAとAutoCADを活用してくださいね!
「ポリラインの自動化スクリプトがうまくいかないんだけど。。」
「”閉じる”のを忘れてたみたいだね!」
コメント