blenderApi间接获取当前3d视图并对齐视点

 

 

import bpy
from bpy import context as C
from mathutils import *

sns=C.screen
areas=sns.areas
area=None

for i in areas:
   if i.type=='VIEW_3D':
       area=i
       break
       
spaces=area.spaces
for i in spaces:
   if i.type=='VIEW_3D':
       space=i
       break
       
region=space.region_3d

vecz0=Vector( (0,0,1) )
vecz1=Vector( (0,0,1) )
vecz0.rotate( region.view_rotation )

maxv=max([abs(i) for i in vecz0])
idn=[abs(i) for i in vecz0].index(maxv)

vecRst=Vector( (0,0,0) )
vecRst[idn]=-1
if vecz0[idn]>0:vecRst[idn]=1


region.view_rotation = vecz1.rotation_difference(vecRst)

 

posted @ 2021-09-19 21:51  陳亞林  阅读(90)  评论(0)    收藏  举报