Python Maya Script : Create Cube as same distance between them along a circle shape

Become a member of the CGSociety

Connect, Share, and Learn with our Large Growing CG Art Community. It's Free!

 
Thread Tools Search this Thread Display Modes
  09 September 2017
Python Maya Script : Create Cube as same distance between them along a circle shape

Hello,

I am trying to write a script that create multiple cube and place them at the same distance from the origin. I want them to create a circle with cube and i want those cubes to be at the same distance between them.
I only succed to create cube at them distance from origin but no at the same distance between them.

Here is my script.



import maya.cmds as cm
import math
cubeList = []
for i in range(0,60):
cube = cm.polyCube ()
cubeList.append(cube)

def moveObj(obj,a,b):
cm.setAttr(obj +'.translateX',a)
cm.setAttr(obj +'.translateZ',b)

for i in range(0,len(cubeList)):
angle = i * (360/(i+1))
x = 10*math.cos(angle)
y = 10*math.sin(angle)
moveObj(cubeList[i][0],x,y)



Can someone help me ?
Thanks
 
  10 October 2017
Something along these lines should work.

from maya import cmds, OpenMaya
import math
def main(count, radius, up_axis=(0, 1, 0)):
up_axis = OpenMaya.MVector(*up_axis).normal()

cubes = []
angle_increment = 360.0 / count
for i in xrange(count):
# Create a cube.
cube = cmds.polyCube()[0]
cubes.append(cube)

# Get an axis perpendicular to the up-axis to set the initial position.
x_axis = OpenMaya.MVector(1, 0, 0)
if x_axis.angle(up_axis) > 0.01:
point = (x_axis ^ up_axis) * radius
else:
point = (OpenMaya.MVector(0, 1, 0) ^ up_axis) * radius

# Rotate The point by the angle increment around the up-axis.
angle = angle_increment * i
quat = OpenMaya.MQuaternion(math.radians(angle), up_axis)
point = point.rotateBy(quat)

# Set the cube's position.
cmds.xform(cube, translation=(point.x, point.y, point.z), worldSpace=True)

return cubes

cubes = main(10, 5, (0, 10, 0))
 
reply share thread



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
CGSociety
Society of Digital Artists
www.cgsociety.org

Powered by vBulletin
Copyright 2000 - 2006,
Jelsoft Enterprises Ltd.
Minimize Ads
Forum Jump
Miscellaneous

All times are GMT. The time now is 06:09 PM.


Powered by vBulletin
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.