DARE
image
IJCAD 基本操作
  • コマンド
  • 線
  • 線種
  • 線の太さ
  • ブロック
  • ポリライン
  • 塗りつぶし
  • ハッチング
  • 文字
  • 寸法
  • 縮尺
  • レイアウト
  • ダイナミックブロック
IJCAD プラグイン
  • プラグイン作成
IJCAD 学習
  • 勉強方法
IJCAD 拡張・PLUS ツール
  • JWW
  • PDF
  • 図形
これから始める IJCAD
  • IJCAD とは
  • AutoCAD との違い
  • インストール
  • IJCAD 2021
CAD の使い方
image
CADでゼロから図面作成 の使い方
image
DARE の使い方
image
Fusion 360 の使い方
image
AutoCAD の使い方
image
Jw_cad の使い方
image
IJCAD の使い方
新着記事
image
Jw_cad で線をまとめて伸縮!一括処理の使い方を徹底解説 の使い方
image
フリーソフトを探してるならコレ!無料の 「DARE」 で DWG を DXF に変換してみた結果は? の使い方
image
ラスター PDF もスムーズに変換! Auto CAD や Jw_cad で PDF を編集する方法とは? の使い方
IJCADで基本から学べる!機械部品製図トレーニング
image
[Amazon で詳しく見る]
IJCAD公式トレーニングガイド
image
[Amazon で詳しく見る]
IJCADで基本から学べる!機械部品製図トレーニング
image
[Amazon で詳しく見る]
IJCAD公式トレーニングガイド
image
[Amazon で詳しく見る]
IJCADで基本から学べる!機械部品製図トレーニング
image
[Amazon で詳しく見る]
image
DARE
ホーム
利用規約よくある質問お問い合わせ運営会社
  1. ホーム
  2. IJCAD
  3. プラグイン作成
  4. IJCAD プラグインの開発方法【開発の進め方の基本】

IJCAD プラグインの開発方法【開発の進め方の基本】

作成日:2021.08.12更新日:2021.08.12

image

IJCAD でプラグインを開発する方法を紹介します。

プラグインを開発するにはいくつかの手段がありますが、ここでは .NET による開発の方法を紹介します。 その他の方法については、次のリンク先を参照してください。

  • ARX による開発方法の概要
  • VBA による開発方法の概要
  • LISP による開発方法の概要

目次

  • .NET によるプラグイン開発

    • 開発のための準備
  • プログラムの作成

  • 動作の確認

    • .NET アセンブリの作成
    • .NET アセンブリのロード
    • 動作確認の手間を減らす方法
image

.NET によるプラグイン開発

.NET で IJCAD プラグインを開発する場合、プラグインで提供するコマンドをクラスライブラリとして作成します。

作成した .NET アセンブリを IJCAD の NETLOAD コマンドでロードすると、自作のコマンドを IJCAD で実行できるようになります。

ここから先は、IJCAD 2020 (STDまたはPRO) のプラグインをC#で開発することを想定して、開発の基本的な進め方を説明します。

開発のための準備

IJCAD 2020 用のプラグインを開発するために必要なものは、以下の通りです。

  • IJCAD 2020 (STDまたはPRO)
  • .NET Framework 4.8
  • Visual Studio 2019

Visual Studio プロジェクトの作成

Visual Studio を起動して、.NET Framework クラスライブラリ開発用の C# プロジェクトを作成します。

起動時の画面で新しいプロジェクトの作成を選ぶと、プロジェクトのテンプレートを選択する画面が表示されます。

画面の右側で、言語をC#、プラットフォームをWindows、プロジェクトの種類をライブラリとして、テンプレートを絞り込みます。

image

一覧の中からクラスライブラリ (.NET Framework) のテンプレートを見つけてクリックし、「次へ」ボタンをクリックします。

プロジェクトの設定画面が表示されるので、プロジェクト名とソリューション名に、HelloIJCADと入力します。

image

プロジェクトファイルを保存する場所を決め、フレームワークが**.NET Framework 4.8** になっていることを確認して、「作成」ボタンをクリックします。

これで、IJCAD プラグインを開発するための C# プロジェクトが作成されます。

