C#ATIA

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

上側の面を判断する3

こちらの続きです。
上側の面を判断する2 - C#ATIA

前回のアイデアの方向性が違っていたので、もっとシンプルに考えました。


一番最初の方法で駄目と感じたのが
"平面とサーフェスでの最短距離が測定出来ない" 事で、その為に
無駄なブロックを作成しその面を利用しています。

BoundingBox3DオブジェクトのmaxPoint.zで測定しなくても高さを取得
出来る事が分かっているが、XYZ平面方向の値となってしまう点がネック。

その為、一時的に都合の良い方向に回転させてBoundingBox3Dを利用
しようと思いました。

そこで何度も登場しているTemporaryBRepManagerの登場です。

Bodies.addするまでは画面に表示されないだけでなく、恐らくメモリ上だけの
存在の為、ファイルにも記録されないはずです。

その為のサンプルをGithubにUpしました。
github.com

最初にボディを指定し、その後上方向を示す平面かボディの平面を指定すると
上面が選択された状態となります。

但し、指定するために選択した平面も選択されたままになっちゃいます。
(望んでいない状態です)
こちらに記載しましたが、バグじゃないかな・・・。
Can't clear the activeSelections - Autodesk Community