脚本分析:
我们以下面这个脚本为例,来分析一下,脚本文件的具体例子。
\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, 它会在前面提到的动作注册中被引用。
关于具体的齿轮生成算法,等我看懂了,再谈吧。
阅读(2635) | 评论(0) | 转发(0) |