blender插件DEMO,添加一个三菱锥,blender三菱,这个blender是个3
blender插件DEMO,添加一个三菱锥,blender三菱,这个blender是个3
这个blender是个3D软件,可以用python给它添加插件,做二次开发。
然后目前2.6x版本,使用python 3.x版本
图片panel是将功能添加到面板上的效果
图片mesh_add是将功能添加到add->mesh菜单中的效果
图片operator是功能本身,blender使用这个方法可以类似命令的方式调用功能
图片result是结果
图片textEditor是blender软件集成的文本编辑器,点击红色框部分的列表可以选择各种模式,textEditor只是其中一种,run script按钮就是运行脚本的按钮,不过按之前要保存,调试插件的时候,一些bug会导致blender软件直接崩溃。templates菜单有很多demo也可以进行近一步的参考。
据说今年python年,凑个热闹……
bl_info = { "name" : "Tetrahedron Object", "author" : "mobilefzb", "version" : (0,1), "blender" : (2,6,3), "location" : "View3D > Add > Mesh > Tetrahedron Object", "description" : "Adds a new Tetrahedron", "warning" : "", "wiki_url" : "", "tracker_url" : "", "category" : "Add Mesh"}import bpyfrom bpy.types import Operatorfrom bpy.props import FloatVectorPropertyfrom bpy_extras.object_utils import AddObjectHelper,object_data_addimport mathimport mathutilsdef add_tetrahedron(self,context) : Vertices = [ mathutils.Vector((0,-1 / math.sqrt(3),0)), mathutils.Vector((0.5,1 / (2 * math.sqrt(3)),0)), mathutils.Vector((-0.5,1 / (2 * math.sqrt(3)),0)), mathutils.Vector((0,0,math.sqrt(2 / 3))) ] NewMesh = bpy.data.meshes.new("Terahedron") NewMesh.from_pydata \\ ( Vertices, [], [[0,1,2],[0,1,3],[1,2,3],[2,0,3]] ) #these code maybe replaced with object_data_data #NewMesh.update() #NewObj = bpy.data.objects.new("Tetrahedron",NewMesh) #context.scene.objects.link(NewObj) #return {"FINISHED"} object_data_add(context,NewMesh,operator = self)class OBJECT_OT_add_tetrahedron(Operator,AddObjectHelper) : '''add a tetrahedron''' bl_idname = "mesh.add_tetrahedron" bl_label = "Add Mesh tetrahedron" bl_description = "Create a new Mesh tetrahedron" bl_options = {'REGISTER','UNDO'} def execute(self,context) : add_tetrahedron(self,context) return {"FINISHED"}def add_object_button(self,context) : self.layout.operator( OBJECT_OT_add_tetrahedron.bl_idname, text = "Add tetrahedron", icon = "PLUGIN")class OBJECT_PT_Panel(bpy.types.Panel) : bl_label = "Add Tetrahedron" bl_space_type = "PROPERTIES" bl_region_type = "WINDOW" bl_context = "object" def draw_header(self,context) : layout = self.layout layout.label(text = "",icon = "PHYSICS") def draw(self,context) : row = self.layout.column(align = True) row.operator("mesh.add_tetrahedron",text = "Add Tetrahedron")def register() : bpy.utils.register_class(OBJECT_OT_add_tetrahedron) bpy.types.INFO_MT_mesh_add.append(add_object_button) bpy.utils.register_class(OBJECT_PT_Panel)def unregister() : bpy.utils.unregister_class(OBJECT_OT_add_tetrahedron) bpy.types.INFO_MT_mesh_add.remove(add_object_button) bpy.utils.unregister_class(OBJECT_PT_Panel)if __name__ == "__main__" : register()#该片段来自于http://byrx.net
相关内容
- 生成Chaos风格的PhotoMosaic效果,chaosphotomosaic,platform: li
- 绘制人人好友关系图,绘制人人好友,依赖:networkx
- mysql数据导入到sqlite3中,数据导入sqlite3,家里的路由器
- 获取电影最新下载列表,获取电影最新下载,# coding=gb
- 打开文件对话框,,from tkinter
- Session for Tornado(Redis),tornadoredis,session id的生
- 使用python登录人人网并发表状态,python登录人人发表
- 使用Python解决FizzBuzz问题,python解决fizzbuzz,FizzBuzz问题描
- 文件夹对比,,买了个移动硬盘备份 但是
- 简单模拟编译前端过程,简单模拟编译过程,学了几天
评论关闭