- 2008/02/19 22:33
- Python
簡単なスクリプトを書きました。
自動でバージョンつけてセーブするツール。
import maya.cmds as mc
import os, os.path
def openUI():
window = 'autoVersioningSave'
title = 'Auto Versioning Save'
if(mc.window(window, q=True, ex=True)):
mc.deleteUI(window)
mc.window(window, t=title)
form = mc.formLayout()
tfg1 = mc.textFieldGrp('tfg_buDir', l='Backup Dir Name', cat=(1, 'right', 3),
cw2=[100, 200], tx='_backup')
sep1 = mc.separator(h=4)
btn1 = mc.button(l='Save', h=30, c=saveAddapt)
mc.setParent('..')
mc.formLayout( form, e=True,
attachForm=( [tfg1, 'top', 5],
[tfg1, 'left', 5],
[tfg1, 'right', 5],
[sep1, 'left', 5],
[sep1, 'right', 5],
[btn1, 'left', 5],
[btn1, 'right', 5],
[btn1, 'bottom', 5 ] ),
attachControl=( [sep1, 'bottom', 5, btn1] ) )
mc.showWindow()
def saveAddapt(*args):
backupDir = mc.textFieldGrp('tfg_buDir', q=True, tx=True)
if backupDir == '':
raise( 'No directory name' )
save(backupDir)
def save(backupDir):
# get current sceneName
currentFile = mc.file(q=True, sceneName=True)
if currentFile == '':
print('### This scene is not saved..')
return
currentFilePath = os.path.dirname(currentFile)
currentFileName = os.path.basename(currentFile)
[baseName, ext] = os.path.splitext(currentFileName)
# search same name items
saveDirPath = '%s/%s'%(currentFilePath, backupDir)
if not os.path.exists(saveDirPath):
print( '# Create Directory : %s'%saveDirPath )
os.makedirs(saveDirPath)
items = os.listdir(saveDirPath)
numOldFile = len([item for item in items if baseName in item])+1
versionNumberStr = '%03d'%numOldFile
savePath = '%s/%s'%(saveDirPath, baseName)
nextVersionName = '%s.v%s%s'%(savePath, versionNumberStr, ext)
if os.path.exists(nextVersionName):
raise('### %s is existing.'%nextVersionName)
# save
mc.file(rename=nextVersionName)
mc.file(f=True, save=True)
nextVersionName = mc.file(q=True, sceneName=True)
mc.file(rename=currentFile)
print('### Succeed :'+ nextVersionName)
ちょい前に作って放置してたので、ちょっと手加えてみた。
まだまだPythonのことが分かってないぞ、おれ頑張れ。
そこのPythonista様、よりPythonないかした書き方、レクチャーしてください。
はて、一応ツールの簡単な説明を。
パス通った場所において、importして、openUI()してやればウィンドウが開きます。
これは、なんとなくつくったしょーもないウィンドウです。
で、テキストフィールドに打ち込んだ名前のディレクトリを、現在のシーンデータと同階層に作って、
その下にバージョンつけて保存していきます。
ちょいいじればexecfileで実行することも可能です。
しょーもないツールですが、ちょっと今度使ってみようかと思ってます。
使ったら意外と便利だったりして?
早く家にネットつながないとソースのUPすらも不便 :(
- Newer: オブジェクト指向などXXの役にも
- Older: PhysXがGF8で動くっぽい
Comments:0
Trackbacks:0
- Trackback URL for this entry
- http://blog.taikomatsu.com/2008/02/19/python-autoversioningsave/trackback/
- Listed below are links to weblogs that reference
- [ python ] Auto versioning save tool from memlog