CM3D2 Converter.misc_VIEW3D_MT_edit_mesh_split
1import bpy 2import bmesh 3from . import common 4from . import compat 5 6# メニュー等に項目追加 7def menu_func(self, context): 8 icon_id = common.kiss_icon() 9 self.layout.separator() 10 self.layout.label(text="CM3D2", icon_value=icon_id) 11 self.layout.operator('mesh.split_sharp') 12 13@compat.BlRegister() 14class CNV_OT_split_sharp(bpy.types.Operator): 15 bl_idname = 'mesh.split_sharp' 16 bl_label = "Split Sharp Edges" 17 bl_description = "Split all edges marked as sharp" 18 bl_options = {'REGISTER', 'UNDO'} 19 20 @classmethod 21 def poll(cls, context): 22 ob = context.active_object 23 return ob and ob.type == 'MESH' and ob.mode == 'EDIT' 24 25 def execute(self, context): 26 ob = context.active_object 27 me = ob.data 28 29 bpy.ops.mesh.select_all(action='DESELECT') 30 31 bm = bmesh.from_edit_mesh(me) 32 33 sharp_edges = list() 34 for edge in bm.edges: 35 if not edge.smooth: 36 sharp_edges.append(edge) 37 38 changed = bmesh.ops.split_edges(bm, edges=sharp_edges) 39 for edge in changed['edges']: 40 edge.select_set(True) 41 42 return {'FINISHED'}
@compat.BlRegister()
class
CNV_OT_split_sharp14@compat.BlRegister() 15class CNV_OT_split_sharp(bpy.types.Operator): 16 bl_idname = 'mesh.split_sharp' 17 bl_label = "Split Sharp Edges" 18 bl_description = "Split all edges marked as sharp" 19 bl_options = {'REGISTER', 'UNDO'} 20 21 @classmethod 22 def poll(cls, context): 23 ob = context.active_object 24 return ob and ob.type == 'MESH' and ob.mode == 'EDIT' 25 26 def execute(self, context): 27 ob = context.active_object 28 me = ob.data 29 30 bpy.ops.mesh.select_all(action='DESELECT') 31 32 bm = bmesh.from_edit_mesh(me) 33 34 sharp_edges = list() 35 for edge in bm.edges: 36 if not edge.smooth: 37 sharp_edges.append(edge) 38 39 changed = bmesh.ops.split_edges(bm, edges=sharp_edges) 40 for edge in changed['edges']: 41 edge.select_set(True) 42 43 return {'FINISHED'}
def
execute(self, context):
26 def execute(self, context): 27 ob = context.active_object 28 me = ob.data 29 30 bpy.ops.mesh.select_all(action='DESELECT') 31 32 bm = bmesh.from_edit_mesh(me) 33 34 sharp_edges = list() 35 for edge in bm.edges: 36 if not edge.smooth: 37 sharp_edges.append(edge) 38 39 changed = bmesh.ops.split_edges(bm, edges=sharp_edges) 40 for edge in changed['edges']: 41 edge.select_set(True) 42 43 return {'FINISHED'}
Inherited Members
- bpy_types.Operator
- as_keywords
- poll_message_set
- builtins.bpy_struct
- keys
- values
- items
- get
- pop
- as_pointer
- keyframe_insert
- keyframe_delete
- driver_add
- driver_remove
- is_property_set
- property_unset
- is_property_readonly
- is_property_overridable_library
- property_overridable_library_set
- path_resolve
- path_from_id
- type_recast
- bl_rna_get_subclass_py
- bl_rna_get_subclass
- id_properties_ensure
- id_properties_clear
- id_properties_ui
- id_data