BricsCAD VBAを使ってみよう[1] VBAのインストール

BricsCAD pro V20をちょこちょこ使い始めています。
プログラミングで、OfficeのVBAは使うことが有りVBAなら触れそうなので、VBAでの作図自動化の検討記録を忘備録として残しておきます。
VBAのサンプルコードも残していくようにしますが、こちらの環境でのみの動作確認の為、ご参考としてお願いします。

OS Windows10(64bit)
CAD BricsCAD pro V20 (64bit)
MSOffice2019 (64bit)
が作業環境です。

BricsCAD VBAのインストールが必要です。

インストーラは、BricsCADをインストルした下記フォルダー内に有ります。

C:\Program Files\Bricsys\BricsCAD V20 ja_JP\VBA


フォルダの中の、BricsCAD-VBA-Runtime.exe を実行してインストール
(備考)32bitの場合は、Program Files(×86)に有ります。
現在は、V21を使用していますが、上記V20がV21に変わります。

VBAのインストールができたので、早速使ってみます。

メニューバーのツール(T)の下部にVBAが有り、Visual Basicをクリック

ショートカットキーは、「Alt」+「F11」です。

VBE画面は、英語表記ですが・・・

心配ご無用です。OfficeのVBE画面と全く同じですね。

Insert Moduleで、コード実行用の標準Moduleを作成しておきます。

もしくは、プロジェクトエクスプローラ内で右クリックメニューからでも作成できます。

BricsCADのサンプルコードを使用してプログラミング

取敢えずサクッと速攻お試しで、円を描いてみます。

BricsCAD 開発者のリファレンスのページ
にVBAへのリンクが有ります。

Drawing Circleを選択して、右側のAdd Circleをクリック、AddCircle method exampleをクリックし、ページ下のExamples.「例」..AddCircle method exampleのコードを、VBEのコードウインドウにコピペします。

もしくは、ちょこっと数値だけ変えたコードを以下に置いておきますのでご利用ください。

Option Explicit

Sub AddCircleExample()
' この例では、半径5の円を作成します。
' AddCircleメソッドを使用して図面に追加します。
    ''変数宣言
    Dim ctrPt(0 To 2) As Double
    ''変数にX・Y・Zの座標値を格納
    ctrPt(0) = 5: ctrPt(1) = 5: ctrPt(2) = 0
    ''変数宣言
    Dim myCircle As AcadCircle
    ''円を作図
    Set myCircle = ThisDrawing.ModelSpace.AddCircle(ctrPt, 5)
    ''作成した円を更新
    myCircle.Update
    ''作図範囲にズーム
    ThisDrawing.Application.ZoomExtents
    ''メッセージボックス
    MsgBox "座標5,5,0に半径5の円を作成しました", vbInformation, "AddCircleのサンプル"
End Sub

 

実行ボタン(RunSub)▶かF5キーで実行します。

円か描かれて、MsgBoxが出ます。

OKでVBEの画面に戻ります。

▶の右にある■(Reset)を押しておきます。

プログラムコードの検討中は、この操作で動作確認します。

VbaRun でVBマクロの実行を試してみる

VBEでプログラムコードの作成か完了した後では、VBE画面からは実行しません。

試しに、VBE画面を閉じて、ツール→VBA→マクロ実行(ショートカット「Alt」+「F8」)で、「マクロを実行」のダイアログが表示されます。

Runボタンでマクロを実行します。

マクロ一覧に先ほど作成したModule1のsubプロシージャ名で「Module1.AddCircleExample」が表示されています。

マクロ一覧内は、今はこのsubプロシージャ名のVBAマクロだけです。その他のマクロVBAがロードされている場合は、一覧にその分表示されていますので実行したいマクロを選択してRunします。

 

VBAのコードで円の作図部分はこれですね。
Set myCircle = ThisDrawing.ModelSpace.AddCircle(ctrPt, 4)

 

