【MEL更新】ウィンドウの位置をリセット 新Mayaに対応

AriWindowPositionReset001.gif
AriWindowPositionReset

2019/10/14 バグ修正

Maya内で使用するウィンドウを移動させて再表示するツールの更新です。
Maya2017以降の新仕様のウィンドウに対応させ、意図したものだけ移動できるようにUIも付けました。

デュアルディスプレイなど、環境を変化させて、ウィンドウがどこかにいってしまって戻せないときなどに役に立つと思います。



起動

AriWindowPositionResetを実行すると、ウィンドウがMayaメインウィンドウの左上に表示されます。

AriWindowPositionReset002.jpg
こいつ自体がどっかに行ったら元も子もないので、
必ずMayaメインウィンドウの位置にでます。



ウィンドウ移動

移動させたいウィンドウ名の「Reset」ボタンを押すと、
このウィンドウのすぐ右に移動してきます。
AriWindowPositionReset003.jpg


・一体化しているウィンドウは移動しません。(移動するものもあります)
・一部対応していないウィンドウもあります。

・下記の方法で移動させられるウィンドウもあります。
【Mayaあるある】ウィンドウがでない(画面外にいってもどせない)



コピペ用コード


ただこれ、おそらく、困るまではわざわざMELをダウンロードしないですよね?
でも困ったときにはすぐに対処したいですよね?
ということで、今回も、ダウンロードしなくてもコピペですぐに対処できるようにソースコード用意しておきます。
困ったとき思い出してまたこのページに検索か何かで来てくださいw

下記の枠の中を全部コピーして、



global proc AriWindowPositionReset_Reset(){

string $windowList[] = `lsUI -typ "window"`;
string $dockControlList[] =`lsUI -typ "dockControl"`;

print("\ndock--------------------\n\n");
for($dock in $dockControlList){
if(!`dockControl -ex $dock`){
continue;
}
dockControl -e -fl false $dock;
}
int $xy[2];
for($win in $windowList){
if($win == "MayaWindow"){
$xy = `window -q -tlc $win`;
break;
}
}
for($win in $windowList){
if(!`window -ex $win`){
continue;
}
if($win != "MayaWindow" && $win != "learningMoviesLaunchWnd" && $win != "ColorEditor"
&& $win != "CommandWindow" && $win != "gozwin" && $win != "nexFloatWindow" && $win != "AriCompactToolSettingsWindow" ){
window -e -tlc $xy[0] $xy[1] $win;
}
else{
}
}
}
global proc AriWindowPositionReset_ResetGO(string $ui){
print ($ui+"\n");
int $winPos[] = `window -q -tlc AriWindowPositionReset`;
int $winWidth = `window -q -w AriWindowPositionReset`;
int $movePos[];
$movePos[0] = ($winPos[0]);
$movePos[1] = ($winPos[1] + $winWidth + 10);
if(`exists("workspaceControl")`){
if(`workspaceControlState -ex $ui`){
if(`workspaceControl -ex $ui`){
workspaceControlState -e -tlc ($movePos[0]+30) $movePos[1] $ui;
workspaceControl -e -fl true $ui;
return;
}
}
}
if(`window -ex $ui`){
window -e -tlc $movePos[0] $movePos[1] $ui;
}
}
proc AriWindowPositionReset_row(string $ui){
string $label = $ui;
if(`window -ex $ui`){
$label = `window -q -title $ui`;
}
if(`dockControl -ex $ui`){
$label = `dockControl -q -l $ui`;
}
if(`exists("workspaceControl")`){
if(`workspaceControl -ex $ui`){
$label = `workspaceControl -q -label $ui`;
}
}
string $row = `rowLayout -nc 2 -adj 1`;
textField -text $label -ed false;
button -l "Reset" -c ("AriWindowPositionReset_ResetGO(\""+ $ui +"\")");
setParent..;
}
global proc AriWindowPositionReset_Reload(){
global string $AriWindowPositionResetW_SL;
global string $AriWindowPositionResetW_CL;
string $processedUI[];
int $processCount = 0;
string $windowList[] =`lsUI -typ "window"`;
string $dockControlList[] =`lsUI -typ "dockControl"`;
string $dumpWidgetsList[] =`lsUI -dw`;
deleteUI $AriWindowPositionResetW_CL;
$AriWindowPositionResetW_CL = `columnLayout -adj true -p $AriWindowPositionResetW_SL`;
if(`exists("workspaceControl")`){
for($dumpWidgets in $dumpWidgetsList){
if(`workspaceControl -ex $dumpWidgets`){
if(`workspaceControl -q -fl $dumpWidgets`){
AriWindowPositionReset_row($dumpWidgets);
$processedUI[$processCount] = $dumpWidgets;
$processCount++;
}
}
}
}
separator;
for($window in $windowList){
if(stringArrayContains($window,$processedUI))continue;
if(`window -ex $window`){
if($window != "MayaWindow" && $window != "AriWindowPositionReset"){
AriWindowPositionReset_row($window);
$processedUI[$processCount] = $window;
$processCount++;
}
}
}
separator;
for($dockControl in $dockControlList){
if(`dockControl -ex $dockControl`){
if(`dockControl -q -fl $dockControl`){
AriWindowPositionReset_row($dockControl);
}
}
}
setParent..;
}
global proc AriWindowPositionReset(){
global string $AriWindowPositionResetW_SL;
global string $AriWindowPositionResetW_CL;
int $xy[2] = {0, 0};
if(`window -ex "MayaWindow"`){
int $getXY[] = `window -q -tlc MayaWindow`;
$xy[0] = $getXY[0]+10;
$xy[1] = $getXY[1]+10;
}
print ("MayaWindow "+$xy[0]+","+$xy[1]+ "\n\n");
if((`window -ex AriWindowPositionReset`)==true)deleteUI AriWindowPositionReset;
window -tlb true -title "AriWindowPositionReset" -w 300 -h 400 AriWindowPositionReset;
string $form = `formLayout`;
$AriWindowPositionResetW_SL = `scrollLayout -cr true`;
$AriWindowPositionResetW_CL = `columnLayout`;
setParent..;
setParent..;
string $button = `button -l "Reload" -c "AriWindowPositionReset_Reload()"`;
formLayout -e
-af $button "left" 0
-af $button "right" 0
-af $button "bottom" 0
-ac $AriWindowPositionResetW_SL "bottom" 0 $button
-af $AriWindowPositionResetW_SL "top" 0
-af $AriWindowPositionResetW_SL "left" 0
-af $AriWindowPositionResetW_SL "right" 0
$form;
showWindow;
window -e -tlc $xy[0] $xy[1] AriWindowPositionReset;
AriWindowPositionReset_Reload();
}
AriWindowPositionReset



