C#ATIA

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

同一形状のボディを判断する1

フォーラムにあった質問で、思い付きで作ったスクリプトがこちら。
Re: モデルのカウントについて - Autodesk Community

あちらのデータは、何個かボディを作りパターンを何度が利用しました。
要は "最初に作った何個か" = "何種類か" を見つけ出したい
と言うお話です。


ボディの位置や向きが異なっても、同じ数値を返してくれそうなのは
表面積と体積かな? と思います。重心位置は駄目ですね。

表面積と体積で一致を判断するスクリプトを作り、都合よく上手く行く
データを用意したので、上手く行きますよね?


問題になりそうなものは、こんな感じです。
f:id:kandennti:20210617174548p:plain
同一のブロックに同一の円柱をくっ付けているのですが、付けている
位置が異なります。 当然、形状的には別の物と判断されるべきです。

ですが、表面積と体積が一致するのであのスクリプトでは判断出来ません。
面の数も頂点数も同じ。で、どうする?

慣性モーメントを取得して、こちらを使ってバウンダリボックス作って
Fusion 360 Help
バウンダリボックスの重心とボディの重心の距離を測ったり・・・
後は何かあるかな? 思い付かない。


”このスクリプトはAI搭載です” って嘘ついて、誤った結果の場合は
"機械学習不足ですね。もっと多くのサンプルを利用して学習させないと
精度が上がりません" ぐらいの言い訳を事前に用意しておくのはどうだろうか?


・・・テーマとしては面白いんだけどなぁ。