参照設定

次に、IJCAD の API を使えるようにするためのライブラリを、参照に追加します。

ソリューションエクスプローラーで、プロジェクトの中にある参照を右クリックし、コンテキストメニューから参照の追加を選びます。

image

参照マネージャーの画面が表示されたら、画面右下の「参照」ボタンをクリックします。

image

参照先のコンポーネントを選ぶ画面が表示されたら、IJCAD 2020 のインストール先フォルダーに移動します。

IJCAD のインストール先フォルダーは次の通りです。

  • 64ビット版: C:\Program Files\ITJP\IJCAD 2020 Pro
  • 32ビット版: C:\Program Files (x86)\ITJP\IJCAD 2020 PRO

IJCAD 2020 のインストール先フォルダーで、gmap.dllとgmdb.dll の2つのdllファイルを選択し、「追加」ボタンをクリックします。

image

参照マネージャーの画面に戻ると、一覧に gmap.dll, gmdb.dll の2つが追加されており、どちらもチェックボックスがオンになっています。

image

これで、プロジェクトから2つの dll ファイルを参照するよう設定できたので、「OK」ボタンをクリックします。

ソリューションエクスプローラーに戻ると、プロジェクトの参照先に「gmap」と「gmdb」が追加されています。

参照先のうちgmapをクリックすると、gmap.dll の情報がプロパティに表示されます。

image

プロパティの中でローカルにコピーが True となっている場合は False に変えて、gmap.dll を出力ディレクトリ (プログラムをビルドしてできるクラスライブラリの出力先フォルダー) へコピーしないようにします。

gmdb.dll についても、同じように設定します。

これで、プログラムを作成する準備ができました。

プログラムの作成

IJCAD のコマンドウィンドウに、Hello, IJCAD! というメッセージを表示するコマンドを作ってみましょう。

プロジェクトの中にある Class1.cs というファイルに、以下のプログラムを入力します。

using GrxCAD.ApplicationServices; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace HelloIJCAD { public class Class1 { public void Hello() { Application.DocumentManager.MdiActiveDocument .Editor.WriteMessage("\nHello, IJCAD!\n"); } } }

IJCAD のコンソールウィンドウにメッセージを表示するには、

  • IJCAD のアクティブ図面にアクセスする ... Application.DocumentManager.MdiActiveDocument の部分
  • 入出力操作を管理するインスタンスにアクセスする ... .Editor の部分
  • コンソールにメッセージを表示させる ... .WriteMessage("...") の部分

という手順をとります。

プログラムの内容についての補足説明を以下に示します。

  • Application は、IJCAD アプリケーションを管理するためのプロパティやメソッドを持つクラスで、GrxCAD.ApplicationServices 名前空間で定義されています。
  • DocumentManager プロパティは、IJCAD アプリケーションで開かれている図面を管理するオブジェクトを参照します。
  • MdiActiveDocument プロパティは、IJCAD でアクティブになっている図面を参照します。

プログラムから IJCAD にメッセージを表示させるためには、プログラムを IJCAD のコマンドと対応付ける必要があります。

.NET のプログラムでは、メソッドに属性を付けることで、コマンドとの対応付けができます。 上記のプログラムで、HELLO というコマンドが起動されたら Hello, IJCAD! というメッセージを表示させるには、Helloメソッドに CommandMethod という属性を付けます。

... [CommandMethod("HELLO")] public void Hello() ...

CommandMethod は GrxCAD.Runtime 名前空間で定義されている属性で、using ディレクティブがないと、下のようにエラーが検出されます。

image

このとき、プログラムの先頭に using GrxCAD.Runtime; と入力すればエラーを解消できますが、Visual Studio のコード入力支援機能を使って、その手間を省くことができます。

赤い波線でエラーが指摘されている箇所にカーソルを移動させ、Ctrl + . キーを押すと、クイックアクションが表示されます(コンテキストメニューから「クイックアクションとリファクタリング」を選んでもよいです)。

image

修正内容の候補が表示されるので、最初の using GrxCAD.Runtime; を選びます。