各コマンドが使えるように検討しながら進めて行きます。

 

今後は、UserFormから実行したり、Excelと連動して読み出しや書込みを行ったりすることを目的にして検討していきます。

 

次ページでは、

まず初めに、上記コードのAddCircleに関して、BricsCADリファレンスのページからVBAの構文に関して確認してみます。

次に、UserFormを使用して、今回のサンプルコードでユーザーフォームからの実行を試してみます。


BricsCAD VBAを使ってみよう[2] UserFormその1

 

作成したページは、検討中に応じて追加訂正している場合もありますので、たまに覘いてみてください。

 

coffee break

64bit・Corei7・・・

学生時代に電子計算機なるばかでっかい代物が学校にあり、パンチング機で穴を開けた紙を入れると、しばらくして、回答の紙がにょろ~~と出てきました。
初めて買ったパソコンは、OSがMSDOS3.3C、CPUは386SXの16bitノートパソコンで、小さいインクジェットプリンター(当時は機能由来の呼び方でバブルジェット)と40MBの外付HDドライブと計算系とドロー系ソフトの2本買って50万以上かかりました。
OSは起動しましたが、買ってから3か月ほどはソフトをびくりとも動かすことができず、ただの使えない箱状態でした・・・/(T__T)\
あれこれ調べて、結局sysファイルとbatファイルの動作に必要な個所を書き込んで、ようやく使えるようになりました。\(^o^)/\(^o^)/\(^o^)/
時代は変わり、今は64bit・Corei7のPCで、電源投入後は案内に従って設定すれば簡単に使えます!
ほんと便利な世の中になりました。

 

BricsCAD VBAを使ってみよう INDEX

BricsCAD VBAを使ってみよう[1] VBAのインストール

BricsCAD VBAを使ってみよう[2] UserFormその1
「BricsCAD VBA 」Creating UserForm

BricsCAD VBAを使ってみよう[3] UserFormその2
「BricsCAD VBA 」SerialNumber drawing with UserForm

BricsCAD VBAを使ってみよう[4] VBAの基本コード①

BricsCAD VBAを使ってみよう[5] VBAの基本コード②

BricsCAD VBAを使ってみよう[6] Excelとの連携①
「BricsCAD VBA to Excel」Get_CoordinateValues

BricsCAD VBAを使ってみよう[7] Excelとの連携② 
「Excel VBA to BricsCAD」Get_Area

BricsCAD VBAを使ってみよう[8] Excelとの連携②-2 
「Excel VBA to BricsCAD」Draw_ChannelSteel

BricsCAD VBAを使ってみよう[9] TABLEの自動作成と値入力
「BricsCAD VBA 」AutomaticCreation of TABLE

BricsCAD VBAを使ってみよう[10] Excelとの連携②-3
「Excel VBA to BricsCAD」SerialNumber_Ⅱ

BricsCAD VBAを使ってみよう[11] Excelとの連携②-4 
「Excel VBA to BricsCAD」Draw_Rectang

BricsCAD VBAを使ってみよう[12] Excelとの連携②-5 指定画層にOffset
「Excel VBA to BricsCAD」Continuous Offset to Specified Layer

BricsCAD VBAを使ってみよう[13] Excelとの連携②-6 指定画層にHATCH
「Excel VBA to BricsCAD」Continuous Hatch to Specified Layer

BricsCAD VBAを使ってみよう[14] Excelとの連携②-7 長さ計測
「Excel VBA to BricsCAD」Get Length

BricsCAD VBAを使ってみよう[15] Excelとの連携②-8 画層状態コントロール
「Excel VBA to BricsCADlayer contr

 

以下検討中です。

◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
「この特集記事の内容につきましては、
こちらの環境のみの検討結果です。
動作保証は出来かねますため、ご参考
資料としてお扱いください。
Windows10(64bit)
BricsCAD pro V20(64bit)
Office2019(64bit)
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