Chinaunix首页 | 论坛 | 博客
  • 博客访问: 891565
  • 博文数量: 380
  • 博客积分: 3495
  • 博客等级: 中校
  • 技术积分: 3996
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-02 09:35
文章分类

全部博文(380)

文章存档

2015年(2)

2014年(5)

2013年(9)

2012年(9)

2011年(67)

2010年(103)

2009年(182)

2008年(3)

我的朋友

分类:

2011-07-05 16:44:40

脚本分析:
我们以下面这个脚本为例,来分析一下,脚本文件的具体例子。
\2.57\scripts\addons\add_mesh_extra_objects
 add_mesh_3d_function_surface.py
 add_mesh_extra_objects.py
 add_mesh_gears.py                齿轮生成文件
 add_mesh_gemstones.py
 add_mesh_twisted_torus.py
 __init__.py                      包的初始文件
 
1.__init__.py
基本结构:
bl_info:基本上定义了这个脚本在blenderk 的信息,
      如在那个分类 ,自己是做什么的,
      要注意的就是:category, 定义这个脚本在AddOns是在那个脚本分类中。
                    blender,定义自己是用在那个blender版本中。
                    name,定义自己这个脚本在blender中的名字。
class INFO_MT_mesh_extras_add: 菜单类,用于实现extras_object的菜单是什么。
      在这个类中有个成员函数:draw(), 所有的操作都是在这个方法显示在窗口上的,也就是每个子菜单叫什么,执行什么动作。
      如下下面的代码:
      layout.operator("mesh.primitive_gear", text="Gear")
      相应的动作就是你点击"Gear"这个菜单, 就会执行我们将要分析的类AddGear,它将创建一个齿轮。
def menu_func:菜单显示时的一个回调函数。
def register:注册整个模块的操作到Add Mesh这个菜单中
def unregister:去注册

基本上这类脚本都要以下面的代码结尾,来把自己的操作注册到blender中。
if __name__ == "__main__":
    register()
   
2. add_mesh_gears.py
    这里边有两个类, AddGear与AddWormGear,它们的结构是完全一致的,只分析一下AddGear。
    下面是代码的摘要,基本上就是定义属性,然后draw()函数中,定义这个操作会在那个面板上怎么显示。
    execute()就是定义执行的时候,会做什么动作,当然这个类中就是怎么画个齿轮物体出来。
    要注意的就是bl_idname, 它会在前面提到的动作注册中被引用。
    关于具体的齿轮生成算法,等我看懂了,再谈吧。
阅读(2584) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~