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

 Thread Tools Search this Thread Display Modes
 09 September 2017 ClemclemLB portfolio 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 share quote
 10 October 2017 PeterRabel Scholar   portfolio Peter Rabel Pipeline Supervisor Digital Domain Vancouver, Canada 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)) share quote

 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 vBulletinCopyright ©2000 - 2006, Jelsoft Enterprises Ltd.