trmod

(被切削材の編集/修正)

trread  trsim  trload  trmod  trsave  trnccom  treditor  trsync
SDKトップページへ


 TRYCUT標準で用意しているワークの編集機能には、 Zをカットしたり、オフセットを行ったり、極常識的な範囲のものばかりですが、 ユーザー個々に特殊な修正を加えたいというニーズが頻繁に出てきます。
 本trmodは、これらの要求に応えられるように、ある部分を特殊な形状に変形させたり、 特定部分にペン番号やペンキを塗るなど、自由に編集を行えるようにするための仕組み(I/F)です。

※ただし、TRYCUT2000/3000側で確保している格子点のメモリ領域は変更できませんので、 X方向/Y方向の格子数の変更は行えません。


<仕様>

 trmod は、以下5種類から成る関数(手続き)のダイナミックリンクライブラリ(DLL) trmod.dll をTRYCUTインストールフォルダに格納することにより有効になります。

TRMODINIT
TRMODMENUITEM ★
TRMODPARAMETER
TRMODGETBASICMODEL
TRMODMODWORK ★ 被切削材データ詳細
TRMODFREE

trmod関数詳細仕様(trmod.cppスケルトン)
※現在、各関数の仕様書はC++のスケルトン(枠組み)プログラムで代用しています。
※DephiやFortranで開発される場合は、 C,C++ & Delphi(Pascal) & Fortran 対応付けをご参照下さい。
※★印は必ず必要な関数で、無印は省略可です。
※DLLの名称は通常"trmod.dll"ですが、"trmod1.dll","trmod2.dll","trmod3.dll" も順番に認識し、最多3個まで受け付けます。最多3個ですので"trmod.dll", "trmod1.dll","trmod2.dll","trmod3.dll"の4つのファイルが存在する場合は、"trmod3.dll"は無視されます。複数のtrmodを処理対象にしたい場合 は、名称をこれらのように変更してインストールフォルダに格納して下さい。

 これらのDLLが実際認識できているかどうかは? TRYCUTのポップアップメニュー「被切削材(W)」の中に TRMODMENUITEMで指定した項目が以下のように追加されていることで確認できます。



<例1>

[機能]
ワーク形状にリング形状を作る。
設定項目は、X軸(横方向)R、Y軸(縦方向)R、角R、外枠マージン
※真円(半径R)を定義する場合は、X軸(横方向)R = Y軸(縦方向)R = 角R を指定して下さい。

・スケルトンの枠組みに沿って作ったサンプルプログラム
trmod.cpp
trmod.rc(VC++6.0のリソースエディタで作成)
resource.h(VC++6.0のリソースエディタで作成)

※このサンプルでは、ダイアログボックスを表示してパラメーター設定する 部分(trmod.rc,resource.h)も含まれて居ます。 またtrloadのサンプル同様、格子データに 属性(ペン番号、ペンキ、切削方向)を設定するためのサンプルコードも含まれて います。このあたりの詳細は、 DMFの説明ページをご参照下さい。

 実際このプログラムにてコンパイル、リンクしたDLLが以下です。
TRYCUT2000(32bit)用:trmod.dll、 TRYCUT3000(64bit)用:trmod.dll

テストでお試しされる場合は、このtrmod.dllをTRYCUTインストールフォルダに保存してご利用下さい。 (注意:DLLはTRYCUTの起動時に認識するものですので、起動中に保存しても TRYCUT側は認識しません。)


<例2>

[機能]
ブランク形状に合った円柱形状を作成する。

[仕様]
設定パラメータは、ブランク形状の情報から、
・円柱の中心X,Y:ブランク形状の中心X,Y
・円柱の直径:ブランク形状のX方向、Y方向の短いほうに合わせる
・円柱の高さ:ブランク形状と同じ

★C言語ソース:trmod.c
 スケルトンの枠組みに沿って作ったサンプルプログラム
このサンプルは、なるべく簡単に見えるように、必要な部分だけを抜き出して コーディングしています。

 このプログラムを、コンパイル、リンクしたDLLが以下です。
TRYCUT2000(32bit)用:trmod1.dll、 TRYCUT3000(64bit)用:trmod1.dll

trmod1という名称にしてあるのは例1のサンプルと併用する場合のフォローです。通常trmod.dll として 保存していただいても問題はありません。

★Delphi(Pascal)ソース:trmod.dpr
 本サンプルと同等のものをDelphiのソースとして記述したものを 参考までに公開しておきます。 本ソースは、単純化するためDelphi環境のプロジェクトファイル(*.dpr)の中に、 処理部分(procedure)も埋め込んで書いています。一般的にDelphi(Pascal)のソース は拡張子(*PAS)ですが、このサンプルのような手抜もできます。
本ソースも、こちらで紹介するDelphi6 Personal(無償)でコンパイルできます。

★Fortranソース:trmod.f
 本サンプルと同等のものをFortranで記述したものも参考までに 公開しておきます。

 これは、Compaq Visual Fortranを利用することを想定したもので、コンパイラの設定 "External Procedures"の3項目を、
1. Argument Passing Conventions: C, By Reference ←初期設定と 異なる
2. External Name Interpretation: Upper Case
3. String Length Argument Passing: After All Args ←初期設定と 異なる
のように設定しておく必要があります。

実行前
実行後


<例3>

[機能]
底面にペンキを塗る。

[仕様]
ポップアップメニュー「被切削材(W)」の「底面ペンキ塗り(T)」を実行する だけで、自動的に底面にペンキが塗られます。底面(最小値)のない形状では変化はありません。

 例1や例2は、形状を修正する機能ですが、trmodの機構は、必ずしも形状の編集だけではなく、ペンキや ペン番号などの格子ごとの属性情報だけを修正することもできます。TRYCUTのワーク材の内部データ 構造は、各格子ごとにペンキフラグ、ペン番号、切削方向色の情報を保持しています。これらの情報だけを 変更する例として、底面全面にペンキを塗る機能のサンプルを用意したものです。処理は極めて単純です。 属性の詳細は、DMFの説明ページをご参照下さい。

 サンプルソース
trmod2.c
 このプログラムを、コンパイル、リンクしたDLLが以下です。
TRYCUT2000(32bit)用:trmod2.dll、 TRYCUT3000(64bit)用:trmod2.dll

 ※今後、各関数の仕様変更は行いませんが、ご要望により適宜 仕様追加は行います。


trread  trsim  trload  trmod  trsave  trnccom  treditor  trsync
SDKトップページへ
トップページへ