Layout: scripting, + use Menu->Window->Toggle System Console to debug errors
Turn on numbering, line wrap and code highlighting in the editor.
Initialization libraries to import:
import bpy from bpy import context from math import sin, cos, radians, pi
Cursor position and cube object initialization:
cursor = context.scene.cursor_location cubeobject = bpy.ops.mesh.primitive_cube_add # create new cube and use console to get cube creation code
Test cursor + cube code:
cursor.x = cursor.y = cursor.z = 3 # init cursor position bpy.ops.mesh.primitive_cube_add(radius=1, view_align=False, enter_editmode=False, location=(cursor.x, cursor.y, cursor.z), layers=(True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False)) # spawn cube at position # The same cube code: bpy.ops.mesh.primitive_cube_add(location=(cursor.x, cursor.y, cursor.z))
Array of cubes around cursor with scaling:
dist_rad = 3.0 theta = 0.0 while theta < 2*pi: x = cursor.x + dist_rad * cos(theta) y = cursor.y + dist_rad * sin(theta) z = cursor.z cubeobject(location=(x,y,z)) bpy.ops.transform.resize(value=(0.5, 0.5, 0.5)) # scale size of each selected cube theta += (pi/4)