対象製品: IJCAD 2024以降 (STD グレード以上)
IJCAD2020~2023はこちら
IJCAD2019以前はこちら
IJCADの.Netアセンブリは、C#やVB.Netのクラスライブラリとして作成します。
1.Visual Studio 2017 を起動します。
2.ファイルメニュー ► 新規作成 ► プロジェクト... を選択します。
3.[新しいプロジェクト]ダイアログで、.Net Framework 4.8 が選択されていることを確認し、Visual C# のクラスライブラリを選択します。
4.プロジェクト名とプロジェクトファイルを保存する場所を指定します。必要であればソリューションのフォルダも用意します。
5.OKボタンを押すと、プロジェクトのひな形(ビルド可能な最低限のコード)を作成します。
参照の追加
IJCADが提供しているAPIを使用するには、参照を追加する必要があります。
次の手順で、参照を追加できます。
1.ソリューションエクスプローラで、プロジェクト名を右クリックして追加 ► 参照を選びます。
2.参照マネージャで参照ページを表示します。参照ボタンを押して、IJCAD の実行フォルダに移動します(C:\Program Files\ITJP\IJCAD 20xx Pro)。
3.GcCoreMgd.dll、GcDbMgd.dll および GcMgd.dll を選択して追加します。
※ 参照ページには最近利用したファイルがリスト表示されるので、リストから GcCoreMgd.dll、GcDbMgd.dll および GcMgd.dll を選択しても構いません。
4.ソリューションエクスプローラの参照設定に、GcCoreMgd、GcDbMgd および GcMgd が追加されてます。
5.GcCoreMgd、GcDbMgd および GcMgd をそれぞれ右クリックしてプロパティを表示します。
6.ローカルにコピーを False にして、GcCoreMgd.dll、GcDbMgd.dll、GcMgd.dll をローカルフォルダにコピーしないようにします。
コードの追加
Class1.cs に下記のコードを追加します。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Itjp.Ijcad.ApplicationServices;
using Itjp.Ijcad.DatabaseServices;
using Itjp.Ijcad.EditorInput;
using Itjp.Ijcad.Runtime;
namespace csHello
{
public class Class1
{
[CommandMethod("HELLO")]
public void HelloCmd()
{
Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
ed.WriteMessage("\nHello .Net World.\n");
}
}
}
・using Itjp.Ijcad.ApplicationServices は、Application オブジェクトにアクセスするのに必要です。
・using Itjp.Ijcad.DatabaseServices は上の例では使用していませんが、図面を操作するときに必要な宣言です。
・using Itjp.Ijcad.EditorInput は Editor クラスにアクセスするのに必要です。
・using Itjp.Ijcad.Runtime は CommandMethod 属性を使用するのに必要です。
・[CommandMethod(コマンド名)] の宣言によって、次の helloCmd() 関数がHELLOコマンドの定義になります。
・コマンドは public で、引数なし戻り値なしの関数として定義します。
・IJCADから Editor クラスの変数 ed を取得し、WriteMessage() 関数により、コマンドプロンプトにメッセージを表示します。
ビルドと実行
標準ツールバーで構成が「Release」でプラットフォームが「Any CPU」になっていることを確認し、「ビルド」メニューから 「ソリューションのビルド」を実行します。問題がなければアセンブリ ファイルが作成されます。
1.IJCADを起動し、コマンドプロンプトに NETLOAD と入力します。[ファイル選択]ダイアログから、csSample ► csHello ► bin ► Release ► csHello.dllを選択し、作成したファイルをロードします。
2.コマンドプロンプトに HELLO と入力します。メッセージを表示して終了します。
デバッグの仕方
1.標準ツールバーで構成が「Debug」でプラットフォームが「Any CPU」になっていることを確認し、「ビルド」メニューから 「ソリューションのビルド」を実行します。問題がなければアセンブリ ファイルが作成されます。
2.プロジェクトのプロパティを開き、デバッグページを表示します。プラットフォームが「Any CPU」で構成が「Debug」になっていることを確認します。 開始動作から「外部プログラムの開始」を選択し、IJCAD の実行ファイル(C:\Program Files\ITJP\IJCAD 20xx Pro\gcad.exe)を指定します。
3.ソースコードのEditer ed=~の行にブレークポイントを設定します。
4.IJCADを起動し、コマンドプロンプトに NETLOAD と入力します。ファイル選択ダイアログから、作成したファイルをロードします。
5.標準ツールバーのデバッグからデバッグの開始を選択します。
6.コマンドプロンプトに HELLO と入力します。プログラムはブレークポイントの位置で停止します。
F11キーを押下し、続行するとメッセージを表示して終了します。
.Net for AutoCAD との比較
ここで、.Net for AutoCAD のプログラムと比較してみましょう。
Autodesk.AutoCAD から始まる .Net for AutoCAD の参照設定を、Itjp.Ijcad に変更すれば、.Net for AutoCAD 用に 開発されたアプリケーションが、IJCAD 用に動作するようにデザインされています。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Runtime;
namespace HelloApp
{
public class Class1
{
[CommandMethod("HELLO")]
public void HelloWorld()
{
Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
ed.WriteMessage("Hello .Net World");
}
}
}