Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- bl_info = {
- "name": "TS maker",
- "author": "RomaOkorosso",
- "version": (1, 0),
- "blender": (2, 80, 0),
- "location": "View3D > Add > Mesh > New Object",
- "description": "Adds a new Mesh Object",
- "warning": "",
- "doc_url": "",
- "category": "Add Mesh",
- }
- import bpy
- from bpy.types import Operator
- from bpy.props import *
- from bpy_extras.object_utils import AddObjectHelper, object_data_add
- from mathutils import Vector
- ssize = 5
- def generate_verts(side_len):
- lp = -(side_len / 2) # left point
- rp = side_len / 2 # right point
- verts = [Vector((lp, rp, rp)),
- Vector((rp, rp, rp)),
- Vector((rp, lp, rp)),
- Vector((lp, lp, rp)),
- Vector((lp, rp, lp)),
- Vector((rp, rp, lp)),
- Vector((rp, lp, lp)),
- Vector((lp, lp, lp)),
- ]
- return verts
- def gen_tess(side_len):
- small_cube_side = side_len / 2 # right point
- v1 = generate_verts(side_len)
- v2 = generate_verts(small_cube_side)
- print(v1 + v2)
- return v1 + v2
- class DialogOperator(bpy.types.Operator):
- bl_idname = "object.dialog_operator"
- bl_label = "Simple Dialog Operator"
- my_size = IntProperty(name="lenght", default=5)
- def execute(self, context):
- global ssize
- ssize = self.my_size
- message = "%d" % (self.my_size)
- return {'FINISHED'}
- def invoke(self, context, event):
- global ssize
- self.my_size = ssize
- return context.window_manager.invoke_props_dialog(self)
- def add_object(self, context):
- global ssize
- verts = gen_tess(ssize)
- edges = [[0, 1], [1, 2], [2, 3], [3, 0], [4, 5], [5, 6], [6, 7], [7, 4], [0, 4], [1, 5], [2, 6], [3, 7],
- [8, 9], [9, 10], [10, 11], [11, 8], [12, 13], [13, 14], [14, 15], [15, 12], [8, 12], [9, 13], [10, 14],
- [11, 15], [0, 8], [1, 9], [2, 10], [3, 11], [4, 12], [5, 13], [6, 14], [7, 15]]
- faces = []
- mesh = bpy.data.meshes.new(name="New Object Mesh")
- mesh.from_pydata(verts, edges, faces)
- object_data_add(context, mesh, operator=self)
- class OBJECT_OT_add_object(Operator, AddObjectHelper):
- """Create a new Mesh Object"""
- bl_idname = "mesh.add_object"
- bl_label = "Add tesseract"
- bl_options = {'REGISTER', 'UNDO'}
- def execute(self, context):
- add_object(self, context)
- return {'FINISHED'}
- def add_object_button(self, context):
- self.layout.operator(
- OBJECT_OT_add_object.bl_idname,
- text="Add tesseract",
- icon='CUBE')
- def register():
- bpy.utils.register_class(DialogOperator)
- bpy.utils.register_class(OBJECT_OT_add_object)
- bpy.types.VIEW3D_MT_mesh_add.append(add_object_button)
- def unregister():
- bpy.utils.unregister_class(OBJECT_OT_add_object)
- bpy.types.VIEW3D_MT_mesh_add.remove(add_object_button)
- if __name__ == "__main__":
- register()
- bpy.ops.object.dialog_operator('INVOKE_DEFAULT')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement