こちらの続きです。
スケッチの向き2 - C#ATIA
ようやく完成したので、こちらで公開しました。
GitHub - kantoku-code/Fusion360_X_Horizontal: When you start working on a sketch,Rotate the X axis of the sketch so that it is horizontal.
なるべくルートコンポーネントのスケッチの作業と同じような動作を
行うようにしたつもりです。
個人的に動きは満足しています。が、コード的にはちょっぴり不満足です。
前回記載した通り、スケッチに入った抜けたはイベントが提供されていない為
こんな仕組みで行っています。
皆こんな絵よくかけるよなぁ・・・。
①OnSketchEventクラスでThreadを立ち上げます。Fusion360APIとは無関係で
Pythonの機能です。
②Threadで0.1秒毎に、_onSketchCheckHandlerクラスを呼び出します。
これは、CustomEventオブジェクトです。
③GUI側の監視します。"スケッチに入った抜けた" は分からないのですが
"今はスケッチに入っているか?" は拾い出せるので、沢山の "今" を作りました。
④実際に作業者がスケッチに入ったり抜けたりします。
・・・良く考えたら絵が違うな。別に通知しているわけじゃないです。
監視されているだけです。
⑤"スケッチに入った抜けた" が分かったら、視点をX軸が水平になるように
回転させます。
不満なのは⑤の部分です。本当はこの様にしたかったんです。
_onSketchCheckHandlerクラスは判断出来た時に回転させていますが、
判断だけを行わせたかったんです。
最初はそのようにコードを書いたのですが、ちっとも反応してくれない為
諦めました。
"CustomEventオブジェクト" と言う名称なのだから、トリガーが発生した際のみ
イベントが発生するようにしたいんだけどなぁ。