C#ATIA

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

プロファイルの入れ子問題4

こちらの続きです。
プロファイルの入れ子問題3 - C#ATIA

今回はちょっと説明を。


最初に感じたのは、プロファイルが1個置きに必要だと感じました。
仮に配列の様にプロファイルを並べる事が出来れば、必要となる
プロファイルは奇数番目となる・・・どうやって並べる?で断念しました。

続いて考えたのは、点の内外判定(正式な名称は何だろう・・・)です。
こちらの説明が分かりやすそうなのでお任せします。
点と凹多角形の内外判定を行う - e.blog
2個目の角度を利用した方法は知りませんでした。・・・
多分、曲線が相手だと成立しなそうですが。

今回は先程のサイトで行っている交差回数での判定方法が使えそうな
予感です。

手抜き全開の画像で申し訳ないのですが

赤線は全て必要とするプロファイルから描いた線ですが、交差回数は
何れも奇数回です。
逆に不要なプロファイルから描いた線の交差回数は全て偶数回数です。
この方法であれば、必要なプロファイルの判定が出来る と判断しました。

ですが、これをスケッチ上で行う事にためらいました。スケッチは
処理が重いんです。
そこで、3D上で上記の交差回数で判断する事にしました。
必要な道具は

  • 線代わりの面→プロファイルを押し出し
  • プロファイル上に点を作成→Profile.face.pointOnFace
  • 面と交差を取得するための直線→Component.findBRepUsingRay

と、Fusion360の場合そろっている為、何とか形となりました。

これ、需要あるかな?