利用Maya API2.0创建10000个球体,我测试花了73秒
import maya.api.OpenMaya as om2
from functools import wraps
import time
def time_counter(function):
@wraps(function)
def function_timer(*args, **kwargs):
print '[Function: {name} start...]'.format(name=function.__name__)
t0 = time.time()
result = function(*args, **kwargs)
t1 = time.time()
print '[Function: {name} finished, spent time: {time:.2f}s]'.format(name=function.__name__,
time=t1 - t0)
return result
return function_timer
def creat_openSphere(num):
transform_fn = om2.MFnDagNode()
transform_obj = transform_fn.create('transform', 'pSphere{}'.format(num + 1))
mesh_fn = om2.MFnDagNode()
mesh_obj = mesh_fn.create('mesh', 'pSpherShape{}'.format(num + 1), transform_obj)
sphere_fn = om2.MFnDependencyNode()
sphere_fn.create('polySphere')
output_plug = sphere_fn.findPlug('output', False)
inmesh_plug = mesh_fn.findPlug('inMesh', False)
dg_mod = om2.MDGModifier()
dg_mod.connect(output_plug, inmesh_plug)
dg_mod.doIt()
selection_list = om2.MSelectionList()
selection_list.add('initialShadingGroup')
set_fn = om2.MFnSet(selection_list.getDependNode(0))
set_fn.addMember(mesh_obj)
@time_counter
def openSphere_creator(num):
return map(creat_openSphere, range(num)) if num > 0 else None
if __name__ == '__main__':
quantity = 10000
openSphere_creator(quantity)