C#ATIA

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

ユーザーパターン3

こちらの続きです。
ユーザーパターン2 - C#ATIA
・・・一カ月以上放置していたのか。

こちらは諦めていません。 その為、APIフォーラムに作成したコードとドキュメント
を丸ごと放り投げた上に、動画も付けて質問しました。
Re: Custom Feature API Preview - Feedback Thread - Page 2 - Autodesk Community

ありがたいことに、nnikbinさん(この方はpythonc++両方いける人)が直ぐに
原因を見つけてくれました。

CustomFeatureの場合は編集する機能の都合上、どの要素が依存しているか
をCustomFeature自身に記録しておく事が出来るのですが、ボディ(BRepBody)が
依存関係として入っているとcustomFeatureComputeイベントが
発火しない事を突き止めてくれました。(恐らくバグだろう と)


仕方が無いので、代案として思い付いたのが、BRepBodyでは無く、BRepBodyの
最初の面だけを依存関係として記録しておき、UIでゴニョゴニョする際は
依存関係の面からBRepBodyを引き出して、見た目はBRepBodyで管理している
感じにすると何とかなるかと思い修正したところ、上手く機能しました。
(言葉じゃ分かりにくい)


質問していないけど、他にも気になる部分がありまして


動画の0:34辺りから、ボディを選択してから画面を回転させているのですが、
選択が解除されてしまいます。
これは編集時のみ発生する現象なのですが、どうやらcommand.activateイベントが
発火する事で現象が発生している事が分かりました。

オリジナルの "Custom Pocket" と大してコードを変えていないのですが、
"Custom Pocket" では発生しない現象です。

SelectionCommandInputを複数使っている事が原因じゃないかと思うのですが、
確信が持てない。