今のところ、PowerMillのマクロの呼び出しは
・リボンのボタン
・コンテキストメニュー
を用途に応じて行っているのですが、他の方法もある事は薄々知ってます。
こちらにサンプルが添付されているのですが
Discussion: Options to create PowerMILL automation - Autodesk Community
HTML + VBScript で行われています。
DotNetで開発する際もそうだったような気がするのですが、
PMill独自言語以外の場合は、結果的に[DoCommand]
[DoCommandEX] 等で文字列としてコマンドを渡し実行する事になり、
非常にデバッグが行いにくい為、不便です。
その為、リンク先のサンプルを元に、HTMLファイルは外部のマクロを
呼び出すだけのものを作ってみました。
1.実行されるマクロ
何でも良いのですが、こちらのマクロを呼び出すことにします。
水平面高さリストを表示2 - C#ATIA
これを仮に
C:/temp/Hoge.mac
と言うパスで保存しておきます。
2.呼び出し用HTMLファイル
添付されているサンプルを元にしたのですが、不要となる部分を
ごっそりそぎ落とし、最低限のボタン1個だけのものにしました。
<feff><HTML> <HEAD> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </HEAD> <BODY><feff> <feff> <feff> <feff> <script language=vbscript> <!-- Set PM=Window.External '必要 Sub Button_CallMacro_Onclick PM.DoCommand("MACRO 'C:/temp/Hoge.mac'") 'マクロの呼び出し PM.DoCommand("SPLITTER TABEXPLORE") 'エクスプローラツリーの表示を戻す End Sub --> </script> <input id=Button_CallMacro type=button value="Call Macro"> </BODY> </HTML>
これを
C:/temp/HTML_Call_Macro.html
として保存します。
3.HTMLファイルの表示ボタン
HTMLファイルをD&Dしても良いのですが面倒な為、ショートカットキーに割り当ててみます。
又、表示させる際は通常のブラウザで利用した場合、複数PMillを
起動していた際、任意のPMillではない方で実行される可能性が
あるため、こちらのPMill内のブラウザで表示させます。
ショートカットの設定はこんな感じです。(空いていたので F7キー にしています)
[Command]部分には
PMILLHELP URL 'C:\temp\HTML_Call_Macro.html'
と、しました。
PMill内のブラウザで表示させるのは、Helpファイルとして表示させるようですね。
HTMLファイルが非常に手抜きで、W3C仕様にも程遠いのですが、
・マクロ自体は単体として開発可能
・HTMLの表現力
のメリットが得られそうです。
(特にイロイロと設定・指定した上で実行するマクロにはメリット有りそう)
実際テストしたのは、こんな感じです。
デバッグ考えたらCATIAもVBAが一番楽だと思うんですけどね。
Pythonでやりたい方が、すごいの作ったみたいですが・・・。
GitHub - robertpardillo/rice: Python API to control Catia