Advertisement
Okorosso

icosider_ASAPiT

May 22nd, 2021
827
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.82 KB | None | 0 0
  1. import bpy
  2. import bmesh
  3. from bpy.types import Operator
  4. from bpy.props import *
  5. from bpy_extras.object_utils import AddObjectHelper, object_data_add
  6. from mathutils import Vector
  7.  
  8. length = 5
  9.  
  10.  
  11. class DialogOperator(bpy.types.Operator):
  12.     bl_idname = "object.dialog_operator"
  13.     bl_label = "Simple Dialog Operator"
  14.  
  15.     my_size = IntProperty(name="lenght", default=5)
  16.  
  17.     def execute(self, context):
  18.         global length
  19.         length = self.my_size
  20.         message = "%d" % (self.my_size)
  21.         return {'FINISHED'}
  22.  
  23.     def invoke(self, context, event):
  24.         global length
  25.         self.my_size = length
  26.         return context.window_manager.invoke_props_dialog(self)
  27.  
  28.  
  29. def add_object(self, context):
  30.     global length
  31.    
  32.     mesh = bpy.data.meshes.new('Basic_Sphere')
  33.     basic_sphere = bpy.data.objects.new("Basic_Sphere", mesh)
  34.     bpy.context.collection.objects.link(basic_sphere)
  35.     bpy.context.view_layer.objects.active = basic_sphere
  36.     basic_sphere.select_set(True)
  37.     bm = bmesh.new()
  38.     print(bmesh.ops.create_uvsphere(bm, u_segments=5, v_segments=3, diameter=length))
  39.     bm.to_mesh(mesh)
  40.  
  41.  
  42. class OBJECT_OT_add_object(Operator, AddObjectHelper):
  43.     """Create a new Mesh Object"""
  44.     bl_idname = "mesh.add_object"
  45.     bl_label = "Add ico"
  46.     bl_options = {'REGISTER', 'UNDO'}
  47.  
  48.     def execute(self, context):
  49.         add_object(self, context)
  50.         return {'FINISHED'}
  51.  
  52.  
  53. def add_object_button(self, context):
  54.     self.layout.operator(
  55.         OBJECT_OT_add_object.bl_idname,
  56.         text="Add ico",
  57.         icon='MESH_UVSPHERE')
  58.  
  59.  
  60. def register():
  61.     bpy.utils.register_class(DialogOperator)
  62.     bpy.utils.register_class(OBJECT_OT_add_object)
  63.     bpy.types.VIEW3D_MT_mesh_add.append(add_object_button)
  64.  
  65.  
  66. register()
  67. bpy.ops.object.dialog_operator('INVOKE_DEFAULT')
  68.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement