아래와 같은 문장을 만들었거든요.
Boo_shapeColor 여기를 하나로 만들어서 돌려 쓰려고 하는데 멜처럼 안되네요.
그래서 처음에는 하나 하나 만들다가 이건 아니다 싶어서 물어봅니다.
Boo_shapeColor (self,변수)를 지정하고 class안에서 self.Boo_shapeColor(변수)를 지정했는데 먼가 룰이 틀린것 같은데 안되더라구요.
처음에는 'Boo_shapeColor (변수)',self.Boo_shapeColor (변수),Boo_shapeColor,Boo_Controller.Boo_shapeColor(변수)등등을 했는데 오~~~ 먼가 각각의 활용되는 곳이 틀린것 같은데
으~~ 모르겠네요.
import maya.cmds as cmds
import maya.mel as mel
import string
import sys
#---------- UI ----------
class Boo_Controller():
def __init__(self):
win = 'Boo_Controller'
if cmds.window(win,exists=1):
cmds.deleteUI(win,window=True)
cmds.window(win,t='Boo_Controller',wh=(220,345),mxb=0,s=1,mb=1)
#--------- Path of icon image
iPath=cmds.internalVar(userBitmapsDir=True)
cmds.columnLayout('emptyColum',rowSpacing=10)
cmds.setParent('..')
#--------- Name of cotroller, count
cmds.columnLayout('NameCountColum')
cmds.textFieldGrp('TextFieldName', label='Name: ', cw2=[70,100])
cmds.textFieldGrp('IntFieldCount', label='Count: ', cw2=[70,50],tx='1')
cmds.setParent('..')
#--------- Shape of cotroller, count
cmds.rowColumnLayout( numberOfColumns=6, columnWidth=[(1, 22), (2, 32), (3, 32), (4, 32), (5, 32),(6, 32)] )
cmds.text(l='')
cmds.iconTextButton(w=32, h=32, style= "iconOnly", image=(iPath + "\FourDirection.bmp"), c=self.Boo_CreatePelvis)
cmds.iconTextButton(w=32, h=32, style= "iconOnly", image=(iPath + "\Halfcircle.bmp"), c=self.Boo_CreateHalfCircle)
cmds.iconTextButton(w=32, h=32, style= "iconOnly", image=(iPath + "\Prizm.bmp"), c=self.Boo_CreateTrigonalPrism)
cmds.iconTextButton(w=32, h=32, style= "iconOnly", image=(iPath + "\Sphere.bmp"), c=self.Boo_Createsphere)
cmds.iconTextButton(w=32, h=32, style= "iconOnly", image=(iPath + "\Square.bmp"), c=self.Boo_CreateSquare)
cmds.text(l='')
cmds.iconTextButton(w=32, h=32, style= "iconOnly", image=(iPath + "\Stick.bmp"), c=self.Boo_CreateSpine)
cmds.iconTextButton(w=32, h=32, style= "iconOnly", image=(iPath + "\Box.bmp"), c=self.Boo_CreateBox)
cmds.setParent('..')
cmds.columnLayout( adjustableColumn=True )
#--------- color panel for controler that is curve.
cmds.frameLayout(label='Color', labelAlign='top', borderStyle='etchedIn', collapsable=True,width=212,height=175,collapseCommand=self.Boo_collapseColorPanel,expandCommand=self.Boo_expandColorPanel)
cmds.rowColumnLayout(columnSpacing=[1,4],numberOfColumns=7,columnWidth=[(1, 28),(2, 28),(3, 28),(4, 28),(5, 28),(6, 28),(7, 28)])
cmds.iconTextButton(w=29, h=30, style="iconOnly", image=(iPath + "\colorN31.bmp"), c='Boo_shapeColor(31)')
cmds.iconTextButton(w=29, h=30, style="iconOnly", image=(iPath + "\colorN2.bmp"), c='Boo_shapeColor(2)')
cmds.iconTextButton(w=29, h=30, style="iconOnly", image=(iPath + "\colorN3.bmp"), c='Boo_shapeColor(3)')
cmds.iconTextButton(w=29, h=30, style="iconOnly", image=(iPath + "\colorN4.bmp"), c='Boo_shapeColor(4)')
cmds.iconTextButton(w=29, h=30, style="iconOnly", image=(iPath + "\colorN5.bmp"), c='Boo_shapeColor(5)')
cmds.iconTextButton(w=29, h=30, style="iconOnly", image=(iPath + "\colorN6.bmp"), c='Boo_shapeColor(6)')
cmds.iconTextButton(w=29, h=30, style="iconOnly", image=(iPath + "\colorN7.bmp"), c='Boo_shapeColor(7)')
cmds.iconTextButton(w=29, h=30, style="iconOnly", image=(iPath + "\colorN8.bmp"), c='Boo_shapeColor(8)')
cmds.iconTextButton(w=29, h=30, style="iconOnly", image=(iPath + "\colorN9.bmp"), c='Boo_shapeColor(9)')
cmds.iconTextButton(w=29, h=30, style="iconOnly", image=(iPath + "\colorN10.bmp"), c='Boo_shapeColor(10)')
cmds.iconTextButton(w=29, h=30, style="iconOnly", image=(iPath + "\colorN11.bmp"), c='Boo_shapeColor(11)')
cmds.iconTextButton(w=29, h=30, style="iconOnly", image=(iPath + "\colorN12.bmp"), c='Boo_shapeColor(12)')
cmds.iconTextButton(w=29, h=30, style="iconOnly", image=(iPath + "\colorN13.bmp"), c='Boo_shapeColor(13)')
cmds.iconTextButton(w=29, h=30, style="iconOnly", image=(iPath + "\colorN14.bmp"), c='Boo_shapeColor(14)')
cmds.iconTextButton(w=29, h=30, style="iconOnly", image=(iPath + "\colorN15.bmp"), c='Boo_shapeColor(15)')
cmds.iconTextButton(w=29, h=30, style="iconOnly", image=(iPath + "\colorN16.bmp"), c='Boo_shapeColor(16)')
cmds.iconTextButton(w=29, h=30, style="iconOnly", image=(iPath + "\colorN17.bmp"), c='Boo_shapeColor(17)')
cmds.iconTextButton(w=29, h=30, style="iconOnly", image=(iPath + "\colorN18.bmp"), c='Boo_shapeColor(18)')
cmds.iconTextButton(w=29, h=30, style="iconOnly", image=(iPath + "\colorN19.bmp"), c='Boo_shapeColor(19)')
cmds.iconTextButton(w=29, h=30, style="iconOnly", image=(iPath + "\colorN20.bmp"), c='Boo_shapeColor(20)')
cmds.iconTextButton(w=29, h=30, style="iconOnly", image=(iPath + "\colorN21.bmp"), c='Boo_shapeColor(21)')
cmds.iconTextButton(w=29, h=30, style="iconOnly", image=(iPath + "\colorN22.bmp"), c='Boo_shapeColor(22)')
cmds.iconTextButton(w=29, h=30, style="iconOnly", image=(iPath + "\colorN23.bmp"), c='Boo_shapeColor(23)')
cmds.iconTextButton(w=29, h=30, style="iconOnly", image=(iPath + "\colorN24.bmp"), c='Boo_shapeColor(24)')
cmds.iconTextButton(w=29, h=30, style="iconOnly", image=(iPath + "\colorN25.bmp"), c='Boo_shapeColor(25)')
cmds.iconTextButton(w=29, h=30, style="iconOnly", image=(iPath + "\colorN26.bmp"), c='Boo_shapeColor(26)')
cmds.iconTextButton(w=29, h=30, style="iconOnly", image=(iPath + "\colorN27.bmp"), c='Boo_shapeColor(27)')
cmds.iconTextButton(w=29, h=30, style="iconOnly", image=(iPath + "\colorN28.bmp"), c='Boo_shapeColor(28)')
cmds.iconTextButton(w=29, h=30, style="iconOnly", image=(iPath + "\colorN29.bmp"), c='Boo_shapeColor(29)')
cmds.iconTextButton(w=29, h=30, style="iconOnly", image=(iPath + "\colorN30.bmp"), c='Boo_shapeColor(30)')
cmds.setParent('..')
cmds.window(win,e=1,wh=(220,345))
cmds.showWindow(win)
def Boo_collapseColorPanel(self):
self.win = 'Boo_Controller'
cmds.window(self.win,e=1,wh=(220,190))
def Boo_expandColorPanel(self):
self.win = 'Boo_Controller'
cmds.window(self.win,e=1,wh=(220,340))
def Boo_Ctrlsphere(self,Num):
self.Ctrl_Name=cmds.textFieldGrp('TextFieldName', q=True, tx=True)
self.CtrlPoleCurve=mel.eval('curve -d 1 -p 0 0 0.3 -p 0 0.0520945 0.295442 -p 0 0.102606 0.281908 -p 0 0.15 0.259808 -p 0 0.192836 0.229813 -p 0 0.229813 0.192836'
+'-p 0 0.259808 0.15 -p 0 0.281908 0.102606 -p 0 0.295442 0.0520945 -p 0 0.3 0 -p 0 0.295442 -0.0520945 -p 0 0.281908 -0.102606'
+'-p 0 0.259808 -0.15 -p 0 0.229813 -0.192836 -p 0 0.192836 -0.229813 -p 0 0.15 -0.259808 -p 0 0.102606 -0.281908 -p 0 0.0520945 -0.295442'
+'-p 0 0 -0.3 -p 0.0520945 0 -0.295442 -p 0.102606 0 -0.281908 -p 0.15 0 -0.259808 -p 0.192836 0 -0.229813 -p 0.229813 0 -0.192836'
+'-p 0.259808 0 -0.15 -p 0.281908 0 -0.102606 -p 0.295442 0 -0.0520945 -p 0.3 0 0 -p 0.295442 0 0.0520945 -p 0.281908 0 0.102606'
+'-p 0.259808 0 0.15 -p 0.229813 0 0.192836 -p 0.192836 0 0.229813 -p 0.15 0 0.259808 -p 0.102606 0 0.281908 -p 0.0520945 0 0.295442'
+'-p 0 0 0.3 -p 0 -0.0520945 0.295442 -p 0 -0.102606 0.281908 -p 0 -0.15 0.259808 -p 0 -0.192836 0.229813 -p 0 -0.229813 0.192836'
+'-p 0 -0.259808 0.15 -p 0 -0.281908 0.102606 -p 0 -0.295442 0.0520945'
+'-p 0 -0.3 0 -p 0 -0.295442 -0.0520945 -p 0 -0.281908 -0.102606 -p 0 -0.259808 -0.15 -p 0 -0.229813 -0.192836 -p 0 -0.192836 -0.229813'
+'-p 0 -0.15 -0.259808 -p 0 -0.102606 -0.281908 -p 0 -0.0520945 -0.295442 -p 0 0 -0.3 -p -0.0520945 0 -0.295442 -p -0.102606 0 -0.281908'
+'-p -0.15 0 -0.259808 -p -0.192836 0 -0.229813 -p -0.229813 0 -0.192836 -p -0.259808 0 -0.15 -p -0.281908 0 -0.102606 -p -0.295442 0 -0.0520945'
+'-p -0.3 0 0 -p -0.295442 0.0520945 0 -p -0.281908 0.102606 0 -p -0.259808 0.15 0 -p -0.229813 0.192836 0 -p -0.192836 0.229813 0'
+'-p -0.15 0.259808 0 -p -0.102606 0.281908 0 -p -0.0520945 0.295442 0 -p 0 0.3 0 -p 0.0520945 0.295442 0 -p 0.102606 0.281908 0'
+'-p 0.15 0.259808 0 -p 0.192836 0.229813 0 -p 0.229813 0.192836 0 -p 0.259808 0.15 0 -p 0.281908 0.102606 0 -p 0.295442 0.0520945 0'
+'-p 0.3 0 0 -p 0.295442 -0.0520945 0 -p 0.281908 -0.102606 0 -p 0.259808 -0.15 0 -p 0.229813 -0.192836 0 -p 0.192836 -0.229813 0'
+'-p 0.15 -0.259808 0 -p 0.102606 -0.281908 0'
+'-p 0.0520945 -0.295442 0 -p 0 -0.3 0 -p -0.0520945 -0.295442 0 -p -0.102606 -0.281908 0 -p -0.15 -0.259808 0 -p -0.192836 -0.229813 0'
+'-p -0.229813 -0.192836 0 -p -0.259808 -0.15 0 -p -0.281908 -0.102606 0 -p -0.295442 -0.0520945 0 -p -0.3 0 0 -p -0.295442 0 0.0520945'
+'-p -0.281908 0 0.102606 -p -0.259808 0 0.15 -p -0.229813 0 0.192836 -p -0.192836 0 0.229813 -p -0.15 0 0.259808 -p -0.102606 0 0.281908'
+'-p -0.0520945 0 0.295442 -p 0 0 0.3 -k 0 -k 1 -k 2 -k 3 -k 4 -k 5 -k 6 -k 7 -k 8 -k 9 -k 10 -k 11 -k 12 -k 13 -k 14 -k 15 -k 16 -k 17'
+'-k 18 -k 19 -k 20 -k 21 -k 22 -k 23 -k 24 -k 25 -k 26 -k 27 -k 28 -k 29 -k 30 -k 31 -k 32 -k 33 -k 34 -k 35 -k 36 -k 37 -k 38 -k 39 -k 40'
+'-k 41 -k 42 -k 43 -k 44 -k 45 -k 46 -k 47 -k 48 -k 49 -k 50 -k 51 -k 52 -k 53 -k 54 -k 55 -k 56 -k 57 -k 58 -k 59 -k 60 -k 61 -k 62 -k 63'
+'-k 64 -k 65 -k 66 -k 67 -k 68 -k 69 -k 70 -k 71 -k 72 -k 73 -k 74 -k 75 -k 76 -k 77 -k 78 -k 79 -k 80 -k 81 -k 82 -k 83 -k 84 -k 85 -k 86'
+'-k 87 -k 88 -k 89 -k 90 -k 91 -k 92 -k 93 -k 94 -k 95 -k 96 -k 97 -k 98 -k 99 -k 100 -k 101 -k 102 -k 103 -k 104 -k 105 -k 106 -k 107 -k 108'
+'-n ("Ctrl_"+"%s"+"%d")' %(self.Ctrl_Name,Num))
cmds.select (cl=True)
self.shapes=cmds.listRelatives(self.CtrlPoleCurve,s=True)
cmds.rename(self.shapes[0],('Ctrl_'+self.Ctrl_Name+'Shape%d')%Num)
cmds.group((self.CtrlPoleCurve),n=('Gr_'+self.CtrlPoleCurve))
cmds.xform(piv=[0, 0, 0],os=True)
def Boo_CtrlSquare(self,Num):
self.Ctrl_Name=cmds.textFieldGrp('TextFieldName', q=True, tx=True)
self.CtrlPoleCurve=mel.eval('curve -d 1 -p -0.8 0 0.8'
+'-p 0.8 0 0.8'
+'-p 0.8 0 -0.8'
+'-p -0.8 0 -0.8'
+'-p -0.8 0 0.8'
+'-k 0 -k 1 -k 2 -k 3 -k 4'
+'-n ("Ctrl_"+"%s"+"%d")' %(self.Ctrl_Name,Num))
cmds.select (cl=True)
self.shapes=cmds.listRelatives(self.CtrlPoleCurve,s=True)
cmds.rename(self.shapes[0],('Ctrl_'+self.Ctrl_Name+'Shape%d')%Num)
cmds.group((self.CtrlPoleCurve),n=('Gr_'+self.CtrlPoleCurve))
cmds.xform(piv=[0, 0, 0],os=True)
def Boo_CtrlTrigonalPrism(self,Num):
self.Ctrl_Name=cmds.textFieldGrp('TextFieldName', q=True, tx=True)
self.CtrlPoleCurve=mel.eval('curve -d 1 -p 0 1 0 -p -0.5 1 0.866025 -p 1 1 0'
+'-p 0 1 0 -p -0.5 1 -0.866026 -p 1 1 0'
+'-p 0 1 0 -p -0.5 1 -0.866026 -p -0.5 1 0.866025'
+'-p -0.5 -1 0.866025 -p 1 -1 0 -p 1 1 0'
+'-p -0.5 1 -0.866026 -p -0.5 -1 -0.866026'
+'-p 1 -1 0 -p 0 -1 0 -p -0.5 -1 -0.866026'
+'-p -0.5 -1 0.866025 -p 0'
+'-1 0 -k 0 -k 1 -k 2 -k 3 -k 4 -k 5 -k 6 -k 7 -k 8 -k 9 -k 10 -k 11 -k 12 -k 13 -k 14 -k 15 -k 16 -k 17 -k 18'
+'-n ("Ctrl_"+"%s"+"%d")' %(self.Ctrl_Name,Num))
cmds.select (cl=True)
self.shapes=cmds.listRelatives(self.CtrlPoleCurve,s=True)
cmds.rename(self.shapes[0],('Ctrl_'+self.Ctrl_Name+'Shape%d')%Num)
cmds.group((self.CtrlPoleCurve),n=('Gr_'+self.CtrlPoleCurve))
cmds.xform(piv=[0, 0, 0],os=True)
def Boo_CtrlHalfCircle(self,Num):
self.Ctrl_Name=cmds.textFieldGrp('TextFieldName', q=True, tx=True)
self.CtrlPoleCurve=mel.eval('curve -d 1 -p 0 0.162119 0.598953'
+'-p 0.109584 0.162119 0.588982'
+'-p 0.215421 0.162119 0.558461'
+'-p 0.314156 0.162119 0.509819'
+'-p 0.402511 0.162119 0.444103'
+'-p 0.476802 0.162119 0.362843'
+'-p 0.534721 0.162119 0.269201'
+'-p 0.575036 0.162119 0.166762'
+'-p 0.596396 0.162119 0.0587443'
+'-p 0.597111 0.162119 -0.0513603'
+'-p 0.577092 0.162119 -0.159636'
+'-p 0.538013 0.162119 -0.262556'
+'-p 0.481247 0.162119 -0.3569'
+'-p 0.407994 0.162119 -0.43912'
+'-p 0.320533 0.162119 -0.505951'
+'-p 0.222152 0.162119 -0.555771'
+'-p 0.117543 0.162119 -0.587621'
+'-p 0 0.162119 -0.598841'
+'-p 0 -0.162119 -0.597669'
+'-p 0.117543 -0.162119 -0.587621'
+'-p 0.222152 -0.162119 -0.555771'
+'-p 0.320533 -0.162119 -0.505951'
+'-p 0.407994 -0.162119 -0.43912'
+'-p 0.481247 -0.162119 -0.3569'
+'-p 0.538013 -0.162119 -0.262556'
+'-p 0.577092 -0.162119 -0.159636'
+'-p 0.597111 -0.162119 -0.0513603'
+'-p 0.596396 -0.162119 0.0587443'
+'-p 0.575036 -0.162119 0.166762'
+'-p 0.534721 -0.162119 0.269201'
+'-p 0.476802 -0.162119 0.362843'
+'-p 0.402511 -0.162119 0.444103'
+'-p 0.314156 -0.162119 0.509819'
+'-p 0.215421 -0.162119 0.558461'
+'-p 0.109584 -0.162118 0.588982'
+'-p 0 -0.16212 0.598837'
+'-p 0 0.162119 0.598953'
+'-k 0 -k 1 -k 2 -k 3 -k 4 -k 5 -k 6 -k 7 -k 8 -k 9 -k 10 -k 11 -k 12 -k 13 -k 14 -k 15 -k 16 -k 17 -k 18 -k 19 -k 20 -k 21 -k 22 -k 23 -k 24 -k 25 -k 26 -k 27 -k 28 -k 29 -k 30 -k 31 -k 32 -k 33 -k 34 -k 35 -k 36'
+'-n ("Ctrl_"+"%s"+"%d")' %(self.Ctrl_Name,Num))
cmds.select (cl=True)
self.shapes=cmds.listRelatives(self.CtrlPoleCurve,s=True)
cmds.rename(self.shapes[0],('Ctrl_'+self.Ctrl_Name+'Shape%d')%Num)
cmds.group((self.CtrlPoleCurve),n=('Gr_'+self.CtrlPoleCurve))
cmds.xform(piv=[0, 0, 0],os=True)
def Boo_CtrlPelvis(self,Num):
self.Ctrl_Name=cmds.textFieldGrp('TextFieldName', q=True, tx=True)
self.CtrlPoleCurve=mel.eval('curve -d 1 -p -0.130627 0 -0.988448'
+'-p -0.130627 0 -1.220634'
+'-p -0.251302 0 -1.220634'
+'-p 0 0 -1.613398'
+'-p 0.251302 0 -1.220634'
+'-p 0.130627 0 -1.220634'
+'-p 0.130627 0 -0.988448'
+'-p 0.239305 0 -0.971046'
+'-p 0.354653 0 -0.935128'
+'-p 0.465013 0 -0.885878'
+'-p 0.568764 0 -0.823892'
+'-p 0.664358 0 -0.749855'
+'-p 0.749855 0 -0.664358'
+'-p 0.823892 0 -0.568764'
+'-p 0.885878 0 -0.465013'
+'-p 0.935128 0 -0.354653'
+'-p 0.971046 0 -0.239305'
+'-p 0.988448 0 -0.130627'
+'-p 1.220634 0 -0.130627'
+'-p 1.220634 0 -0.251302'
+'-p 1.613398 0 0 -p 1.220634 0 0.251302'
+'-p 1.220634 0 0.130627'
+'-p 0.988448 0 0.130627'
+'-p 0.971046 0 0.239305'
+'-p 0.935128 0 0.354653'
+'-p 0.885878 0 0.465013'
+'-p 0.823892 0 0.568764'
+'-p 0.749855 0 0.664358'
+'-p 0.664358 0 0.749855'
+'-p 0.568764 0 0.823892'
+'-p 0.465013 0 0.885878'
+'-p 0.354653 0 0.935128'
+'-p 0.239305 0 0.971046'
+'-p 0.130627 0 0.988448'
+'-p 0.130627 0 1.220634'
+'-p 0.251302 0 1.220634'
+'-p 0 0 1.613398'
+'-p -0.251302 0 1.220634'
+'-p -0.130627 0 1.220634'
+'-p -0.130627 0 0.988448'
+'-p -0.239305 0 0.971046'
+'-p -0.354653 0 0.935128'
+'-p -0.465013 0 0.885878'
+'-p -0.568764 0 0.823892'
+'-p -0.664358 0 0.749855'
+'-p -0.749855 0 0.664358'
+'-p -0.823892 0 0.568764'
+'-p -0.885878 0 0.465013'
+'-p -0.935128 0 0.354653'
+'-p -0.971046 0 0.239305'
+'-p -0.988448 0 0.130627'
+'-p -1.220634 0 0.130627'
+'-p -1.220634 0 0.251302'
+'-p -1.613398 0 0'
+'-p -1.220634 0 -0.251302'
+'-p -1.220634 0 -0.130627'
+'-p -0.988448 0 -0.130627'
+'-p -0.971046 0 -0.239305'
+'-p -0.935128 0 -0.354653'
+'-p -0.885878 0 -0.465013'
+'-p -0.823892 0 -0.568764'
+'-p -0.749855 0 -0.664358'
+'-p -0.664358 0 -0.749855'
+'-p -0.568764 0 -0.823892'
+'-p -0.465013 0 -0.885878'
+'-p -0.354653 0 -0.935128'
+'-p -0.239305 0 -0.971046'
+'-p -0.130627 0 -0.988448'
+'-k 0 -k 1 -k 2 -k 3 -k 4'
+'-k 5 -k 6 -k 7 -k 8 -k 9'
+'-k 10 -k 11 -k 12 -k 13'
+'-k 14 -k 15 -k 16 -k 17'
+'-k 18 -k 19 -k 20 -k 21'
+'-k 22 -k 23 -k 24 -k 25'
+'-k 26 -k 27 -k 28 -k 29'
+'-k 30 -k 31 -k 32 -k 33'
+'-k 34 -k 35 -k 36 -k 37'
+'-k 38 -k 39 -k 40 -k 41'
+'-k 42 -k 43 -k 44 -k 45'
+'-k 46 -k 47 -k 48 -k 49'
+'-k 50 -k 51 -k 52 -k 53'
+'-k 54 -k 55 -k 56 -k 57'
+'-k 58 -k 59 -k 60 -k 61'
+'-k 62 -k 63 -k 64 -k 65'
+'-k 66 -k 67 -k 68'
+'-n ("Ctrl_"+"%s"+"%d")' %(self.Ctrl_Name,Num))
cmds.select (cl=True)
self.shapes=cmds.listRelatives(self.CtrlPoleCurve,s=True)
cmds.rename(self.shapes[0],('Ctrl_'+self.Ctrl_Name+'Shape%d')%Num)
cmds.group((self.CtrlPoleCurve),n=('Gr_'+self.CtrlPoleCurve))
cmds.xform(piv=[0, 0, 0],os=True)
def Boo_CtrlSpine(self,Num):
self.Ctrl_Name=cmds.textFieldGrp('TextFieldName', q=True, tx=True)
self.CtrlPoleCurve=mel.eval('curve -d 1 -p -1 0 0'
+'-p -0.991118 0 -0.130425'
+'-p -0.965076 0 -0.258533'
+'-p -0.922816 0 -0.382243'
+'-p -0.865222 0 -0.499601'
+'-p -0.793051 0 -0.608602'
+'-p -0.707107 0 -0.707107'
+'-p -0.608602 0 -0.793051'
+'-p -0.499601 0 -0.865222'
+'-p -0.382243 0 -0.922816'
+'-p -0.258533 0 -0.965076'
+'-p -0.130425 0 -0.991118'
+'-p 0 0 -1 -p 0.130425 0'
+'-0.991118 -p 0.258533 0'
+'-0.965076 -p 0.382243 0'
+'-0.922816 -p 0.499601 0'
+'-0.865222 -p 0.608602 0 -0.793051'
+'-p 0.707107 0 -0.707107'
+'-p 0.793051 0 -0.608602'
+'-p 0.865222 0 -0.499601'
+'-p 0.922816 0 -0.382243'
+'-p 0.965076 0 -0.258533'
+'-p 0.991118 0 -0.130425'
+'-p 1 0 0'
+'-p 0.991118 0 0.130425'
+'-p 0.965076 0 0.258533'
+'-p 0.922816 0 0.382243'
+'-p 0.865222 0 0.499601'
+'-p 0.793051 0 0.608602'
+'-p 0.707107 0 0.707107'
+'-p 0.608602 0 0.793051'
+'-p 0.499601 0 0.865222'
+'-p 0.382243 0 0.922816'
+'-p 0.258533 0 0.965076'
+'-p 0.130425 0 0.991118'
+'-p 0 0 1'
+'-p -0.130425 0 0.991118'
+'-p -0.258533 0 0.965076'
+'-p -0.382243 0 0.922816'
+'-p -0.499601 0 0.865222'
+'-p -0.608602 0 0.793051'
+'-p -0.707107 0 0.707107'
+'-p -0.793051 0 0.608602'
+'-p -0.865222 0 0.499601'
+'-p -0.922816 0 0.382243'
+'-p -0.965076 0 0.258533'
+'-p -0.991118 0 0.130425'
+'-p -1 0 0 -p -1.202669 0 0'
+'-p -1 0 0 -p 0 0 0 -p 1 0 0'
+'-p 1.202669 0 0 -p 1 0 0'
+'-p 0 0 0 -p 0 0 -1 -p 0 0'
+'-1.202669 -p 0 0 -1 -p 0 0 0'
+'-p 0 0 1 -p 0 0 1.202669'
+'-k 0 -k 1 -k 2 -k 3 -k 4'
+'-k 5 -k 6 -k 7 -k 8 -k 9'
+'-k 10 -k 11 -k 12 -k 13'
+'-k 14 -k 15 -k 16 -k 17'
+'-k 18 -k 19 -k 20 -k 21'
+'-k 22 -k 23 -k 24 -k 25'
+'-k 26 -k 27 -k 28 -k 29'
+'-k 30 -k 31 -k 32 -k 33'
+'-k 34 -k 35 -k 36 -k 37'
+'-k 38 -k 39 -k 40 -k 41'
+'-k 42 -k 43 -k 44 -k 45'
+'-k 46 -k 47 -k 48 -k 49'
+'-k 50 -k 51 -k 52 -k 53'
+'-k 54 -k 55 -k 56 -k 57'
+'-k 58 -k 59 -k 60 -k 61'
+'-n ("Ctrl_"+"%s"+"%d")' %(self.Ctrl_Name,Num))
cmds.select (cl=True)
self.shapes=cmds.listRelatives(self.CtrlPoleCurve,s=True)
cmds.rename(self.shapes[0],('Ctrl_'+self.Ctrl_Name+'Shape%d')%Num)
cmds.group((self.CtrlPoleCurve),n=('Gr_'+self.CtrlPoleCurve))
cmds.xform(piv=[0, 0, 0],os=True)
def Boo_CtrlBox(self,Num):
self.Ctrl_Name=cmds.textFieldGrp('TextFieldName', q=True, tx=True)
self.CtrlPoleCurve=mel.eval('curve -d 1 -p 0.5 0.5 0.5 -p 0.5 0.5 -0.5 -p -0.5 0.5 -0.5 -p -0.5 0.5 0.5 -p 0.5 0.5 0.5 -p 0.5 -0.5 0.5 -p 0.5 -0.5 -0.5 -p -0.5 -0.5 -0.5 -p -0.5 -0.5 0.5 -p 0.5 -0.5 0.5 -p 0.5 -0.5 -0.5 -p 0.5 0.5 -0.5 -p -0.5 0.5 -0.5 -p -0.5 -0.5 -0.5 -p -0.5 -0.5 0.5 -p -0.5 0.5 0.5 -k 0 -k 1 -k 2 -k 3 -k 4 -k 5 -k 6 -k 7 -k 8 -k 9 -k 10 -k 11 -k 12 -k 13 -k 14 -k 15'
+'-n ("Ctrl_"+"%s"+"%d")' %(self.Ctrl_Name,Num))
cmds.select (cl=True)
self.shapes=cmds.listRelatives(self.CtrlPoleCurve,s=True)
cmds.rename(self.shapes[0],('Ctrl_'+self.Ctrl_Name+'Shape%d')%Num)
cmds.group((self.CtrlPoleCurve),n=('Gr_'+self.CtrlPoleCurve))
cmds.xform(piv=[0, 0, 0],os=True)
def Boo_CreatePelvis(self):
self.CtrlCount=cmds.textFieldGrp('IntFieldCount', q=True, tx=True)
for i in range (1,int(self.CtrlCount)+1,1):
self.Boo_CtrlPelvis(i)
def Boo_CreateHalfCircle(self):
self.CtrlCount=cmds.textFieldGrp('IntFieldCount', q=True, tx=True)
for i in range (1,int(self.CtrlCount)+1,1):
self.Boo_CtrlHalfCircle(i)
def Boo_CreateTrigonalPrism(self):
self.CtrlCount=cmds.textFieldGrp('IntFieldCount', q=True, tx=True)
for i in range (1,int(self.CtrlCount)+1,1):
self.Boo_CtrlTrigonalPrism(i)
def Boo_Createsphere(self):
self.CtrlCount=cmds.textFieldGrp('IntFieldCount', q=True, tx=True)
for i in range (1,int(self.CtrlCount)+1,1):
self.Boo_Ctrlsphere(i)
def Boo_CreateSquare(self):
self.CtrlCount=cmds.textFieldGrp('IntFieldCount', q=True, tx=True)
for i in range (1,int(self.CtrlCount)+1,1):
self.Boo_CtrlSquare(i)
def Boo_CreateSpine(self):
self.CtrlCount=cmds.textFieldGrp('IntFieldCount', q=True, tx=True)
for i in range (1,int(self.CtrlCount)+1,1):
self.Boo_CtrlSpine(i)
def Boo_CreateBox(self):
self.CtrlCount=cmds.textFieldGrp('IntFieldCount', q=True, tx=True)
for i in range (1,int(self.CtrlCount)+1,1):
self.Boo_CtrlBox(i)
def Boo_shapeColor(self,col):
self.sel = cmds.ls(sl=True)
self.selsize = len(sel)
if self.selsize > 0:
self.eachShape = cmds.listRelatives(self.sel,shapes=True)
#print eachShape
for self.each in self.eachShape:
cmds.setAttr(self.each + '.overrideEnabled',1)
cmds.setAttr(self.each + '.overrideColor',col)
if self.selsize == 0:
self.Boo_warning()
#--------- warning already excuted -------
def Boo_warning(self):
self.warningMessage=('You have to select stuff')
cmds.confirmDialog(m=self.warningMessage,t='Warning',b='OK')
Boo_Controller()
잘되네요~~ ^^
cmds.iconTextButton(w=32, h=32, style= "iconOnly", image=(iPath + "\FourDirection.bmp"), c=self.Boo_CreatePelvis)
부분도 바꾸니까 훅!! 짧아지네요.^^
그런데 여기서는 버튼에 self를 넣어서 사용을 하니까 적용은 되었거든요.
여기서 self는 button을 이야기하는 것이 아닌가요?
아니면 먼가 다른 형식이 있는 건가요?
cmds.iconTextButton(w=32, h=32, style= "iconOnly", image=(iPath + "\FourDirection.bmp"), c=self.Boo_CreatePelvis)
아, 그게 Python의 강력함인데요, 함수 오브젝트 자체를 전달할 수가 있는거에요.
cmds.iconTextButton(w=32, h=32, style= "iconOnly", image=(iPath + "\FourDirection.bmp"), c=self.Boo_CreatePelvis)
위처럼 따옴표 없이 쓰시면 self는 Boo_Controller를 가리키고, 그 클래스의 Boo_CreaetPelvis 함수 자체가 전달되는 거구요,
제가 말씀 드린 것처럼 따옴표로 쓰실 때는, string으로 전달되서 나중에 그게 해석되어야 해서 그런거구요.
오홋 점점 미궁에서 탈출하는 분위기 입니다. ^^
여기서 다른 의문이 생겼는데요.
cmds.iconTextButton(w=29, h=30, style="iconOnly", image=(iPath + "\colorN31.bmp"), c='Boo_shapeColor(31)')
그럼 위에서 설명해주신 부분을 따옴표를 사용하지 않고
여기서 c='Boo_shapeColor(31)' 부분을 c=self.Boo_shapeColor(31)이런식으로 사용해도 상관없어야 하는 것 같은데 (31)와 같이 변수를 넣으니까 안되더라구요.
이건는 좀 틀린건가요?
self라는 것이 참 오묘하게 만들어 두었네요. ㅎㅎ
self라고 지정하면 지역변수, self라고 지정안하면 전역변수 같은 이름이 다른 메소드에 있으면 불러지고 없으면 전역변수 처럼도 불러지는 군요 허허~~~
매소드에 변수를 넣으면 그값을 다시 할당하야 하는데 그결과가 string, script형식이 아니면 문제가 발생하네요. 위에 작업의 결과물이 커브라서 요류가 발생을 한거였네요.
후후후
여러가지 정리가 되어었습니다. ^^ 우샤우샤~

Boo_Controller클래스에 의해서 생성된 Window 등의 UI는 Boo_Controller와는 별개입니다.
그러니까, button command로 self.Boo_shapeColor를 쓰실 수 없는거지요. button 입장에서 self는 자기 자신인데, button Class에는 Boo_shapeColor라는 method가 정의되어 있지 않거든요.
이럴 때는, 맨끝에서 Boo_Controller()의 instance를 하나 생성시키실 때, 그 instance를 가리키는 변수를 만드셔서, 그 변수를 이용해 사용하시면 됩니다.
cmds.iconTextButton(w=29, h=30, style="iconOnly", image=(iPath + "\colorN31.bmp"), c='Boo_shapeColor(31)')
와 같은 문장들을,
cmds.iconTextButton(w=29, h=30, style="iconOnly", image=(iPath + "\colorN31.bmp"), c='boo.Boo_shapeColor(31)')
라고 고치시고, 맨 끝에 그냥 Boo_Controller()라고 하지 마시고,
boo = Boo_Controller()라고 하시면 될겁니다.
그런데, Boo_shapeColor안에서,
self.selsize = len(sel)
이라고 쓰셨는데, 그걸
self.selsize = len(self.sel)
라고 고치셔야 되겠구요.