C#ATIA

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

"プロパティをリセット"コマンドをマクロで実行2

こちらの続きです。
"プロパティをリセット"コマンドをマクロで実行1 - C#ATIA

基本的に断念しているのですが、"UI Automation"と言うものの存在を
知りました。
【VBAでUIAutomation】アプリケーションをマクロで動かす | やろまいCode

"UI Automation catia"で検索すると、自分のところがHit・・・。
UI Automation - C#ATIA
"時間出来たら試そう。"って書いていますが、試していません。

ちょっと試したものの、とにかく難しい。
難しくしている一番の原因は、ローカルウィンドウで中身を見れない
状態になる事です。自分の場合、これが見れないとほぼお手上げです。


同じような事が出来るpythonモジュール無いかな?と思ったところ
"pywinauto"と言うものが有りました。
pywinautoでRPA(自動化)◇導入編【Python】 - プログラムでおかえしできるかな

試したところ"UI Automation"より楽そうです。
vscodeが使える時点で、かなり楽・・・)

チョロチョロ試しつつ、こんな感じのものを作りました。

# catia - python

from pywinauto import Desktop
apps: Desktop = Desktop(backend="uia")

catia_com = apps["CATIA V5"]
catia_com["子に適用"].click()
catia_com["プロパティをリセット"].children()[0].click()

念のため、先日利用していたpycatiaは未使用です。

実際の動作はこの様な感じです。


最初に画面左では、"子に適用"のチェックをOFFで"プロパティをリセット"を
手動で行っています。(結果的に色はリセットされない)

続いて、"プロパティをリセット"ダイアログを表示させた状態で、
先程のスクリプトを実行させています。
御覧の通り、色はリセットされます。

但し、何でメニューのドロップダウンが全部開くの?
これを防がないと、処理も遅くなる・・・。