C#ATIA

↑タイトル詐欺 主にFusion360API 偶にCATIA V5 VBA(絶賛ネタ切れ中)

tsmファイルに挑む1

Fusion360APIが提供されているのは、主にモデリング類とCAMです。

モデリング類と言いましても、スケッチ、ソリッド/サーフェスは十分な程の
機能を提供してくれているのですが、シートメタルとメッシュに関しては
程々の機能を提供してくれていますが、フォームに関しては全くと言って
良いほどAPIには対応していません。

APIで唯一 "扱えそうだな?" と可能性を感じるのは、フォーム用のファイルを
直接編集し読み込むことです。

APIではフォームのファイルを読み込む方法を提供してくれていませんが、
幸いテキストコマンドでインポートするコマンドを発見し、アドインとして
公開しています。(5年も前なのか・・・)
GitHub - kantoku-code/Fusion360-TSplineBodyDoorway: Fusion360 TSplineBody Doorway

作成時の苦戦した模様はこちらです。
kantoku.hatenablog.com

当時は、ファイルの中身までは調べませんでした。・・・興味なかったし。


今回はちょっとファイルの中も覗く事にします。
ファイルのフォーマット自体が分かっていないのですが、過去に見つけた
ものは資料はこちらにあります。
https://iranarze.ir/wp-content/uploads/2016/11/E524.pdf
GitHub - GrapeTec/T-SPLINE: T-spline Library
両方ともFusion360のフォーム(Tスプライン)と関連ある内容だと
思っていますが、とてもじゃないのですが理解なんて出来ません。

作戦変更です。
フォームに入りXY平面上に単純な四角い面を作り、フォームを抜けます。

これを上記のアドインでエクスポート(tsmファイル)します。

続いて再度フォームに入り、先程の面の頂点の一ヶ所を編集でXY上で
移動させ、再度フォームを抜けます。

これもエクスポートします。

tsmファイルはアスキーファイル(テキスト)なので、エディタで開き、
差分を比較してみます。

変更箇所は4行でした。何れも"0g"で始まる行です。

これを考えると"0g"で始まる行は形状の数値的な部分に関する
情報だろうと推測しています。
"0g"の行は"0g"以降は4個の数値の為

0g Xの値 Yの値 Zの値 ???

と予想しています。4個目の"???"ですが、恐らく重みじゃないかな?

試しに後からエクスポートしたファイルの一部をこんな感じで変更してみます。

0g 3.51603215432952965 3.41887387023830769 0 1
 ↓
0g 3.51603215432952965 3.41887387023830769 1 1

Zの値を1にしてみます。

これを自作アドインでインポートしてみます。

予想通り、頂点のZの値を変更した事で面の頂点が上がりました。

・"0g"は25行存在している
・25行の内訳は5X5になっている
・"0g"の値は通過点では無く、コントロールポイントでは無いか?
ん~まだわからないことだらけです。

続き書けるかな?