C#ATIA

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

差分を抽出マクロ修正中

こちらの続きです。
マクロを直したい(愚痴) - C#ATIA

少しづつ時間が確保出来たので、修正しているのですが・・・。
こちらのマクロの問題点は、互いの面を総当りで比較している
と言う点です。
二つのボディ/形状セットを比較して、差分を抽出する - C#ATIA

過去に作ったこちらの8分木を無理やり適応させて、
組み合わせ総数を減らしているのですが、
単独な3D曲線の取得する3 - C#ATIA
・・・結果が一致しない。

f:id:kandennti:20170719185435p:plain
赤い面は総当りと8分木で同一の面を抽出できているのですが、
黄色い面は、本来抽出されるべきでない面で8分木のみで抽出されて
しまいます。


テストデータは、ちょこっと変更しただけで何度も送られてきたもの(腹が立つ)
2タイプで行っているのですが、両方とも8分木の方が6枚余計に抽出してしまいます。

面の一致(重心・表面積)を判断する段階で余計に抽出しているのではなく
8分木を利用して比較する為の組み合わせを見つける段階で
"比較相手が無し"
として抽出してしまっている所までは突き止めたのですが、
何処をどの様に直せば良いのかな・・・。