この記事はこのような人に向けて書いています。
こんにちは。ゆー です。
皆さんはVBAを使ってiCADを自動化したことはありますか。
他にもiCADを動かすためのサンプルコードはiCADサポートセンターページやコマンド簡易開発ガイドから得ることができます。
しかしサンプルコードを試してiCADを動かしみるだけでは、ちょっともの足りないですよね。
自分好みのツールをもっとサクサク作りたいな・・・。
そう感じてても、ゼロから自動化ツールを作成するのは大変です。
例えば円を一つ描くツールを作るにしても・・・
といったような手間が発生します。
実際のプログラム作成では、こういったことを何百回もやる場合もあるので、
あぁ・・・、もぅダメ、面倒くさい・・・
と挫折する人が多いです。そこで・・・
私が自作したiCAD向けVBAライブラリをご活用ください!!
ここでいう「ライブラリ」とはプログラミング用語の一つで、簡単に言うと「誰もがよく使う部分のコードを使いやすくするよう集めたもの」です。
この記事で紹介する私の自作ライブラリを使うことで、お手軽にVBAでiCADツールを作ることができるようになります。
自由にダウンロードして使うことができるので、是非この記事を見ながらプログラミングに挑戦してみてください。
こちらの記事からファイルををダウンロードしてください。
ダウンロードしたファイルを以下の方法でインポートしてください。
インポート方法
プログラムは下記の手順で作成します。
まずはコードウィンドウにSub ◯◯()を入力します。(◯◯は任意の文字列、Subと◯◯の間には半角スペース)
例として Sub TEST_CircleDrawing() と入力すると、自動的にEnd Subも入力されます。
Sub TEST_CircleDrawing() End Sub
このSub~End Subのことを、Subプロシージャといいます。
以降、このSubプロシージャの中にコードを追加していきます。
Subプロシージャの最初には以下の文言を記入します。
Sub TEST_CircleDrawing() '↓↓↓------追加------↓↓↓------追加------↓↓↓------追加------↓↓↓ Dim myObject As Object Set myObject = CreateObject("ICAD.Application") '↑↑↑------追加------↑↑↑------追加------↑↑↑------追加------↑↑↑ End Sub
この作業によってVBAからiCADに命令を送れるようになります。
インポートしたライブラリはたくさんの関数(Functionプロシージャ)で構成されています。
関数(Functionプロシージャ)とは下記のようにFunction ~ End Functionで構成されているコードです。
Function 関数の名前(引数 As 型式) As 関数の型式 関数の処理内容 End Function
ライブラリから必要な関数を呼び出して使用してください。
関数を呼び出す書き方はいくつかありますが、以下のような記載をおすすめします。
If 呼び出したい関数(myObject) = False Then Exit Sub End If
この文は「呼び出したい関数でエラーが出た場合、Subプロシージャを終了する」という意味です。
例えば「iCADの起動確認」「2D画面への移動」「円の作図」を呼び出すには以下のように作成します。
上述のコードではこのようなフローでiCADを操作しています。
エラーが起こったらすぐにプロシージャを終了させることで、次の処理に進んでさらにエラーを生むことを防ぐことができます。
ライブラリの関数を使用するには◯◯◯(myObject)や◯◯◯(myObject, -10, 10, 20)のように括弧内に記入が必要です。
この括弧内に記入する内容を引数といいます。
どのような引数が必要かはコード毎に異なります。
コードのコメントに必要な引数の種類が書いてあります。
例えばこれはライブラリ「ICAD_Drawing」内のDrawCircleの場合です。
第一引数がmyObject、第二引数がdx:円の中心座標(x)、第三引数がdy:円の中心座標(y)、第四引数がdr:円の半径なので、下記のように記入します。
Sub TEST_CircleDrawing() Dim myObject As Object Set myObject = CreateObject("ICAD.Application") '↓↓↓------追加------↓↓↓------追加------↓↓↓------追加------↓↓↓ '座標(-10, 10)を中心とする半径20の円を作図する If DrawCircle(myObject, -10, 10, 20) = False Then Exit Sub End If '↑↑↑------追加------↑↑↑------追加------↑↑↑------追加------↑↑↑ End Sub
引数の数や順番が間違っているとエラーになったり、意図と異なる動作になるので注意してください。
iCADを起動し、3D画面が表示されている状態で作成したプログラムを実行してみましょう。
円を自動作図するプログラムを作ることができました!
ライブラリの使用例として、どのようなツールが作れるか実例を用意いたしました。
下記よりダウンロードしたファイルを解凍し、エクセルファイルを確認してください。
実例ダウンロード
それぞれのコードの内容を確認してみれば、ツール作成の参考にできると思います。
任意のサイズ、角の数の正多角柱を自動生成できます。
比較的シンプルな内容なので、まずはこちらを確認していただければツール自作の参考になると思います。
3Dモデルの編集(集合演算やトリム)を使用した例です。
エクセルのシートにあらかじめ一覧を作っておくことで、特定のパターンを自動モデリングする例です。
iCADのVB I/Fヘルプ(C:\ICADSX\HELP\ICADOLEA.chm)に用意されているGD関数を活用した例です。
GD関数を使えば2D上の要素(この例では円弧)の座標や寸法を取得できます。
それを活用して円弧の補助線を作成することができます。
GD関数を使って円の座標を取得しても、その座標を通る円の座標を求める計算は複雑です。
そこで、一度エクセルの別のシート(計算シート)に座標を書き出して計算しています。
このようにエクセルの機能を活用することができることもVBAでツールを作るメリットです。
他にも工夫次第で色々なツールが作れます。
自分や周囲の困りごとを解決するツール作成に挑戦しましょう!
本ブログ記事に掲載しているiCADの画像についての注意事項です。
iCAD ✕ VBAライブラリ一覧表
iCAD ✕ VBAライブラリ活用事例解説【正多角柱の自動生成ツール】