ここにペーストしたらEnterキーです。
AriWindowPositionReset03.jpg




更新

2019/10/14 バグ修正
Mayaを起動した際、既に開いているウィンドウに対して反応がなかったので修正しました。



ダウンロード


MELファイル版もちゃんとあります。
お気に召したらダウンロードしてください。
Download





つぶやき

最近、昔作ったツールを発掘しては、やばいこのままじゃ今のMayaにはダメじゃんと思うのが少しブーム??


テーマ : 3DCG
ジャンル : コンピュータ

tag : Maya, MEL, Mayaあるある, UI, AriWindowPositionReset,

スポンサーリンク

コメントの投稿

非公開コメント

カテゴリ
おすすMEL1
UV格子状整列 AriUVGridding03.gif

UV解像度チェック AriUVScaleChecker01.gif
アクセスランキング
[ジャンルランキング]
コンピュータ
16位
アクセスランキングを見る>>

[サブジャンルランキング]
デザイン
1位
アクセスランキングを見る>>
月別アーカイブ
スポンサーリンク
おすすMEL2
リネーマー AriRenamer01.gif

置換/配置 AriAssetChanger01.gif
記事一覧

全ての記事を一覧

ブログ内検索
プロフィール

Ari

Author:Ari
ExpertElite000.jpg

ゲーム系を中心にモデラーをやってます。プライベートでその他の作業も挑戦中です。
拍手ボタンありがとうございます。テンションあがります。

ツイッターでお知らせなどやってます。よかったらどうぞフォローお願いします。
ツイッターを覗いてみる

MEL
スポンサーリンク
QRコード
QR
タグ

Maya MEL モデリング MEL更新 Mayaあるある UI データ管理 カスタマイズ UV 数値設定 MayaTips ~がない アニメーション モデリングツールキット AriCompactToolSettings つぶやき マテリアル リネーム AriReFreezeRotate AriUVFit AriSetPivot Maya基本 MEL基本 バグ? AriUVGridding 記事まとめ AriSceneOpener ホットキー 新機能 頂点カラー AriMirror AriVertexColorEditor AriCircleVertex AriSelectMaterialAndObject AriRenamer ~ない リトポロジー AriUVScaleChecker テクスチャ アンケート カメラ AriTransferPosition AriPolygonCounter ジョイント AriAniKeyCycle スケルトン AriSortOutliner AriIconViewer AriUVRatio AriSelectEdgeRing AriSplitPolygon AriAdsorptionVertex AriSamePositionSelector UVGridding AriWindowPositionReset AriSymmetryChecker ZBrush スクリプト MEL更新頂点カラー 更新 Rig AriUVSetList AriQuadrangulateRing AriAnimationCopy AriAniKeyScale レンダリング AriMaterialList AriUVAdsorption AriViewWindow AriDeleteEdgePreserveBorder モデリングAriCircleVertex AriUVAdsorptionMove 

最新記事
メールフォーム

名前:
メール:
件名:
本文: