Hej! Piszę sobie małą wtyczkę, która losowo obracałaby obiekty wg ich lokalnych osi Z. Byłoby to przydatne przy dużej ilości śrub na modelu.
Wtyczka zmienia już automatycznie pivot rotacji na individual, ale obraca tylko wg globalnych osi. Nie wiem jak ustawić osie lokalne. Proszę o jakieś wskazówki.
Część skryptu odpowiedzialna za zmianę pivota na Individual wygląda tak:
def areas_tuple():
res = {}
count = 0
for area in bpy.context.screen.areas:
res[area.type] = count
count += 1
return res
Przypisane do akcji przycisku:
def execute(self, context):
if self.apply:
areas = areas_tuple()
view3d = bpy.context.screen.areas[areas['VIEW_3D']].spaces[0]
view3d.pivot_point='INDIVIDUAL_ORIGINS'
bpy.ops.object.randomize_transform(random_seed=5, use_loc=False, rot=(0.0, 0.0, 22.0))
return {"FINISHED"}