import maya.cmds as mc
#create simple functions to carry out the basic Task in mind#
def getPList():
particleShapes = mc.ls(type='particle')
particleTrans = [mc.listRelatives(x, parent=True, type='transform')[0] for x in particleShapes]
return particleTrans
def pPosListDict(particleName, startFrm, endFrm):
#this is a dictionary#
#in dictionary there are keys and value#
#eg: {key1: value1, key2: value2}
pPosDict = {}
#--------------------#
for eachFrm in range(startFrm, (endFrm + 1)):
mc.currentTime(eachFrm)
pCount = mc.particle( particleName, query=True, count=True)
for pId in range(pCount):
#only[x,y,z]#
eachPartPos = mc.particle(particleName, query=True, id=pId, attribute='position')
#trying something, if "anything" happens do something else
try:
pPosDict[pId].append(eachPartPos)
#keyError can be other stuff#
except KeyError:
pPosDict[pId] = [eachPartPos]
return pPosDict
def createCurve(singParPosList):
#checking length of list
faultlist = 4
if len(singParPosList) >= faultlist:
mc.curve(d=3, p=singParPosList)
else:
#none#
print "basket"
def gWire():
pList = getPList()
startFrm = 1
endFrm = mc.getAttr("defaultRenderGlobals.endFrame")
for pName in pList:
pPosDict = pPosListDict(pName, startFrm, endFrm)
for each in pPosDict.values():
createCurve(each)
if __name__ == '__main__':
gWire()