import maya.cmds as mc
import chee_createCurve3 as cwire
developing = True
if developing == True:
reload(cwire)
#list curves and volumesAxis
def selectCurve():
curveSelect = mc.select('curve1', add=True)
return curveSelect
def listCurve():
curveList = mc.ls(type='curveShape')
curveTrans = [mc.listRelatives(x, parent=True, type='transform')[0] for x in curveList]
return curveTrans
print curveTrans
def listVol():
volList = mc.ls(type='volumeAxisField')
return volList
#VolumeAxis duplicate along curve
def dupAlongCurve(volumeFName, startFrm, endFrm):
mc.cycleCheck(e=0)
for eachFrame in range (startFrm,(endFrm+1)):
mc.currentTime(eachFrame)
#mc.select('volumeFName')
mc.duplicate(volumeFName)
def fMasterEXE(startFrm,endFrm):
#ask user to create curve.
volAxis = mc.volumeAxis( pos=(0, 0, 0), afc=0, afx=0, arx=0, alx=0, drs=0.5 )
volumeFName = listVol()[0]
#volume_Name = mc.select(listVol()[0])
path = listCurve()[0]
#frmBegin = mc.intField(startFrm, query=True, value=True)
frmBegin = startFrm
frmEnd = mc.intFieldGrp(endFrm, query=True, value1=True)
mc.pathAnimation( volumeFName, stu=frmBegin, etu=frmEnd, fa='x', ua='y', worldUpVector=(0,1,0), bank=False, c=path )
createDupFields = dupAlongCurve(volumeFName,1,frmEnd)
listAll =mc.select(listVol())
mc.group(name='wGrp')
def deleteVolEmit(*args):
a = mc.ls('wGrp','myEmitter')
#b = mc.ls(type='particle')
b= cwire.getPList()
mc.delete(a,b)
#-------------------------------------------------------------------------------
#createEMITTER---###############################################################
def creEmit():
mc.emitter( dx=1, dy=0, dz=0, sp=0.33, pos=(1, 1, 1), n='myEmitter' )
mc.particle( n='Particles' )
mc.connectDynamic( 'Particles', em='myEmitter' )
####dynamicRelations#################
def dynCon():
getVol = listVol()
for volumeF in getVol:
mc.connectDynamic('Particles',f=volumeF)
###Creat Emitter, and add Dynamic Relations####
def getCurveP1(*args):
getCurve = listCurve
curveP1 = mc.getAttr('curve1.cv[0]')
print getCurve
print curveP1
creEmit()
lsEmit = mc.ls('myEmitter')
mc.move(curveP1[0][0],curveP1[0][1],curveP1[0][2],lsEmit)
connect = dynCon()
print connect
###Delete_Curves####
def deleteCurves(*args):
lsCurve = listCurve()
mc.delete(lsCurve)
####Scale Volume Fields#####
def scaleVolF(*args):
lsVol = listVol()
mc.select(lsVol)
#UI Window
#avoid duplicate window
windowG = 'WireGenerationTool'
if (mc.window(windowG, query=True, ex=True)):
mc.deleteUI(windowG)
windowG = mc.window('WireGenerationTool', title='WireGenerationTool', iconName='WGT', widthHeight=(400,400), rtf=True )
mc.columnLayout( adjustableColumn=True )
mc.text( label= 'Please Create Your Desired Curve')
#stFrm = mc.intField(value=1)
etFrm = mc.intFieldGrp(label='number of copies',value1=50)
pLastFrm = mc.intFieldGrp(label ='Particle Cache Frames', value1=100)
mc.button( label= 'delete all fields', actOnPress=True, command=deleteVolEmit)
mc.button( label= 'Generate Fields', actOnPress=True, command=lambda x: fMasterEXE( 1, etFrm))
mc.button( label= 'Add emitter to Curve', actOnPress=True, command=getCurveP1)
mc.button( label= 'selectall VolumeFields', actOnPress=True, command=scaleVolF)
mc.button( label= 'Create Curves From Particles', actOnPress=True, command=lambda x: cwire.gWire(pLastFrm))
mc.button( label= 'Delete All Curves', actOnPress=True, command=deleteCurves)
mc.showWindow( windowG )