User:Pluke/blender/menu item

From Wikibooks, open books for an open world
Jump to navigation Jump to search
import math
import bpy
import mathutils


class MakeTetrahedron(bpy.types.Operator) :
    bl_idname = "mesh.make_tetrahedron"
    bl_label = "Add Tetrahedron"
 
    def invoke(self, context, event) :
        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("Tetrahedron")
        NewMesh.from_pydata \
          (
            Vertices,
            [],
            [[0, 1, 2], [0, 1, 3], [1, 2, 3], [2, 0, 3]]
          )
        NewMesh.update()
        NewObj = bpy.data.objects.new("Tetrahedron", NewMesh)
        context.scene.objects.link(NewObj)
        return {"FINISHED"}
    #end invoke
#end MakeTetrahedron
 
bpy.utils.register_class(MakeTetrahedron)


class MoveOperator(bpy.types.Operator):
    bl_idname = "object.move_operator"
    bl_label = "Move Operator"
    
    def execute(self, context):
        context.active_object.location.x += 1.0
        return {'FINISHED'}
    
def register():
    bpy.utils.register_class(MoveOperator)
    
if __name__ == "__main__":
    register()
    
    bpy.context.active_object.location.x