連日作業していて "作ろう作ろう" と思いながら放置していたマクロです。
"選択済みのツールパスから1個のNCプログラムを作る" だけです。
//pm2020 macro //registerNCProgram.mac Ver0.0.1 //選択済みツールパスから1個のNCプログラム作成 //--------------------------------------------------------------------------------------------------- //<?xml version="1.0" ?> //<menupage> // <button label="NCプログラム作成" command='MACRO registerNCProgram.mac' multiple_selection="allowed" /> //</menupage> //--------------------------------------------------------------------------------------------------- //ver0.0.1:完成 //--------------------------------------------------------------------------------------------------- function main() { IF $PowerMILL.Status.MultipleSelection.Total { IF $PowerMILL.Status.MultipleSelection.First == 0 { return } } //ツールパスリスト string list tps = extract(explorer_selected_entities() , 'name') // NCプログラム名 string ncName = '' call getNcName($ncName) // NCプログラム作成 call initNcpro($ncName) // ツールパスを追加 call registerToolPath($ncName, $tps) // 終了 DEACTIVATE NCProgram message info 'Done' } //ツールパスを追加 function registerToolPath(string ncName, string list tps){ call Msgoff() foreach tp in $tps { EDIT NCPROGRAM $ncName INSERT Toolpath $tp LAST } call Msgon() } // NCプログラム作成 function initNcpro(string ncName){ string tmp = new_entity_name('ncprogram') CREATE NCPROGRAM ; EDIT NCPROGRAM ; QUIT FORM NCTOOLPATH NCTOOLPATH ACCEPT FORM ACCEPT NCTOOLPATHLIST FORM ACCEPT NCTOOLLIST FORM ACCEPT PROBINGNCOPTS RENAME NCProgram $tmp $ncName } // NCプログラム名 Function getNcName(output string out) { string ncName = project_pathname(1) $ncName = input 'NCプログラム名を入力' if length($ncName) < 1 { macro about } call getNewName('ncprogram' , $ncName , $out) } // 新たな名前の取得 Function getNewName(string folder , string name , output string out) { if entity_exists(entity($folder ,$name)) < 1 { $out = $name } else { $out = new_entity_name($folder ,$name) } return } function Msgoff() { graphics lock dialogs message off dialogs error off } function Msgon() { graphics unlock dialogs message on dialogs error on }
途中でNCプログラム名を入力するダイアログが出ます。デフォルトは
プロジェクト名です。
ツールパス毎に作ってくれる機能はあるんですけどねぇ。