BlenderCN论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1616|回复: 4

python改变视窗角度

[复制链接]
发表于 2013-1-25 13:57:06 | 显示全部楼层 |阅读模式
Change viewport angle in blender using Python
http://stackoverflow.com/questions/9028398/change-viewport-angle-in-blender-using-python


没看明白,先存在这里,有时间再来学,大家可以边交流边学习:)


First of all, note that you can have multiple 3D views open at once, and each can have its own viewport angle, perspective/ortho settings etc. So your script will have to look for all the 3D views that might be present (which might be none) and decide which one(s) it’s going to affect.

Start with the bpy.data object, which has a window_managers attribute. This collection always seems to have just one element. However, there might be one or more open windows. Each window has a screen, which is divided into one or more areas. So you need to search through all the areas for one with a space type of "VIEW_3D". And then hunt through the spaces of this area for the one(s) with type "VIEW_3D". Such a space will be of subclass SpaceView3D. This will have a region_3d attribute of typeRegionView3D. And finally, this object in turn has an attribute called view_matrix, which takes a value of type Matrix that you can get or set.

Got all that?




发表于 2013-11-29 07:02:04 | 显示全部楼层
现在有blender的Change viewport angle 的 addon 吗? 我想下来试试
回复 支持 反对

使用道具 举报

发表于 2013-11-29 18:10:06 | 显示全部楼层
bpy下面的windows manager属性只有一个值,本来这个是一个list的,因为有很多的area,很多的space3d,因为在c下面 WM_type是很多的。
就是设置下view_Matrix的值,可能是不理解的是这个值怎么去设置。
回复 支持 反对

使用道具 举报

发表于 2013-11-29 18:58:42 | 显示全部楼层

  1. /**
  2. * Overview of WM structs
  3. * ======================
  4. *
  5. * <pre>
  6. * > wmWindowManager    (window manager stores a list of windows)
  7. * > > wmWindow         (window has an active screen)
  8. * > > > bScreen        (link to ScrAreas via 'areabase')
  9. * > > > > ScrArea      (stores multiple spaces via space links via 'spacedata')
  10. * > > > > > SpaceLink  (base struct for space data for all different space types)
  11. * > > > > ScrArea      (stores multiple regions via 'regionbase')
  12. * > > > > > ARegion
  13. * </pre>
  14. *
  15. * Window Layout
  16. * =============
  17. *
  18. * <pre>
  19. * wmWindow -> bScreen
  20. * +----------------------------------------------------------+
  21. * |+-----------------------------------------+-------------+ |
  22. * ||ScrArea (links to 3D view)               |ScrArea      | |
  23. * ||+-------++----------+-------------------+|(links to    | |
  24. * |||ARegion||          |ARegion (quad view)|| properties) | |
  25. * |||(tools)||          |                   ||             | |
  26. * |||       ||          |                   ||             | |
  27. * |||       ||          |                   ||             | |
  28. * |||       ||          |                   ||             | |
  29. * |||       |+----------+-------------------+|             | |
  30. * |||       ||          |                   ||             | |
  31. * |||       ||          |                   ||             | |
  32. * |||       ||          |                   ||             | |
  33. * |||       ||          |                   ||             | |
  34. * |||       ||          |                   ||             | |
  35. * ||+-------++----------+-------------------+|             | |
  36. * |+-----------------------------------------+-------------+ |
  37. * +----------------------------------------------------------+
  38. * </pre>
  39. *
  40. * Space Data
  41. * ==========
  42. *
  43. * <pre>
  44. * ScrArea's store a list of space data (SpaceLinks), each of unique type.
  45. * The first one is the displayed in the UI, others are added as needed.
  46. *
  47. * +----------------------------+  <-- sa->spacedata.first;
  48. * |                            |
  49. * |                            |---+  <-- other inactive SpaceLink's stored.
  50. * |                            |   |
  51. * |                            |   |---+
  52. * |                            |   |   |
  53. * |                            |   |   |
  54. * |                            |   |   |
  55. * |                            |   |   |
  56. * +----------------------------+   |   |
  57. *    |                             |   |
  58. *    +-----------------------------+   |
  59. *       |                              |
  60. *       +------------------------------+
  61. * </pre>
  62. *
  63. * A common way to get the space from the ScrArea:
  64. * <pre>
  65. *     if (sa->spacetype == SPACE_VIEW3D) {
  66. *         View3D *v3d = sa->spacedata.first;
  67. *         ...
  68. *     }
  69. * </pre>
  70. */
复制代码
回复 支持 反对

使用道具 举报

发表于 2013-11-29 20:23:28 | 显示全部楼层
不错的东西,会有用得到的的时候。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

Blender最新中文教学视频|Blender头条|小黑屋|手机版|Archiver|Blender中国 ( 蜀ICP备17002929号 )360网站安全检测平台

GMT+8, 2019-12-12 13:43 , Processed in 0.018827 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表