trsave

(被切削材の保存/解析情報出力)

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


 現在TRYCUT標準で保存可能な、ワーク(被切削材)形状のフォーマットは、 独自のDMF形式以外では、STL(テキスト、バイナリ)形式とVRML形式に対応しています。 しかし、これらのフォーマットの中でも例えばVRMLのように、現在は多面体出力と 格子点出力の2通りを標準で対応していますが、この出力方法はある特定の2パター ン(たまたま開発者が決めた出力方法)でしかなく、実際は様々な出力形態が考えられ ます。また当然のことながら他のフォーマットへの出力も行いたい場合もあるかと 思われます。
 まずは、trload同様これらの部分をある程度ユーザー様でも解消できる仕組みを 提供することを目的にしています。また、このような仕組みにより、ワーク形状を 出力するばかりでなく解析データを出力することに利用することも可能になり、 幅広いアプリケーション開発に対応できます。
※本I/Fで追加された拡張子のファイルは、 起動オプションの/oにて指定することも自動的に 可能になります。


<仕様>

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

TRSAVESUFFIX ★
TRSAVEINIT
TRSAVEKIND ★
TRSAVEPARAMETER
TRSAVEGETSAVELEVEL
TRSAVEGETBASICMODEL
TRSAVESAVEWORK ★ 被切削材データ詳細
TRSAVEFREE

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

 これらのDLLが実際認識できているかどうかは? TRYCUTの「被切削材(W)」->「DMF/STL/VRML保存(S)」の中の 「ファイルの種類(T)」の中にTRSAVEKINDで指定した項目が追加されている ことで確認できます。この部分は、trloadと同様です。
 また、TRYCUT起動形式にもtrload同様に対応しています。 /d オプションでtrloadで追加された拡張子のファイルが指定できるのと同様に、 /o オプションにてtrsaveで追加された拡張子のファイルが指定できます。

<例>
 コマンドプロンプトを起動して、cdコマンドでTRYCUTフォルダに移動し、

trycut /d a.dmf /o b.??? /x5 data.nc [Enter]

 とキーインすると、"a.dmf"というワーク材を、"data.nc"というNCデータで 切削し、trsaveで追加された拡張子の"b.???"というファイルにtrsaveの処理にて 結果を書き出すことが可能になります。

 trsave は、基本的には被切削材(ワーク)のデータを自由なフォーマットで 保存することを目的にしたものではありますが、特にそうでなければならない というものではありません。単にワーク解析したデータを書き出すなど自由に ご利用いただけます。


<DMFの圧縮版(DMZ)>

※本DLLはWindows95,98,Meでは動作しません。

 本trsaveとtrloadの仕組みを利用し、 DMFの圧縮版(拡張子DMZ)を実現したものを、TRYCUTユーザーの KUBO氏(Lance開発者)より ご提供いただきましたので公開(無償)させていただきます。(※TRYCUT3000版は、 弊社にて作成)

 本圧縮版は、DMFと内部的に保持している情報は同等で、かつ数倍〜数十倍まで DMFを圧縮できるという大変貴重なツールです。圧縮率が高いか否かは形状の 起伏の度合いにより決まります。平らな部分が多かったり形状に規則性があったり すると圧縮率は高くなります。
 DMFとの違いは、書き込み時と読み込み時で多少圧縮解凍処理の時間が かかってしまう程度で、それ以外は何等違いのない操作体系で利用できます。 例えばドラッグアンドドロップや起動オプションでの指定も可能です。また、 データの劣化も一切ございません。
 最近のハードウェアの性能向上により、大容量のDMFを作成される場合も多いかと 思いますが、このようなケースでDISKを圧迫している場合には非常に有効な 保存形態となるはずです。

 インストールは、まず

TRYCUT2000(32bit)用:trsave.dlltrload.dll  TRYCUT3000(64bit)用:trsave.dlltrload.dll

の2つのファイルをTRYCUTインストールフォルダに保存して下さい。

 既に同じ名前のDLLが存在する場合は、それぞれtrsave1.dll,trsave2.dll, trsave3.dllやtrload1.dll,trload2.dll,trload3.dllに名称を変更して 保存して下さい。
 また圧縮ロジックには、LHA形式を採用していますので、"UNLHA32.DLL"と TRYCUT3000(64bit)用のみLHA32.EXEも同時にインストールしておいていただく 必要があります。

