実行規則
 
マクロ実行に関連する次の規則についてみてみます。
非同期モードでは、マクロは ProMacroLoad() によってロードされるとただちに実行されます。
同期モードでは、マップキーまたはマクロ文字列はスタックにプッシュされ、制御が Creo TOOLKIT プログラムから Creo Parametric に返った場合にのみポップされて実行されます。スタックは後入れ先出しであるため、ProMacroLoad() の 1 回の呼び出しで全体を渡すことができないマクロの文字列は、実行する順序とは反対の順序でロードされます。
Creo TOOLKIT からマクロを実行するには、ProMacroExecute() 関数を呼び出します。この関数は Creo Parametric マクロを実行し、制御を Creo TOOLKIT アプリケーションに返します。この関数は、ProMacroLoad() を使用して以前にロードされたマクロを実行します。この関数は同期モードでのみ機能します。
次の操作中には ProMacroExecute() 関数を呼び出さないでください。
ダイアログボックスボックスのアクティブ化中またはカレントモデルの設定中
カレントモデルの消去中
トレイルファイルのリプレイ中
ダイアログボックスの「OK」ボタンをクリックすると、コマンド操作が完了します。この場合、コマンド操作が終了しなくてもダイアログボックスが一時的に表示されることがあります。
終了処理をキャンセルすることで、終了確認がマクロとして組み込まれたダイアログボックスのみを実行できます。
マクロで指定したコマンドが現在メニューでアクセス不可能になっているので、マクロを実行できないことがあります。ProMacroExecute() が正常に実行されるかどうかは、実行されるコマンドがそのときの状況に対してどのような優先順位になっているかによります。
部品名の入力のようにキーボードからの入力を求めるコマンドがある場合は、入力して ENTER キーを押すと、マクロの実行が続行します。ただし、スケッチ平面の選択のように、マウスで何かを選択する必要がある場合は、マクロは中断し、文字列内の残りのコマンドは無視されます。
このようにして、アプリケーションは繰り返される選択操作を代わりに実行する、オブジェクトに依存しないマクロを作成できます (ただし、ユーザーがジオメトリを選択する必要がない場合に限ります)。
マクロ文字列を定義する ProStringToWstring() 呼び出しの後に、次の呼び出しを行う必要があります。
ProMacroLoad(macro wstring) マクロ文字列またはマップキーをロードします
ProMacroExecute() マクロを実行します
さまざまな状況におけるマクロの例を次に示します。
これは役に立ちましたか?