trload

(被切削材保存ファイルの新フォーマットからの読み込み)

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


 現在TRYCUT標準で読み込み可能なワーク(被切削材)形状のフォーマットは、 独自のDMF形式以外では、STL(テキスト、バイナリ)形式に対応しています。 一方これらのフォーマットも自社用に独自の仕様のものがあったり、 VRMLやXVL,IGES,STEPなど、ある枠組みの仕様が存在するデータでも、 その形式への出力方法やデータ固有の癖が様々で、 いくら取り込み処理を開発しても収拾がつかない状況に陥ったりします。 (※欧米でも日本でもデータ交換専業ビジネスが成立する) 例えば標準のSTL取り込み処理のロジックも少し変更した方が良い場合があります。
 本trloadの機構は、このような面をある程度ユーザー様でも解消できる仕組みを提供することを目的にしています。 また、これを利用することによって、ブロックを組み合わせたような形式のフォーマットを独自に、 また自由にユーザー側で定義し、そのファイルを標準で利用するなどの工夫もできます。 この部分はサンプルプログラムの例で用意しています。
※追加された被切削材保存ファイルの新フォーマットも自動的に ドラッグアンドドロップに対応されます。 また起動オプションの/dにて 指定することも自動的に可能になります。本trloadにて処理対象にするファイルは、 タイプを分別するための拡張子が必要です。


<仕様>

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

TRLOADSUFFIX ★ ※".DMF",".STL",".DME"以外を指定して下さい。
TRLOADINIT
TRLOADKIND ★
TRLOADPARAMETER
TRLOADSTARTPOINT
TRLOADGETWORKSIZE ★
TRLOADLOADWORK ★ 被切削材データ詳細
TRLOADFREE

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

 これらのDLLが実際認識できているかどうかは? TRYCUTの「被切削材(W)」->「DMF/STL,,,読み込み(L)」の中の 「ファイルの種類(T)」の中にTRLOADKINDで指定した項目が以下のように追加されていることで確認できます。 なお、本DLLの仕様で用意された拡張子ファイルは、 同時にDMFファイル同様「DMF/STL,,,->軸振り(R)」のX軸Y軸回転と、 「DMF/STL,,,->反転/プレス(H)」にも対応されます。



・スケルトンの枠組みに沿って作ったサンプル プログラム(trload.cpp)
※このサンプルでは、格子データに属性(ペン番号、ペンキ、切削方向)を設定するためのサンプルコードも含まれています。 このあたりの詳細は、 DMFの説明ページをご参照下さい。

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

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

 このサンプルは、説明用に適当に定義したフォーマット拡張子(BOX)を、 TRYCUTの「被切削材(W)」->「DMF,STL,,,読み込み(L)」からロードできるようにするものです。 まずはBOXフォーマットを定義します。

(BOXフォーマットの仕様)
 以下の2つの文(+BOXと-BOX)からなるテキストフォーマットです。 このサンプル説明のために臨時で創った適当なフォーマットです。
 以下の+BOXと-BOXは、正にこの2つの定義で得られるBOX(直方体)形状を、 ブーリアン演算するかのように形状を足したり引いたりするというイメージで、 ブロック材などの定義に利用することを想定したものです。
+BOX(maxx,maxy,maxz,minx,miny,minz)
-BOX(maxx,maxy,maxz,minx,miny,minz)
maxx,maxy,maxz,minx,miny,minz は数字を指定します。
区切りはカンマ,空白,TABのいずれでもOKです。

(BOXデータのサンプル)
data1.box  data2.box  data3.box  data4.box
例えば、"data4.box" を保存し、TRYCUTにドラッグすれば、 以下のようなワークが取り込まれます。

 また、TRYCUT起動形式にも対応します。
例えば、 TRYCUT /d data4.box
などとキーインして実行する場合も自動的に対応されています。



 なお、上記のサンプルは、あくまでもC言語やC++言語でコーディングされることを想定したものではありますが、 特にこれらの言語でなければならないということではありません。 スケルトンの仕様に合致していればFORTRANなどでもDLLを作成することは可能です。

 例えば、サンプルプログラム(trload.f)

 本プログラムは、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 ←初期設定と 異なる
のように設定しておく必要があります。

 この例は、あまりにも手抜ではありますが、 理解しやすいサンプルということで紹介させていただきました。 "BX1"という拡張子を持ったファイルであれば何でもプログラム内で指定されたある固定サイズのBOX形状を取り込むものです。
 通常はこの中に記述された専用フォーマットのデータを読み取り、 形状に反映させるという流れになります。


 本trloadとtrsaveの仕組みを利用してDMFの圧縮形式を実現したものも公開して います。詳細とダウンロードはこちらにて。

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


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