★"UNLHA32.DLL"(フリーソフト)のダウンロードサイトは以下です。
Vectorダウンロードサイト

★LHA32.EXE(フリーソフト)は、以下いずれかのページからダウンロードして下さい。
開発者take氏のページVectorダウンロードサイト
※TRYCUT2000ではLHA32.EXEは不要です。
※LHA32.EXEを環境変数のPATHで指定されているフォルダ(例:C:\Windows)に格納しておいて下さい。

 本DLLの公開にご協力いただきましたKUBO氏、UNLHA32.DLLの 作成者Micco氏、LHAを開発された吉崎栄泰氏、LHA32開発者のtake氏には、 深謝申し上げます。


<差分情報リスト出力処理>

 trsaveの機構は、特にDMFの形状保存のためだけに用意されているものではありません。 その利用方法には様々なものが考えられます。むしろ解析処理を行ってその結果リストなどを 残す場合にも大変有用です。
 ここでは基準形状との差分情報をリスト出力するサンプルを紹介いたします。
※本機能を実行する場合は、あらかじめポップアップメニュー「被切削材(W)」→「基準形状指定(B)」 もしくは初期設定ファイルの"BASIC MODEL ="にて、基準形状モデルを指定しておいて いただく必要があります。
trsave1.cpp(サンプルソース)
TRYCUT2000(32bit)用:trsave1.dll、 TRYCUT3000(64bit)用:trsave1.dll

 このDLLにより以下のような差分情報リストを拡張子(SA)のファイルで出力できる ようになります。このサンプルでは以下のような情報を出力しますが、修正改善を 加えれば様々な情報を出すことができるはずです。

/// 差分情報リスト
-----------------------------------------
+側差分体積=248.299809 対象格子数=1077
+側最大差分=4.000000 位置 X= 49.000,Y= 168.000
-----------------------------------------
-側差分体積=0.320807 対象格子数=1523
-側最大差分=0.000451 位置 X= 22.000,Y= 166.000


<DMF→座標値 書き出し処理>

DmfToAscii.cpp(サンプルソース)

 これもDMFの保存としての役割は果たせませんが、DMFの全格子点座標値をテキスト ファイルに書き出す処理のサンプルで、他システムなどでデータを送り込む場合などに 流用できる実例ですので紹介させていただきました。
 各種解析処理にも流用可能との説明を付け加えていますが、そういう意味では その最も単純な例と言ってもよいかもしれません。ただし、用途によって 書き出す内容も様々と予想されますので、ソースだけの公開で、後は 改変してお使いいただくことを想定しています。

 本ソースのDLLは、こちらで公開されています。

 製作者より、このDLLを作成した理由として以下の説明をいただいています。
==================================
 「支給のデータとして、CADデータは一切無く、図面も無い。 在るのは、2D輪郭加工パス、および、3D走査線倣いパスのみ。
 これでも、形状が割合平坦だと、それほど問題は無いのですが、 垂直に近い壁があったり、高低差が激しいと、ブロックからの 加工がかなり難しくなります。 また、NC加工データのため、数値をそのまま解析しても、 形状面にはなりません。

 そこで、このデータで仕上げた形状が必要になります。 3Dパス自体は、STLからも作成できるものがあると思いますが、 形状面上の曲線などが必要になった時に、扱いにくいので、 サーフェスを作ることにしました。 CAD/CAMにもよると思いますが、格子点列や、断面曲線から 作成できるものは多いはずです。 また、このAscii形式データを、点群 や ポリライン として読み込む 機能のあるものも多いはずです。

 今回は、ポリライン として読み込み、Yに移動する(斜めの)要素を 消去して、断面曲線を指定することでサーフェスを作成しました。 この面を使用して、荒加工、中仕上げ加工の等高線パスを作成し、 仕上げ加工のみを、支給パスで加工することによって 加工の時間的問題や、パス編集作業の手間の問題を解決しました。

 3Dデジタイザなどを使用しているところでは、座標点群から CAD/CAMモデルにしていくプロセスが確立されていることも予想され、 こういったところには有用かもしれません。
 逆に、XY等ピッチでピックした点群データを、trload を利用してDMF、STLなどを仲介して CAD/CAM データにしていくことも考えられます。ともあれ、利用いただける所があれば光栄です。」


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

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


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