C#ATIA

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

CAMのオペレーションを選択したい

こちらをちょっと挑戦しようかと思ってます。
Solved: How do change an orientation of operation by Python? - Autodesk Community

そもそも、Fusion360のCAMはAPIが提供されているものの、
あまり細かな処理までは提供されていないんです。
が、相変わらずAPIを利用して手っ取り早く行いたい方が
いらっしゃるのも事実です。

APIで提供されていない処理を行う為には、テキストコマンドを
利用する以外思いつかないので、そっちの方向で考えています。

f:id:kandennti:20210531174929p:plain
テキストコマンドでゴニョゴニョする為には、対象となる要素を
選択する必要がある場合が多いので、まずこちらを選択状態にしたいんです。

そこでこんな感じのスクリプトを作成しました。

import adsk.core, adsk.cam, traceback

def run(context):
    ui = None
    try:
        app = adsk.core.Application.get()
        ui = app.userInterface
        doc = app.activeDocument
        products = doc.products
        cam = adsk.cam.CAM.cast(products.itemByProductType("CAMProductType"))

        setups = cam.setups
        setup = setups[0]

        operation = setup.operations[0]
        sels = ui.activeSelections
        sels.clear()
        sels.add(operation)
    except:
        if ui:
            ui.messageBox('Failed:\n{}'.format(traceback.format_exc()))

結果・・・選択時にエラーです。駄目なんだCAMの要素は・・・。


過去に、オブジェクトとして提供されていない要素を強制的に選択する
事を取り組みました。こちらのシリーズです。
オブジェクトとして提供されない要素を選択する4 - C#ATIA
細かな事は割愛しますが、こちらも駄目でした。


もう一つ、"onk"(何の略称か、いまだ不明)を利用する方法であれば選択可能
なのは確認しましたが、"onk" の取得自体、選択する必要がありこちらも
行き詰まり。


この続きが書ける気がしない。