C#ATIA

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

globalな変数宣言位置

こちらに記載したのですが、Pythonグローバル変数の宣言位置に
ついて教えて頂きました。
Solved: Re: Does not work [Command Inputs API Sample] - Autodesk Community
宣言位置が悪いために、スプリクトの実行もデバッグも出来ない状態でした。
Helpに記載されたサンプルコードにも関わらず・・・。

f:id:kandennti:20191113104411p:plain
サンプルではこのようになっていますが、
f:id:kandennti:20191113104437p:plain
この位置じゃないとダメだよ って事です。
よく見れば、ダメな方は宣言前に黄色の部分で変数を使用してますね。

但し、関数に入ってすぐの位置じゃないとダメ! って言う
コーディングルールを探したのですが見つかりませんでした。

単純に使用する直前に宣言すれば良いのかな?と思いこのようにしたところ
f:id:kandennti:20191113104821p:plain
これでOkでした。 まぁ当たり前のような気はします。
それでも、python3.5の時はこのサンプル問題無く動いていたので、
3.7になってからは厳密にチェックされるようになったのでしょう。
(3.7になってから動かなくなったスプリクト・アドインはこの辺りが
 原因の一つのような気もしてます)

それ以上に教えて頂いた収穫は、デバッグが出来ない状態の際、
こちらのターミナルでのデバッグで原因が見つけられるよ!と言う事です。
f:id:kandennti:20191113105506p:plain
Fusion360側は何も反応しないのですが、コーディング的なエラーは
吐き出してくれます。 いつも当てにしてなかったので無視してました・・・。


こちらのコメントに修正を記載しましたが、これも3.5では潜り抜け
3.7からのチェックで引っ掛かったのだろうと思われます。
サイクロ減速機のためのFusion360のスクリプト作りました(微修正) - 工学系チキンによる工作ブログ