상세 컨텐츠

본문 제목

python 많이쓰는 구문 정리들

Maya_Script/Maya_Python

by hwano 2012. 3. 2. 15:37

본문


--------  유니코드
#-*- coding: cp949 -*-




-------- 간단한 for 구문 예시
jointList = cmds.ls( sl=1 )
multiNode = cmds.ls( sl=1 )

for i in jointList:
    cmds.connectAttr( multiNode[0] + '.mainCtrl', i + '.visibility' )




------------ enumerate 예시
enumerate는 ( index, value )를 튜플로 출력

value = [3, 4, 7]

for ( i, j ) in enumerate( value ):
value[i] = 2 * j
print value





--------- 어떤 이름이 포함된 물체들 선택
conList = cmds.ls( '*D_Point_parentConstraint*' )
cmds.select( conList )

# 그냥
cmds.select( '*D_Point_parentConstraint*' )

#해도 되는듯?




--------- 특정한 노드들 선택
list = cmds.ls( type='brush' )

for i in list:

    cmds.setAttr( i + '.turbulenceType', 0 )


---------- for 구문과 length
import maya.cmds as cmds

cubes = cmds.ls( sl=1 )

for x in range( 0, len( cubes ) ):
    cmds.spaceLocator ( p=(0, x * 4, 0), n = 'yaho' + '_0' + str( x ) )
 #yaho 라는 스트링과 x의 int형을 합치려면 x를 str()으로 감싸주어야한다




-----------  obj 파일 mb로 바꿔 저장
#-*- coding: cp949 -*-

import maya.cmds as cmds

pathA = 'Y:/2011_HankookTire/3D_project/share/scenes/realfow/dongkook/0227/'

for i in range( 4, 10 ):

cmds.file( ( str( pathA ) + str( i ) + '.obj' ),f=1, o=1, typ='OBJ' )

cmds.file( f=1, save=True, de=True, type='mayaBinary' )




----------- 각각의 값에 2씩 더하기

value = [3, 4, 7]

for i in range( len(value) ):
    value[i] = value[i] + 2
   
print value






--------------  리스트 추가,삭제 등
list = cmds.ls( sl=1 )

list.append( 'pCube10' )    ##리스트 한개 추가
list.extend( ['pCube10','melong'] )     ##리스트 여러개 추가  []주의
list.insert( 1, 'pCube10' )    ##원하는 위치에 추가
list += ['pCube10' ]    ##+=를 이용하여 추가가능 []쳐주면 그대로 들어가고
list += 'pCube10'    ##[]없으면 한글자씩(p,C,u,b,e.....)들어감

 

 

 

 

-------------- 현재 선택된 렌더레이어이름 알아오기

cmds.editRenderLayerGlobals( q=1, crl=1 )

 

 

-------------- 아래 메쉬들 모두 렌더 스무스2로

selObj = cmds.ls( sl=1 )
meshObj = cmds.listRelatives( selObj, ad=1, type='shape' )
for i in meshObj:
    cmds.setAttr( i + '.useSmoothPreviewForRender', 0 )
    cmds.setAttr( i + '.smoothLevel', 0 )
    cmds.setAttr( i + '.renderSmoothLevel', 2 )

관련글 더보기