これで、プログラムの先頭に using ディレクティブが自動で追加され、エラーを示す赤い波線が消えます。

image

以上の要領でプログラムを作成すると、IJCAD で HELLO というコマンドを実行したときに、Class1 クラスの Hello メソッドを呼び出すことができます。

動作の確認

.NET アセンブリの作成

ここまでで書いたプログラムを、IJCAD で実行させてみましょう。

Visual Studio のメニューから「ビルド」→「ソリューションのビルド」を選び、プログラムをビルドして、.NET クラスライブラリを作成します。

プロジェクトの参照設定やプログラムに誤りがなければ、プログラムがビルドされ、出力先フォルダーに HelloIJCAD.dll という .NET アセンブリファイルができます。

このファイルができていない場合はビルドに失敗しているので、Visual Studio の「出力」と「エラー一覧」に表示されたメッセージを確認し、参照設定やプログラムを修正します。

.NET アセンブリのロード

IJCAD を起動して、NETLOAD コマンドを実行します。

.NET アセンブリを選択する画面が表示されたら、先ほどビルドしてできた HelloIJCAD.dll を選択し、「OK」ボタンをクリックします。

これで、.NET アセンブリがロードされ、HELLO コマンドが使えるようになりました。

HELLO コマンドを実行すると、コマンドウィンドウに「Hello, IJCAD!」というメッセージが表示されます。

image

おめでとうございます!

これで、自作のコマンドを IJCAD で使えるようになりました。

動作確認の手間を減らす方法

作成したプログラムのデバッグを行うとき、Visual Studio から IJCAD を起動するようにしておくと便利です。

また、NETLOAD コマンドで .NET アセンブリをロードする作業を自動化しておくと、デバッグの準備にかかる手間を省くことができます。

Visual Studio から IJCAD を起動する

ソリューションエクスプローラーのプロジェクトの箇所で右クリックし、「プロパティ」を選ぶと、プロジェクトの設定画面が表示されます。

プロジェクトの設定項目から「デバッグ」を選ぶと、開始動作のセクションでスタートプロジェクトが選択されています。

これを外部プログラムの開始に変え、「参照」ボタンで IJCAD の実行ファイル (gcad.exe) を指定すると、デバッグ開始時に IJCAD が起動します。

NETLOAD を自動化する

IJCAD のスクリプト実行機能を利用すると、.NET アセンブリのロードを自動化できます。

まず、Visual Studio のプロジェクトに、次の内容のスクリプトファイル (netload.scr) を追加します。

NETLOAD ./HelloIJCAD.dll

スクリプトファイルを作成するときは、文字コードに注意が必要です。

文字コードが BOM 付き UTF-8 のスクリプトファイルは IJCAD で正しく実行できないため、 BOM 付きでない UTF-8 で、スクリプトファイルを保存しておく必要があります。

Visual Studio でファイルを作成した場合、デフォルトの設定では文字コードが BOM 付き UTF-8 になります。

このため、スクリプトファイルを作成するときにはメモ帳などのテキストエディタを使い、文字コードを BOM 無しの UTF-8 として保存してください。

スクリプトファイルをプロジェクトに追加したら、ソリューションエクスプローラーでそのファイルをクリックし、プロパティの出力ディレクトリにコピーを常にコピーするに設定します。

image

最後に、プロジェクトの設定を変更します。 デバッグの設定画面で、開始オプションのコマンドライン引数に /b netload.scr と入力します。

image

このように設定しておくと、デバッグ実行で IJCAD を起動したとき、netload.scr に書かれたスクリプトが自動的に実行されます。

image

NETLOAD コマンドが実行され、.NET アセンブリがロード済みの状態になっているので、HELLO コマンドを実行すると、コンソールウィンドウに Hello, IJCAD! というメッセージが表示されます。

開発の基本的な進め方の説明は以上です。

IJCAD の API に関するドキュメントはこちらで公開されていますので、開発を進めるときの参考にしてください。

次の記事

関連記事

image
IJCAD プラグインの開発方法【図形の編集】
image
IJCADプラグインの開発方法 【図形の取得】
image
IJCAD プラグインの開発方法【図形の作図:基礎編】
image