PowerMillには僕の知る限り、古いバージョンからフォルダの機能があります。
このフォルダなのですが、WinなExplorer(ディレクトリ)とはちょっと挙動が
異なり、何となく要望があって後から付け加えた機能にも感じます。
もちろんフォルダ機能が無ければ、Treeが長すぎて扱いにくくなる為
活用しています。(社内では僕だけですが・・・)
このフォルダを展開したり縮小したりが・・・・まとめて出来ない!
そう、CATIAのこんな感じの機能が欲しいんです。
(CATIAもここにあるので、案外使わないのですが)
こちらのすごいマクロを参考に作ってみました。
(正確には、ほぼパクリ)
Solved: Create macro to pick folder and activate it - Autodesk Community
まず、実際にフォルダの展開縮小を行うマクロです。
(TreeExpansion.mac としておきます)
//PMill_Macro //TreeExpansion.mac function main(string FolderType, int Level) { string list ValidFolderNames={'ncprogram','toolpath','tool','boundary','pattern','featureset','featuregroup','workplane','model','stockmodel'} IF not member($ValidFolderNames,lcase($FolderType)) { MESSAGE ERROR '不適切なフォルダ名です!' RETURN } string list Folders = get_folders($FolderType) IF (size($Folders) == 0) { RETURN } $Folders=reverse($Folders) string cmd = 'EXPLORER SELECT $FolderType ROOT' DoCommand $cmd //全部閉じる if $Level == 0 { DEBUG EXPLORER KEY LEFT RETURN } DEBUG EXPLORER KEY RIGHT_RECURSIVE //全部開く if $Level < 0 { RETURN } foreach ff in folders { EXPLORER SELECT FOLDER $ff NEW DEBUG EXPLORER KEY LEFT } //1レベル if $Level == 1 { RETURN } //nレベル string list Lv_n_Fols = {} foreach ff in folders { string list f=tokens($ff,'\') IF (size($f) == ($Level + 1)) { int dmy = add_last($Lv_n_Fols, dirname($ff)) } } if size($Lv_n_Fols) == 0 { //指定レベルまでフォルダなし-全展開 string cmd = 'EXPLORER SELECT $FolderType ROOT' DoCommand $cmd DEBUG EXPLORER KEY RIGHT_RECURSIVE RETURN } foreach ff in Lv_n_Fols { EXPLORER SELECT FOLDER $ff NEW DEBUG EXPLORER KEY RIGHT } }
念のため、このマクロ単体では動きません。
CATIAの様にメニューからの呼び出しが面倒な為、マクロの呼び出しはコンテキストメニューから
行いたいです。 以前行ったこちらの様に。
工具コンテキストメニューから工具変更 - C#ATIA
その為、toolpath.XML に追記します。
(この辺の方法は、Helpのカスタムメニュー辺りに記載されています)
<?xml version="1.0" encoding="utf-8" ?> <menupage> <menupage label="ツリー展開"> <button label="全て縮小" command='MACRO all\TreeExpansion.mac "toolpath" 0' /> <spacer/> <button label="1次展開" command='MACRO all\TreeExpansion.mac "toolpath" 1' /> <button label="2次展開" command='MACRO all\TreeExpansion.mac "toolpath" 2' /> <button label="全て展開" command='MACRO all\TreeExpansion.mac "toolpath" -1' /> </menupage> ・・・ </menupage>
実際に設定した上での操作はこんな感じです。
個人的には楽になりそうです。
が、もうちょっと操作性を良くしたいんですけど、設定ファイルを編集する
必要性が有りそうなので、迷い中。