如何利用python画三棱锥_blender插件DEMO,添加一个三菱锥

这篇博客介绍了一个Blender插件的实现,该插件允许用户在3D视图中添加一个新的四面体对象。代码详细定义了插件的各个部分,包括顶点坐标、创建新网格、更新数据以及注册和卸载插件的方法。通过这个插件,用户可以方便地在Blender中快速生成四面体几何体。
摘要由CSDN通过智能技术生成

1.[文件]

插件 ~ 3KB

下载(17)

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 bpy

from bpy.types import Operator

from bpy.props import FloatVectorProperty

from bpy_extras.object_utils import AddObjectHelper,object_data_add

import math

import mathutils

def 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()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值