自動化ツールがサクサク作れる!iCAD ✕ VBAライブラリ活用方法

iCAD SX 更新:

この記事はこのような人に向けて書いています。

  • VBAでiCAD用ツールを作れるようになりたい人
  • 自作ツールを作って職場で自慢したい人

こんにちは。ゆー です。

皆さんはVBAを使ってiCADを自動化したことはありますか。

他にもiCADを動かすためのサンプルコードはiCADサポートセンターページやコマンド簡易開発ガイドから得ることができます。

しかしサンプルコードを試してiCADを動かしみるだけでは、ちょっともの足りないですよね。

自分好みのツールをもっとサクサク作りたいな・・・。

そう感じてても、ゼロから自動化ツールを作成するのは大変です。

例えば円を一つ描くツールを作るにしても・・・

  • iCADのヘルプを調べて、
  • 自分でアレンジをしながらプログラムを書いて、
  • バグがないかをテストして、・・・

といったような手間が発生します。

実際のプログラム作成では、こういったことを何百回もやる場合もあるので、

あぁ・・・、もぅダメ、面倒くさい・・・

と挫折する人が多いです。そこで・・・

私が自作したiCAD向けVBAライブラリをご活用ください!!

ここでいう「ライブラリ」とはプログラミング用語の一つで、簡単に言うと「誰もがよく使う部分のコードを使いやすくするよう集めたもの」です。

この記事で紹介する私の自作ライブラリを使うことで、お手軽にVBAでiCADツールを作ることができるようになります。

自由にダウンロードして使うことができるので、是非この記事を見ながらプログラミングに挑戦してみてください。

設定方法

ファイルのダウンロード

こちらの記事からファイルををダウンロードしてください。

インポート

ダウンロードしたファイルを以下の方法でインポートしてください。

インポート方法

  1. エクセルを起動
  2. VBエディターを起動
  3. VBエディターの ファイル(F) → ファイルのインポート
  4. ダウンロードした.basファイルを開く
  5. 標準モジュールにライブラリがインポートされる

基本的なコードの書き方

プログラムは下記の手順で作成します。

1. Sub〇〇()を作成

まずはコードウィンドウにSub ◯◯()を入力します。(◯◯は任意の文字列、Subと◯◯の間には半角スペース)

例として Sub TEST_CircleDrawing() と入力すると、自動的にEnd Subも入力されます。

Sub TEST_CircleDrawing()
    
End Sub

このSub~End Subのことを、Subプロシージャといいます。

以降、このSubプロシージャの中にコードを追加していきます

2. オブジェクトにICAD.Applicationを設定

Subプロシージャの最初には以下の文言を記入します。

Sub TEST_CircleDrawing()
'↓↓↓------追加------↓↓↓------追加------↓↓↓------追加------↓↓↓
    Dim myObject As Object
    Set myObject = CreateObject("ICAD.Application")
'↑↑↑------追加------↑↑↑------追加------↑↑↑------追加------↑↑↑
End Sub

この作業によってVBAからiCADに命令を送れるようになります。

3. 呼び出したい関数をライブラリからコピペ

インポートしたライブラリはたくさんの関数(Functionプロシージャ)で構成されています。

関数(Functionプロシージャ)とは下記のようにFunction ~ End Functionで構成されているコードです。

Function 関数の名前(引数 As 型式) As 関数の型式
    関数の処理内容
End Function

ライブラリから必要な関数を呼び出して使用してください。

関数を呼び出す書き方はいくつかありますが、以下のような記載をおすすめします。

    If 呼び出したい関数(myObject) = False Then
        Exit Sub
    End If

この文は「呼び出したい関数でエラーが出た場合、Subプロシージャを終了する」という意味です。

例えば「iCADの起動確認」「2D画面への移動」「円の作図」を呼び出すには以下のように作成します。

上述のコードではこのようなフローでiCADを操作しています。

エラーが起こったらすぐにプロシージャを終了させることで、次の処理に進んでさらにエラーを生むことを防ぐことができます。

4. 呼びだした関数の引数を記入

ライブラリの関数を使用するには◯◯◯(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

引数の数や順番が間違っているとエラーになったり、意図と異なる動作になるので注意してください。

5. 作成したプログラムの動作確認

iCADを起動し、3D画面が表示されている状態で作成したプログラムを実行してみましょう。

円を自動作図するプログラムを作ることができました!

各種使用例

ライブラリの使用例として、どのようなツールが作れるか実例を用意いたしました。

下記よりダウンロードしたファイルを解凍し、エクセルファイルを確認してください。

実例ダウンロード

それぞれのコードの内容を確認してみれば、ツール作成の参考にできると思います。

正多角柱の自動生成

任意のサイズ、角の数の正多角柱を自動生成できます。

比較的シンプルな内容なので、まずはこちらを確認していただければツール自作の参考になると思います。

圧縮コイルバネの自動生成

3Dモデルの編集(集合演算やトリム)を使用した例です。

角型スプライン軸の自動生成

エクセルのシートにあらかじめ一覧を作っておくことで、特定のパターンを自動モデリングする例です。

円弧の補助線ツール

iCADのVB I/Fヘルプ(C:\ICADSX\HELP\ICADOLEA.chm)に用意されているGD関数を活用した例です。

GD関数を使えば2D上の要素(この例では円弧)の座標や寸法を取得できます。

それを活用して円弧の補助線を作成することができます。

円形配置中心線の整形ツール

GD関数を使って円の座標を取得しても、その座標を通る円の座標を求める計算は複雑です。

そこで、一度エクセルの別のシート(計算シート)に座標を書き出して計算しています。

このようにエクセルの機能を活用することができることもVBAでツールを作るメリットです。

他にも工夫次第で色々なツールが作れます。

自分や周囲の困りごとを解決するツール作成に挑戦しましょう!

本記事で掲載している画像の特記事項

本ブログ記事に掲載しているiCADの画像についての注意事項です。

  • iCADは、富士通株式会社の登録商標です
  • iCAD SXの著作権は、iCAD株式会社が保有します
  • 当ブログでは、iCAD株式会社の許諾を得て画面等を表示しています
  • 当ブログの内容について、無断で使用、複製することを禁じます

 

ゆー

この記事を書いた人

ゆー

iCAD ✕ VBAライブラリ一覧表

iCAD ✕ VBAライブラリ活用事例解説【正多角柱の自動生成ツール】

console.log("postID: 13779");console.log("カウント: 2133");