################################ # # dpCopyPasteAttr.py # # autor: Danilo Pinheiro # e-mail: nilouco@gmail.com # blog: nilouco.blogspot.com # # data: 2011-04-26 # # Agradecimentos: Giovani Meneghel # # Como instalar esse script: # 1. copie o arquivo dpCopyPasteAttr.py para o diretorio onde o maya roda os scripts # normalmente em C:/User/SeuNome/Documents/maya/scripts/ # 2. crie um botao na shelf como Python com o codigo abaixo (sem os comentarios): # # import maya.cmds as cmds # import dpCopyPasteAttr # reload(dpCopyPasteAttr) # dpCopyPasteAttr.dpCopyPasteAttrUI() # ################################ # importando bibliotecas: import maya.cmds as cmds def dpCopyPasteAttrUI(): """ Criando interface de usario (window). """ if cmds.window('dpCopyPasteWin', exists=True): cmds.deleteUI('dpCopyPasteWin', window=True) # criando UI: dpCopyPasteWin = cmds.window('dpCopyPasteWin', title='dpCopyPaste UI', width=150, height=75) # criando elementos da interface: mainLayout = cmds.columnLayout('mainLayout', width=150, height=75, adjustableColumn=True) copyButton = cmds.button('copyButton', label='Copy From Attr', command='dpCopyPasteAttr.dpCopyAttr()', backgroundColor=(0.7, 1.0, 0.7), parent=mainLayout) pasteButton = cmds.button('pasteButton', label='Paste To Attr', command='dpCopyPasteAttr.dpPasteAttr()', backgroundColor=(1.0, 1.0, 0.7), parent=mainLayout) copyAndPasteButton = cmds.button('copyAndPasteButton', label='Copy And Paste Attr', command='dpCopyPasteAttr.dpCopyAndPasteAttr()', backgroundColor=(0.7, 0.9, 1.0), parent=mainLayout) # chamando UI: cmds.showWindow(dpCopyPasteWin) def dpCopyAttr(): """ Pega item selecionado para guardar as informacoes dos atributos da channelBox. """ # pegando item selecionado FROM: selectedFromItem = cmds.ls(selection=True, long=True)[0] # pegando os atributos da channelBox que estejam selecionados: currentAttrList = cmds.channelBox('mainChannelBox', query=True, selectedMainAttributes=True) if not currentAttrList: # listar todos os atributos caso nao existam selecionados: currentAttrList = cmds.listAttr(selectedFromItem, visible=True, keyable=True) # guardas os valores dos atributos no dicionario: global attrValueDic attrValueDic = {} if currentAttrList: for attr in currentAttrList: value = cmds.getAttr(selectedFromItem+'.'+attr) attrValueDic[attr] = value print "Atributos Copiados com Sucesso!" def dpPasteAttr(): """ Pega os itens To selecionados e seta os valores dos atributos neles. """ # redeclarando variavel global: global attrValueDic # pegando a lista de items TO: selectedToItemList = cmds.ls(selection=True, long=True) # setando os valores do dicionario nos itens TO: if selectedToItemList and attrValueDic: for selectedToItem in selectedToItemList: for attr in attrValueDic: try: cmds.setAttr(selectedToItem+'.'+attr, attrValueDic[attr]) except: print "Nao foi possivel colar o attributo", attr print "Atributos Colados com Sucesso!" def dpCopyAndPasteAttr(): """ Manda executar as funcoes copy e paste de atributos. """ # copiar os valores dos atributos e guardar no dicionario: dpCopyAttr() # retira o primeiro elemento da selecao: currentSelectedList = cmds.ls(selection=True, long=True) newSelectedList = currentSelectedList[1:] cmds.select(newSelectedList) # chamando funcao para colar os valores dos atributos: dpPasteAttr() print "Copiado os valores dos atributos de", currentSelectedList[0],"\nColado os atributos com Sucesso :)"