Guest User

autoAlignView.py

a guest
Sep 5th, 2018
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.70 KB | None | 0 0
  1. bl_info = {
  2. "name": "Auto Align View",
  3. "author": "Eero Mutka",
  4. "version": (1, 0),
  5. "blender": (2, 75, 0),
  6. "location": "View3D",
  7. "description": "Aligns the view to the closest axis",
  8. "warning": "",
  9. "wiki_url": "",
  10. "category": "3D View",
  11. }
  12.  
  13. import bpy
  14. from mathutils import Vector
  15.  
  16. def main(context):
  17. v3d = context.space_data
  18. rv3d = v3d.region_3d
  19.  
  20. ForwardVector = rv3d.view_rotation * Vector((0.0, 0.0, -1.0))
  21.  
  22. ViewDir = "FRONT"
  23. ClosestDot = ForwardVector.dot(Vector((0.0, 1.0, 0.0)))
  24.  
  25. Dot = ForwardVector.dot(Vector((0.0, -1.0, 0.0)))
  26. if Dot > ClosestDot:
  27. ViewDir = "BACK"
  28. ClosestDot = Dot
  29.  
  30. Dot = ForwardVector.dot(Vector((-1.0, 0.0, 0.0)))
  31. if Dot > ClosestDot:
  32. ViewDir = "RIGHT"
  33. ClosestDot = Dot
  34.  
  35. Dot = ForwardVector.dot(Vector((1.0, 0.0, 0.0)))
  36. if Dot > ClosestDot:
  37. ViewDir = "LEFT"
  38. ClosestDot = Dot
  39.  
  40. Dot = ForwardVector.dot(Vector((0.0, 0.0, -1.0)))
  41. if Dot > ClosestDot:
  42. ViewDir = "TOP"
  43. ClosestDot = Dot
  44.  
  45. Dot = ForwardVector.dot(Vector((0.0, 0.0, 1.0)))
  46. if Dot > ClosestDot:
  47. ViewDir = "BOTTOM"
  48. ClosestDot = Dot
  49.  
  50. bpy.ops.view3d.viewnumpad(type = ViewDir)
  51.  
  52.  
  53. class AutoAlignView(bpy.types.Operator):
  54. """Tooltip"""
  55. bl_idname = "view3d.auto_align_view"
  56. bl_label = "Auto Align View"
  57.  
  58. def execute(self, context):
  59. main(context)
  60. return {'FINISHED'}
  61.  
  62.  
  63. def register():
  64. bpy.utils.register_class(AutoAlignView)
  65.  
  66.  
  67. def unregister():
  68. bpy.utils.unregister_class(AutoAlignView)
  69.  
  70.  
  71. if __name__ == "__main__":
  72. register()
Advertisement
Add Comment
Please, Sign In to add comment