C#ATIA

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

ターミナルで実行の 'adsk' モジュール見つからん問題解消

前からうっとうしいと感じていたのですが、こちらのターミナルで実行の
やつですが
f:id:kandennti:20191220181401p:plain
最初はわからなかったのですが、文法的な間違い等をチェックするのに
高速で便利です。実行すると
f:id:kandennti:20191220181411p:plain
緑のところで、「'adsk'なんてモジュール無いよ!」と訴えかけてきます。
これは再三APIフォーラムでも出てきてます。


薄々気が付いていたのですが、要はパス切ってやれば解決するだろうと。

'adsk'モジュールのパスは、ここに記載されています。
f:id:kandennti:20191220181420p:plain
各フォルダ内に作成される ".vscode" フォルダ内の "settings.json" ファイルの
"python.autoComplete.extraPaths" です。

これをpythonに教えてあげれば良いんですね。

#Author-
#Description-

import sys
sys.path.append("C:/Users/xxx/AppData/Roaming/Autodesk/Autodesk Fusion 360/API/Python/defs")

import adsk.core, adsk.fusion, adsk.cam, traceback

def run(context):
    ui = None
    try:

・・・

こんな感じの先頭に追記します。
正確にはパスが存在するかどうかをチェックすべきなのですが・・・。


実際に実行してみると
f:id:kandennti:20191220181432p:plain
'adsk'モジュールを見つけてくれたようで、エラーを出さなくなりました。
パスの感じからしても、Updateの影響が無さそうな位置なので、
雛形に追記しておいても良さそうです。
http://kantoku.hatenablog.com/entry/2019/11/29/122452

でも、静的構文チェック拡張のPyrightを使っちゃうと
f:id:kandennti:20191220181440p:plain
ご丁寧に、赤いアンダーラインで教えてくれるんですよね。
開発側もこれに気が付いているのだろうと思います。
その為、settings.jsonファイルのここを false にしているんでしょう。
f:id:kandennti:20191220181448p:plain