C#ATIA

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

getTextメソッドのパラメータ

今年のUpdateで追加されたgetTextメソッド。
Fusion 360 Help
多言語対応させるため利用したい気持ちが強いんです。

この第一引数は何を指定すれば良いのか? が、ハッキリと記載されて
いないんです。
以前、見つけたのですが忘れちゃったので覚書です。

まず、テキストコマンドでこちらを実行。

paths.get

出力されたパス内の "rootDirectory" 内に "StringTable" フォルダーがあり
こちらの中に入っているxmlファイルの様です。
但し、"StringTable" フォルダーに直接xmlファイルが入っている訳では無く、
言語別のフォルダが存在していて、さらにその中です。

Winの日本語の場合では

C:/Users/<PCアカウント>/AppData/Local/Autodesk/webdeploy/production/<Fusion360バージョンフォルダ>/StringTable/ja-JP/

この中のxmlファイルです。

但し、getTextメソッドを利用する際は、現在の言語を気にせずに使用出来るように
なっているようです。

かなり無意味で出来合いのサンプルを作るとこんな感じです。

# Fusion360API Python script

import traceback
import adsk.fusion
import adsk.core

def run(context):
    ui = None
    try:
        app: adsk.core.Application = adsk.core.Application.get()
        ui: adsk.core.UserInterface = app.userInterface

        lst = [
            "lclzTutorialType3Axis",
            "lclzTutorialType3DPrint",
            "lclzTutorialTypeAnimate",
            "hoge",
        ]

        for key in lst:
            res = ui.getText('Fusion360App', key, "見つからん")
            print(f'{key} -> {res}')

    except:
        if ui:
            ui.messageBox('Failed:\n{}'.format(traceback.format_exc()))

実行すると

lclzTutorialType3Axis -> 3 軸機械加工
lclzTutorialType3DPrint -> 3D プリント
lclzTutorialTypeAnimate -> アニメーション
hoge -> 見つからん

となります。

要はFusion360内で表示される言語別のメッセージや用語を、自作のアドイン等でも利用したい
思った時(今)に利用出来るだろと思っていたのですが、上手く行かなくて落ち込んでる。