=========== カスタマイズ用関数の説明 ===========
(1)メニューボタンの追加 (2)メッセージウィンドウへのメッセージ表示 (3)漢字などの多バイトコードの文字への対応 (4)ファイルの読み込み (5)モデル操作のための準備1 (6)モデル操作のための準備2 (7)モデルアイテムの操作 (8)モデルパラメータの取得 (9)モデルの選択 (10)プログラム中からのモデルの選択 |
|
(1)メニューボタンの追加
既存のメニューに新しくボタンを追加するには以下の関数を使い、メニュー ファイルを作成します。 例えば部品モードでTESTBというメニューを追加したい時は下記になります。 int menu_id;
int func1(void *a, int b) ←TESTBボタンが押されたときの処理 メニューファイルの名前は part.aux とします。
|
|
(2)メッセージウィンドウへのメッセージ表示
メッセージウィンドウに何か記述したい場合には以下の関数を使い、 メッセージファイルを作成します。 wchar_t MSGFILE[256];
メッセージファイルは test_msg.txt とします。(ファイル名は任意)
|
|
(3)漢字などの多バイトコードの文字への対応
通常のシングルバイトコードでの取り扱いが難しい文字列への対応を 行うため、各関数は文字列を拡張文字列(ワイド文字列)に変換したも のに操作するようになっています。 (2)で使用している wchar_t型が 拡張文字列です。 通常の char型と wchar_t型を相互に変換するための関数が用意されています。 ProStringToWstring(out_wchar_t, in_char);
メッセージウィンドウに表示させる時とか、ファイル操作する場合には
|
|
(4)ファイルの読み込み
ファイルを読み込む場合は、まずメモリ上に読み込みます。読み込んだ モデルを画面に表示するためには別途モデルを表示する関数を指定します。 下記は部品(prt)ファイルを読み込みます。 ProMdl part;
ProStringToWstring(fname, "test");
|
|
(5)モデル操作のための準備1
プログラム中で現在アクティブなモデルにアクセスするために指定 するものがあります。次に示す関数でモデルのOHandleを得ることが できます。なんのことかよくわかりませんが、とにかくこの関数を使う ことで、モデルを操作することができるようになります。 ProMdl part;
status = ProMdlCurrentGet(&part); ここで得られるpartを原点にして各関数に展開していきます。 |
|
(6)モデル操作のための準備2
操作するモデルをファイル名(モデル名)から指定することもできます。 下の例は部品(test.prt)を使う場合の指定方法です。 ProError status;
type = PRO_PART;
|
|
(7)モデルアイテムの操作
ProMdlはOHandleなのでモデルデータを操作するためには、DHandleに 変換する必要があります。 ProError status;
status = ProMdlToModelitem(model, &modelitem); |
|
(8)モデルパラメータの取得
それでは実際のサンプルプログラムに移ります。 次の例はモデルパラメータを読み込み、メッセージウィンドウに表示します。 あらかじめ部品ファイル(test.prt)を作成し、モデルパラメータ名(sample) を定義しておきます。 /*--------------------------------------------------------*\
#define PRMLEN 100 /*========================================================*\
type = PRO_PART;
status = ProMdlInit(w_name, (ProMdlType)type, &model);
status = ProParameterInit(&modelitem, p_name,
¶m);
switch( value.type )
ProStringToWstring(msgfil, "test_msg.txt");
return( 0 );
メッセージファイルは test_msg.txt とします。(ファイル名は任意)
|
|
(9)モデルの選択
Pro/Eでは画面上でマウスクリックしてモデルを選択する操作をすることが よくありますが、TOOLKITでは以下の関数を使います。 ![]() int num; char option[50]; strcpy(option, "csys"); ←座標系の選択
optionは、ProSelectオプションの中から指定します。
|
|
(10)プログラム中からのモデルの選択
部品やアセンブリを構成する特定のフィーチャーにアクセスするために 強力な関数が用意されています。 以下の例ではmodelからUActに記述された内容で特定のフィーチャーを 選択します。 ProMdl model;
ProSolidFeatVisit((ProSolid)model,
(ProFeatureVisitAction)UAct,
// Action Function
|
|