雛形を流用するために作ったこちらのマクロ
アクティブなブロックを未計算ツールパスに反映させる - C#ATIA
制限的な部分が有るものの、一応機能していたので使っていたのですが、
処理が地味に遅いので・・・。
何か方法が有るのではないかな? と思っていたのですが、どの様に
すれば良いのか? 全く手掛かりが有りませんでした。
フォーラムをボサッと眺めていたら、手動で行うこの操作が大きなヒントになりました。
Solved: Copy block to other toolpaths - Autodesk Community
こんな方法知らなかったです。
又、以前のマクロでは不満だった以下の部分も修正しました。
・任意の未計算ツールパスを選択可能に
・ブロックのタイプを全て可能に
・作業平面も反映
・安全領域も反映
又、こちらも必要です。
"group" フォルダは犠牲にした、プルダウンリストライブラリ - C#ATIA
//pm2017 macro //アクティブなブロック・作業平面・安全領域を反映 //using downmenu.inc function main() { //未計算ツールパス取得 string filter = 'Computed == 0' string list paths = extract(filter(folder('toolpath'), filter), 'name') if is_empty(paths) { message wran '未計算ツールパスが見つかりませんでした' macro abort } //ユーザー選択 string msg = '計算するツールパスを選択してください' call Exec_DownMenu($paths, $msg, 1, $paths) //バッチ処理 call Msgoff() call Sw_Start() foreach path in $paths { string fullpath = pathname('toolpath', $path) EXPLORER SELECT Toolpath $fullpath NEW EDIT PAR SELECTED block EDIT PAR SELECTED Workplane EDIT PAR SELECTED Rapid } call Msgon() call Sw_GetTime() //終了 message info 'Done' } function Msgoff() { graphics lock dialogs message off dialogs error off } function Msgon() { graphics unlock dialogs message on dialogs error on } function Sw_Start() { CLOCK RESET QUIT CLOCK ON QUIT } function Sw_GetTime() { CLOCK OFF QUIT CLOCK PRINT QUIT } include downmenu.inc
速度Upした大きな要因は、以前のものでは変更するツールパスを毎回アクティブに
していたのですが、今回のものは単に選択しただけの状態で、修正を
反映している事だろうと思われます。
こちらが以前のもの。 処理時間自体は4秒ほど。
こちらが今回のもの。 0.8秒ぐらいです。
動画中では安全領域が修正されていない(工具先端位置)状態なのですが、
実際に計算させると、修正が反映されています。
(左:計算前 右:計算後)
今回のデータでは3秒程しか短縮していませんが、実際の業務では
もっと多くの工程があるため、より多くの効果を体感します。
他の作業と平行して行うほど時間がかかる訳でもなく、瞬時に処理が
終わるわけでもなく、あくまで "処理が地味に遅い" だったため
若干ストレス感じていました。
時間的な効果より、気持ちの面での効果のほうが大きいのが本音です。