PowerMillで単体の要素の無効化(未計算状態)、ツールパス等のフォルダ全体を
無効化出来るのですが、任意の複数の要素だけを無効化することが出来ません。
その為のマクロを作成しました。
//pm2019 macro //Invalidate.mac Ver0.0.1 //無効 //--------------------------------------------------------------------------------------------------- //<?xml version="1.0" ?> //<menupage> // <button label="無効化" // command='MACRO Invalidate.mac $FolderName' multiple_selection="allowed" /> //</menupage> //--------------------------------------------------------------------------------------------------- //ver0.0.1:完成 //--------------------------------------------------------------------------------------------------- //param:folName-フォルダ名 Function Main(string folName) { //ツールパスリスト string list lst = {} call GetSelList($lst) //実行 call Exec_Invalidate($folName, $lst) } //無効 Function Exec_Invalidate(string folName, string list lst) { string code = '' switch $folName { case 'toolpath' $code = 'INVALIDATE TOOLPATH ' break case 'boundary' $code = 'INVALIDATE BOUNDARY ' break case 'stockmodel' $code = 'UNLOCK STOCKMODEL ' break default return } call Msgoff() string cmd = '' foreach itm in $lst { $cmd = $code + ' ' + $itm DOCOMMAND $cmd } call Msgon() } //選択名リスト Function GetSelList(output string list out) { $out = extract(explorer_selected_entities() , 'name') IF is_empty($out) { string msg = '要素がが選択されていない為、中止します' MESSAGE ERROR $msg MACRO ABORT } } function Msgoff() { graphics lock dialogs message off dialogs error off } function Msgon() { graphics unlock dialogs message on dialogs error on
コンテキストメニューでの呼び出しです。
各XMLファイルは、マクロの引き数にフォルダ名(toolpath,boundary,stockmodel)にします。
<menupage> <button label="無効化" command='MACRO all\Invalidate.mac "toolpath"' multiple_selection="allowed" /> </menupage> <menupage> <button label="無効化" command='MACRO all\Invalidate.mac "boundary"' multiple_selection="allowed" /> </menupage> <menupage> <button label="無効化" command='MACRO all\Invalidate.mac "stockmodel"' multiple_selection="allowed" /> </menupage>
ストックモデルの処理はこれで良いのかな?