マシニングセンターで加工する前に材料の位置やサイズ、ワーク座標系等
どうやって確認するのが一般的なんでしょうか?(・・・知りたい)
これらのミスでオシャカを作った場合(だけではないと思いますが)対策書を
書かされる企業も多くあるかと思いますが、大半の対策は「よく確認する」に
なってしまうのも本音なところw
僕のところでは暗黙的なルールとして、材料の天面をクルッと走らせるだけの
簡単なツールパスを走らせて確認しています。こんな感じの緑の線です。
機械が一生懸命仕事をしているのを拝んでる暇が無いので、この確認だけで
あとは放置です。基本的に。
実はこんな簡単なツールパスなのですが、PowerMillでは空中に浮いている
無意味なものを作るのが結構難しい?面倒?なのです。
そこでマクロを利用し手っ取り早く作れるようにしました。
//pm2018 macro //チェックパス作成 function Main(string toolname) { bool yn = 0 string msg = '' string pro_ptf_path = 'check_path.ptf' //Planesモデルチェック if entity_exists(entity('Model','Planes')) > 0 { $msg = 'Placesモデルを削除しマクロを実行しますか?' $yn = QUERY $msg if $yn < 1 { return } else { Call Del_Planes() } } //**ユーザー選択** //モデル $msg = '参照モデルを選択してください' string list models = input entity multiple model $msg if is_empty(models) { return } //平面高さ $msg = '平面高さを入力して下さい' real Top = -1 call InputReal($Msg, Block.Limits.ZMax, $Top ) if $Top < 0 { return } //確認 $msg = '工具 [ ' + $toolname +' ] 高さ [ ' + $Top+' ] で作成しますか?' $yn = QUERY $msg if $yn < 1 { return } //**処理** call DialogOff() //ダミー面作成選択 call Deactivete_All() call Select_Models(models) call Setting_Block($Top) call Init_Plane($Top) EDIT MODEL "Planes" SELECT ALL //工具 ACTIVATE TOOL $toolname real offset_lng = tool.Diameter / 2 * -1 //チェックパス作成 call Inport_strategy($pro_ptf_path, $offset_lng) //ダミー面削除 Call Del_Planes() call DialogOn() message info 'Done' } //ストラテジー呼び出し・計算 function Inport_strategy(string path, real offsetlng) { string newToolpath = new_entity_name('Toolpath') IMPORT TEMPLATE ENTITY TOOLPATH TMPLTSELECTORGUI $path EDIT PAR 'RadialOffset' $offsetlng EDIT TOOLPATH SAFEAREA CALCULATE_DIMENSIONS EDIT TOOLPATH $newToolpath CALCULATE FORM ACCEPT SFPatternProf string rename = new_entity_name('Toolpath','check') RENAME Toolpath $newToolpath $rename // DRAW Toolpath $rename//表示はお好みで } //Planes モデルとレベルの削除 function Del_Planes() { DELETE MODEL "Planes" DELETE LEVEL "Planes" } //ダミー面作成 function Init_Plane(real top) { CREATE PLANE ; $top } //ブロック修正 function Setting_Block(real top) { FORM BLOCK EDIT BLOCK ALL UNLOCK EDIT BLOCKTYPE BOX EDIT BLOCK COORDINATE WORKPLANE EDIT BLOCK RESETLIMIT "0" EDIT BLOCK TOLERANCE "0.1" EDIT BLOCK LIMITTYPE MODEL EDIT BLOCK RESET EDIT BLOCK ZMAX $top BLOCK ACCEPT EDIT MODEL ALL DESELECT ALL } //指定モデル面の選択 function Select_Models(string list models) { EDIT MODEL ALL DESELECT ALL foreach mdl in $models { EDIT MODEL $mdl SELECT ALL } } //非アクティブ_非表示 - 作業平面は行わない,レベルの非表示は行わない function Deactivete_All() { DEACTIVATE NCPROGRAM DEACTIVATE TOOLPATH DEACTIVATE TOOL DEACTIVATE BOUNDARY DEACTIVATE PATTERN DEACTIVATE FEATURESET DEACTIVATE FEATUREGROUP DEACTIVATE LEVEL DEACTIVATE STOCKMODEL DEACTIVATE GROUP UNDRAW NCPROGRAM ALL UNDRAW TOOLPATH ALL UNDRAW TOOL ALL UNDRAW BOUNDARY ALL UNDRAW PATTERN ALL UNDRAW FEATURESET ALL UNDRAW FEATUREGROUP ALL UNDRAW STOCKMODEL ALL UNDRAW GROUP ALL } //数値入力 不正時は-1を返す function InputReal(string Msg, real Defreal, output real Outreal) { $Outreal = -1 real res = $Defreal $res = input $Msg bool err = 0 $err = error $res if $err { message error '数値を入力して下さい!' return } if $res <=0 { message error '0以上の数値を入力して下さい!' return } $Outreal = $res } //ダイアログ類オン function DialogOn() { GRAPHICS UNLOCK DIALOGS MESSAGE ON DIALOGS ERROR ON ECHO ON DCPDEBUG TRACE COMMAND ACCEPT } //ダイアログ類オフ function DialogOff() { GRAPHICS LOCK DIALOGS MESSAGE OFF DIALOGS ERROR OFF ECHO OFF DCPDEBUG UNTRACE COMMAND ACCEPT }
ツールパスを作成する工具のコンテキストメニューからの呼び出し用のマクロです。
又、本マクロ以外に「輪郭加工仕上げ」機能を有る程度設定している
ストラテジーファイル(PTFファイル)が同一フォルダ内に必要です。
(ので、他人には全く無意味なマクロになっています)
実際に利用した感じはこちらです。
制限です。
・一時的にPowerMill内で平面を作成し、ツールパスを作成しています。
最後に全ての一時的な面を削除している為、同機能を使用し作成された面は
全て削除されてしまいます。
・本ツールパスは「輪郭加工仕上げ」機能を使用し作成されます。
この機能は参照する面を選択して使用する機能ですが、一時的に作成した面を
削除して終了する為、ツールパス自体の再計算が出来ません。
(「送り/速度」「ツールパスコネクター」での再設定は可能です)
その為、修正が必要な場合はマクロを再実行する必要が有ります。