C#ATIA

↑タイトル詐欺 主にCATIA V5 の VBA(最近はPMillマクロとFusion360APIが多い)

差分を抽出をもう少し掘り下げたい

こちらのsauvignon1962さんからコメント頂いた件ですが、
折角なので画像も有った方がわかりやすいかな? と思い記載します。
二つのボディ/形状セットを比較して、差分を抽出する2 - C#ATIA

CATIAでまともな図面を描くことが無いのですが、
僕の場合であれば、ほぼ対称形状の図面を描く場合は
こんな感じにしています。

f:id:kandennti:20171226123015p:plain

注記に「指示なきB部品寸法は、A部品と対称形状とする」のような
表記で付け加えておきます。
(これが一般的な方法かどうかは知りません・・・)

sauvignon1962さんの文面からして恐らく、こんな感じの
図面を作成したいのだろうと思います。

f:id:kandennti:20171226123028p:plain

あちらの差分を抽出するマクロの一番の問題点は、本来
変更されたと判断されたくない面も抽出してしまう事だとは
当時も認識していました。
実際に実行してみるとこのような結果になります。

f:id:kandennti:20171226123041p:plain

原因は単純で、一致すると判断するアルゴリズム
面の重心位置と表面積な為なんです。

本来 「欲しい」と思う面は、抽出した面のもう一つ内側の
なるのが自然だろうとは感じており、せめて
こんな風に一致しないエッジ部分も抽出できたら良いだろうな
とは感じていました。

f:id:kandennti:20171226123141p:plain

結局は、処理が難しそうなので取り組まずに終わらせて
しまっています。