C#ATIA

↑タイトル詐欺 主にFusion360API 偶にCATIA V5 VBA(絶賛ネタ切れ中)※記載されている内容は個人の意見であり、所属する団体等を代表する意見では御座いません・・・・よ!

図面サイズを取得する

モロモロの事情があり図面の用紙サイズの取得を試みました。
ここです。忘れていましたが、Fusionです。

まぁ何を隠そう、Drawには殆どAPIが提供されていないため裏ワザを使うしかありません。

# Fusion360API Python script

import traceback
import adsk.core as core
import adsk.drawing as drawing

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

        if not drawing.Drawing.cast(app.activeProduct):
            show_msg("図面をアクティブにしてください")
            return

        res: str = app.executeTextCommand("Toolkit.browser")
        txts = [txt for txt in res.split("\n") if "シート サイズ:" in txt]
        if len(txts) < 1:
            show_msg("用紙サイズが不明です")
            return
        
        show_msg(txts[0])

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


def show_msg(msg: str):
    ui = core.Application.get().userInterface
    ui.messageBox(msg, "図面サイズ取得")

おぉ出来た! と思ったのですが、最初の1枚目しか機能していないようです。
APIがサポートされるまで待ちましょう。