2013-07-15 8 views
1

제 질문은 어떻게 오브젝트 나 얼굴의 격자 또는 꼭지점의 임의의 숫자를 선택하거나 파이썬의리스트에서 모든 것을 무작위로 선택하는 것입니다.random selection by maya-python

처음이 스크립트에

cm.select을 무작위 선택을 설명해주십시오 ('ffd1Lattice.pt [:] [:] [:], R = 참)

및하시기 바랍니다 무작위 선택을 설명 후 목록 및 모든 방법에 적용됩니다. 당신이 작은 조각은 다음 첫 번째 방법 목록 슬라이스 작품을 이해한다는 것을 이해하지 않는 경우

안부

import maya.cmds as cm 
import sys 
import random as rand 

myList = cm.ls (sl = True) 


def softIt(*arg): 
    cm.polySmooth(c = True , dv = 1 , kb = False) 

def randomize(*arg): 
    myList = cm.ls (sl = True) 
    for i in myList: 
     cm.lattice(dv=(4, 5, 4), oc=True) 
     cm.select('ffd1Lattice.pt[:][:][:]',r=True) 
     cm.xform(r = True , t = [ rand.uniform(-1,1) , rand.uniform(-1,1) , rand.uniform(-1,1)] ) 

cm.headsUpMessage('this script just work with one object at time', verticalOffset=250) 


cm.window(t = 'Randomaize' , s = False) 
cm.columnLayout() 
cm.button(l = 'do it' , c = randomize , w = 200) 
cm.button(l = 'soft it' , c = softIt , w = 200) 
cm.showWindow() 

sys.stdout.write("this script just work with one object at time\t\"script by Amin khormaei\"") 

답변

0

. Theselinks은 올바른 방향으로 사용자를 안내해야합니다.

0

라인 :

cm.select('ffd1Lattice.pt[:][:][:]',r=True) 

은 기본적으로 '격자의 모든 제어점을 선택'말한다. 그러나 Maya 2011에 버그가있는 것 같습니다 (나중에 알지 못합니다). 존재하지 않는 포인트를 선택하려고합니다. 것을 - 적어도이하는 내 컴퓨터에 ...하지만

// result: 'ffdLatticeShape.pt[0:2][0:2][0:2]' // 

를보고 한 후 그 결과에 전화 LS 당신의 조각을 사용하여 - 1x1x1 격자는 8 점의 숫자를 세 가지 차원에서 0-1로해야한다 불가능합니다. 격자와 함께 [:] 형식을 사용하는 것을 피할 것입니다. 실제로 [*] 형식에도 동일한 버그가 있습니다. 그러나 정규 정점에서는 잘 작동합니다.

특정 애플리케이션의 경우, 임의의 양 (동일한 스 니펫이 제안하는 것) 또는 모든 포인트를 다른 임의의 양으로 이동 하시겠습니까? 또는 무작위로 포인트의 무작위 집합? 코드는 각각의 대안에 대해 다를 것입니다.