Take the 2-minute tour ×
Blender Stack Exchange is a question and answer site for people who use Blender to create 3D graphics, animations, or games. It's 100% free, no registration required.

I want to create a lamp in blender using python. I want to give the lamp some rotation. As per the documentation I can set the initial rotation using a tuple of numbers in the function call like this rotation=(0.0, 0.0, 0.0) this is the specifc documentation for the rotation parameter:

rotation: (float array of 3 items in [-inf, inf], (optional)) – Rotation, Rotation for the newly added object

What units is this parameter specified with? It does not seem to be in degrees or radian.

When I try with my example code here where I use rotation=(0, 1, 0) to get 1 degree on the y axis. I end up getting 57.296 degrees after running the code.

import bpy

bpy.ops.object.lamp_add(type='AREA', view_align=False, location=(0, 0, 0), rotation=(0, 1, 0), layers=(True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False))

enter image description here

share|improve this question
add comment

1 Answer

up vote 4 down vote accepted

It is using radians. 1 radian = 57.2957795 degrees. Without the need to import another module you can use a degree value with (3.14159 * degrees / 180) or just quickly import pi from math if you don't want to define it or you could alternatively use round(math.radians(degrees)).

import bpy
from math import pi

bpy.ops.object.lamp_add(type='AREA', ... ,  rotation=(0, (pi * degrees / 180), 0))
share|improve this answer
    
indeed it is radians –  Vader Feb 17 at 0:02
1  
I recommend to from math import radians, degrees for two handy functions to convert back and forth. –  CoDEmanX Feb 17 at 0:15
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.