ソフトウェア/Fusion360 の履歴(No.13)
更新Fusion 360 について†
目次です:
ウィルスバスターが動いていると起動しない†
Autodesk Fusion 360 が初期スプラッシュ画面でフリーズしてしまいます。
公式のトラブルシューティングでは「機械学習を無効にせよ」と書かれていたのですが、 コーポレートエディションでは(?)最近のバージョンでは(?)この項目はありませんでした。
代わりに Autodesk のフォルダにリアルタイム検索の除外設定、Fusion360 自体の信頼済み設定、をすれば良いようでした。
- タスクトレイのウィルスバスターのアイコンをダブルクリック
 - 歯車マークの「設定」をクリック
 - [保護]-[リアルタイム検索] の「検索除外」に以下を追加 
C:\Users\(ユーザー名)\AppData\Local\Autodesk
C:\Users\(ユーザー名)\AppData\Roaming\Autodesk - [保護]-[信頼済みプログラム] に以下を追加 
C:\Users\(ユーザー名)\AppData\Local\Autodesk\webdeploy\production\XXXXX...XX\Fusion360.exe
プログラムの場所は Windows の [スタートメニュー]-[プログラム]-[Autodesk] の Autodesk Fusion 360 のアイコンを右クリックして [ファイルの場所を開く] したら、そこにある Autodesk Fusion 360 のアイコンを右クリックして [プロパティ] の中の [リンク先] を見ると分かる。 
これで動きました。
新しいバージョンに更新すると Fusion360.exe の場所が変更になるのでまた指定しなおさなければならないのだと思います。
→ 最近は大丈夫そう???
初心者用チュートリアル†
とりあえずこのあたりをやってみればいいのかな?
https://www.autodesk.co.jp/campaigns/fusion-360/tutorial/beginner
これまで覚えた操作(よく使う操作)†
- スケッチ
- 作成
- L[ine] で線分&ドラッグで接線円弧
 - R[ectangle] で長方形
 - C[ircle] で円
 - D[imension] で寸法
 - メニューから中心点円弧(角度は後から入れないと余計な補助線が書かれてしまう)
 - メニューから円形状パターン
 
 - 書いた線を右クリックから、中心線やコンストラクション線に変更
 - [修正] のフィレットや面取りはソリッドにしてからでも良いような?
 - 拘束
- 水平・垂直
 - 一致 (点と点、点と線)
 - 接線
 - 等しい(サイズ)
 - 平行
 - 垂直(実際に交わっていない線分にも使える)
 - 中点
 - 同心円(中心点の一致を取りにくいほど円弧が大きいとき?)
 - 同一直線上(線と線(点と線ならは [一致] を使う))
 - 対称
 
 - 検査
- I[nspect] で計測(図に書き込まない [寸法] のようなもの)
 
 - 画面表示
- F6 で全体が入るようにズームを調整
 
 
 - 作成
 - ソリッド
- 作成(同時に結合ができる)
- E で押し出し
 - メニューから 回転
 - H で穴
 - メニューから ねじ
 
 - 修正
- Q でプレス・プル
 - F[illet] でフィレット
 - メニューから面取り
 - メニューから結合(複数のソリッドを1つにまとめられる。和、差、積などの演算も可能)
 - M[ove] で移動・コピー
 
 - 検査
- 断面解析(どうやって元に戻すの?)
 
 - ボディを1つ選択して右クリックから [メッシュとして保存] を選ぶと STL にエクスポートできる
 
 - 作成(同時に結合ができる)
 
一連の操作に対して、後から「過去を修正」できるのが素晴らしいですね。
Python API に関する覚書†
vscode の設定†
Fusion 360 の 「スクリプトとアドイン」 の「作成」や「編集」から VSCode を起動すると、 .vscode/settings.json などを自動的に作成してくれるので、 python.defaultInterpreterPath, python.analysis.extraPaths, python.autoComplete.extraPaths あたりを手動で設定する必要はない。
特に python.defaultInterpreterPath については Fusion 360 のアップデートごとにパスが変更になるので、 python インタープリタがうまく起動できなくなってしまったらもう一度 Fusion 360 から「編集」を選んで .vscode/settings.json の設定を更新してもらう必要がある。
デバッグの方法†
VSCode の Run and Debug で Python: Attach すればデバッガーを起動できる。
カレントフォルダがパスに追加されない†
スクリプトと同じフォルダにある *.py ファイルのインクルードに失敗する
LANG: python import sys import pathlib import adsk.cam import adsk.core import adsk.fusion # このフォルダーをパスに追加 #!ここより上ではローカルファイルをインクルードしないこと # https://kantoku.hatenablog.com/entry/2022/09/08/172858 THIS_DIR = str(pathlib.Path(__file__).resolve().parent) sys.path = [THIS_DIR] + [p for p in sys.path if THIS_DIR != p]
のようにして、検索パスの頭に現在のディレクトリを追加してしまうのがいいみたい。
通常は自動的に追加されるのだけれど Fusion 360 から起動されたスクリプトではそれが入らない。
https://docs.python.org/ja/3.12/library/sys_path_init.html
スクリプトの終了時には、
LANG: python
def restore_system_path():
    sys.path = [p for p in sys.path if THIS_DIR != p]
を呼んで元に戻す必要がある。
インポートしたモジュールが更新されない†
import して使っているサブモジュールを編集してもその編集が反映されない。
LANG: python
import importlib
 
def run(_):
    try:
        # サブモジュールを強制的にリロードする
        importlib.invalidate_caches()
のようにして強制的にリロードする必要がある。
adsk.core.EventHandler が実行時に存在しない†
イベントハンドラを取っておくリストを
LANG: python _handlers: list[adsk.core.EventHandler] = []
のように確保していたところ、
   _handlers: list[adsk.core.EventHandler] = []
                   ^^^^^^^^^^^^^^^^^^^^^^
AttributeError: module 'adsk.core' has no attribute 'EventHandler'
というエラーが発生してしまった。
バグっぽい???
さしあたり、
LANG: python
_handlers: list[
    adsk.core.ApplicationCommandEventHandler
    | adsk.core.CommandCreatedEventHandler
    | adsk.core.CommandEventHandler
    | adsk.core.InputChangedEventHandler
] = []
とすることで回避した。