Fazendo uns testes pra ajudar meu namorado, acabei voltando aos scripts do Maya.
Resolvi fazer alguns scripts aplicando os conceitos básicos de Geometria Analítica,
Vamos ver se eu tomo vergonha e posto com mais frequência ; )
Segue o código:
- import maya.cmds as cmds
- import math
- from operator import itemgetter, attrgetter
- grupo=[]
- ref = cmds.ls(sl=True) # selecionar o objeto de referência
- selected = cmds.ls(sl=True) # selecionar os objetos para interação
- def montagrupo(obj):
- global grupo
- lista=[]
- for each in obj:
- #grassman (B-A) = vetor diretor
- # Ponto A
- xa = cmds.getAttr(each+".translateX")
- ya = cmds.getAttr(each+".translateY")
- za = cmds.getAttr(each+".translateZ")
- # Ponto B
- xb = cmds.getAttr(ref[0]+".translateX")
- yb = cmds.getAttr(ref[0]+".translateY")
- zb = cmds.getAttr(ref[0]+".translateZ")
- # B - A
- x = xb - xa
- y = yb - ya
- z = zb - za
- # magnitude do vetor diretor (Pitagoras)
- d = math.sqrt( round( (x*x + y*y + z*z), 5) )
- lista.append( (each,d) )
- grupo = sorted(lista, key=itemgetter(1))
- #grupo = sorted(lista, key=itemgetter(1), reverse=True) ) # inverso
- lista
- def scaleobjs():
- plus=0.1
- for nome in
- #print "each", nome[0]
- cmds.select(nome[0])
- cmds.scale(plus,plus,plus, absolute=True) grupo:
- plus=plus+0.05
- print plus
- def umachamada():
- montagrupo(selected)
- scaleobjs()