C#ATIA

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

スケッチの向き3

こちらの続きです。
スケッチの向き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.


なるべくルートコンポーネントのスケッチの作業と同じような動作を
行うようにしたつもりです。
個人的に動きは満足しています。が、コード的にはちょっぴり不満足です。
前回記載した通り、スケッチに入った抜けたはイベントが提供されていない為
こんな仕組みで行っています。

f:id:kandennti:20210120150914p:plain
皆こんな絵よくかけるよなぁ・・・。
①OnSketchEventクラスでThreadを立ち上げます。Fusion360APIとは無関係で
 Pythonの機能です。
②Threadで0.1秒毎に、_onSketchCheckHandlerクラスを呼び出します。
 これは、CustomEventオブジェクトです。
GUI側の監視します。"スケッチに入った抜けた" は分からないのですが
 "今はスケッチに入っているか?" は拾い出せるので、沢山の "今" を作りました。
④実際に作業者がスケッチに入ったり抜けたりします。
 ・・・良く考えたら絵が違うな。別に通知しているわけじゃないです。
 監視されているだけです。
⑤"スケッチに入った抜けた" が分かったら、視点をX軸が水平になるように
 回転させます。

不満なのは⑤の部分です。本当はこの様にしたかったんです。
f:id:kandennti:20210120152009p:plain
_onSketchCheckHandlerクラスは判断出来た時に回転させていますが、
判断だけを行わせたかったんです。
最初はそのようにコードを書いたのですが、ちっとも反応してくれない為
諦めました。

"CustomEventオブジェクト" と言う名称なのだから、トリガーが発生した際のみ
イベントが発生するようにしたいんだけどなぁ。