C#ATIA

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

SelectionEffectテスト

テキストコマンド(txt)の効果を身をもって感じたいので、少しテストしてみたいです。

ちょっと前に感じたことがありまして、Fusion360APIで要素を選択した際の処理が
ちょっと重たいです。
f:id:kandennti:20200520170027p:plain
設定にもよりますが、赤い矢印の状態です。

CATIAの場合はこちらに記載した
SetCATIADotHSOSynchronizedToFalse - C#ATIA

CATIA.HSOSynchronized

に該当するものをFusion360で探しています。

で、それっぽいテキストコマンドが見つかったのでテスト用にこんなものを
作りました。

#Fusion360API Python script
import adsk.core, adsk.fusion, traceback
import time

_app = adsk.core.Application.cast(None)
_ui = adsk.core.UserInterface.cast(None)
_root = adsk.fusion.Component.cast(None)

def run(context):
    try:
        global _app, _ui, _root
        _app = adsk.core.Application.get()
        _ui = _app.userInterface
        des  :adsk.fusion.Design = _app.activeProduct
        _root = des.rootComponent

        cmdLst = [
            u'Options.SelectionEffect /normal',
            u'Options.SelectionEffect /fast',
            u'Options.SelectionEffect /simplified',
            u'Options.SelectionEffect /no',
            u'Options.SelectionEffect /degraded'
        ]
        for cmd in cmdLst:
            [execTest(cmd) for i in range(5)]
            print('-----')

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

def execTest(txtCmd :str):

    global _root
    bs = _root.bRepBodies
    actSels = _ui.activeSelections    
    _app.executeTextCommand(txtCmd)

    actSels.clear()
    st = time.time()

    for b in bs:
        actSels.add(b)

    t = time.time() -st

    print('{} -> {}s'.format(txtCmd, t))

アクティブな状態のファイルのボディを全て選択するだけです。
5回づつ繰り返し、その時間を出力してます。

画像を出せないのですが、ボディ1100枚ぐらいのデータで実行した結果がこちら

Options.SelectionEffect /normal -> 2.3836963176727295s
Options.SelectionEffect /normal -> 2.2319092750549316s
Options.SelectionEffect /normal -> 2.222975492477417s
Options.SelectionEffect /normal -> 2.2937395572662354s
Options.SelectionEffect /normal -> 2.2179768085479736s
-----
Options.SelectionEffect /fast -> 2.186089515686035s
Options.SelectionEffect /fast -> 2.3617985248565674s
Options.SelectionEffect /fast -> 2.2748820781707764s
Options.SelectionEffect /fast -> 2.2282962799072266s
Options.SelectionEffect /fast -> 2.25492262840271s
-----
Options.SelectionEffect /simplified -> 2.2594237327575684s
Options.SelectionEffect /simplified -> 2.265821933746338s
Options.SelectionEffect /simplified -> 2.185194969177246s
Options.SelectionEffect /simplified -> 2.2250354290008545s
Options.SelectionEffect /simplified -> 2.200432062149048s
-----
Options.SelectionEffect /no -> 2.2181003093719482s
Options.SelectionEffect /no -> 2.25087571144104s
Options.SelectionEffect /no -> 2.2310099601745605s
Options.SelectionEffect /no -> 2.2421138286590576s
Options.SelectionEffect /no -> 2.1832878589630127s
-----
Options.SelectionEffect /degraded -> 2.1895904541015625s
Options.SelectionEffect /degraded -> 2.3406481742858887s
Options.SelectionEffect /degraded -> 2.218195676803589s
Options.SelectionEffect /degraded -> 2.3040049076080322s
Options.SelectionEffect /degraded -> 2.2557156085968018s
-----

効果無さそうです・・・。
使い方は間違っていると思わないんですけどね。