1 # SPDX-FileCopyrightText: 2016-2022 Blender Foundation
3 # SPDX-License-Identifier: GPL-2.0-or-later
7 "description": "Edit mode V/E/F Delete Modes",
8 "author": "pitiwazou, meta-androcto",
10 "blender": (2, 80, 0),
11 "location": "Mesh Edit Mode",
14 "category": "Edit Delete Pie"
18 from bpy
.types
import Menu
22 class PIE_MT_PieDelete(Menu
):
23 bl_idname
= "PIE_MT_delete"
24 bl_label
= "Pie Delete"
26 def draw(self
, context
):
28 pie
= layout
.menu_pie()
30 box
= pie
.split().column()
31 box
.operator("mesh.dissolve_limited", text
="Limited Dissolve", icon
='STICKY_UVS_LOC')
32 box
.operator("mesh.delete_edgeloop", text
="Delete Edge Loops", icon
='NONE')
33 box
.operator("mesh.edge_collapse", text
="Edge Collapse", icon
='UV_EDGESEL')
35 box
= pie
.split().column()
36 box
.operator("mesh.remove_doubles", text
="Merge By Distance", icon
='NONE')
37 box
.operator("mesh.delete", text
="Only Edge & Faces", icon
='NONE').type = 'EDGE_FACE'
38 box
.operator("mesh.delete", text
="Only Faces", icon
='UV_FACESEL').type = 'ONLY_FACE'
40 pie
.operator("mesh.dissolve_edges", text
="Dissolve Edges", icon
='SNAP_EDGE')
42 pie
.operator("mesh.delete", text
="Delete Edges", icon
='EDGESEL').type = 'EDGE'
44 pie
.operator("mesh.delete", text
="Delete Vertices", icon
='VERTEXSEL').type = 'VERT'
46 pie
.operator("mesh.delete", text
="Delete Faces", icon
='FACESEL').type = 'FACE'
48 pie
.operator("mesh.dissolve_verts", text
="Dissolve Vertices", icon
='SNAP_VERTEX')
50 pie
.operator("mesh.dissolve_faces", text
="Dissolve Faces", icon
='SNAP_FACE')
63 bpy
.utils
.register_class(cls
)
65 wm
= bpy
.context
.window_manager
66 if wm
.keyconfigs
.addon
:
68 km
= wm
.keyconfigs
.addon
.keymaps
.new(name
='Mesh')
69 kmi
= km
.keymap_items
.new('wm.call_menu_pie', 'X', 'PRESS')
70 kmi
.properties
.name
= "PIE_MT_delete"
71 addon_keymaps
.append((km
, kmi
))
76 bpy
.utils
.unregister_class(cls
)
78 wm
= bpy
.context
.window_manager
79 kc
= wm
.keyconfigs
.addon
81 for km
, kmi
in addon_keymaps
:
82 km
.keymap_items
.remove(kmi
)
86 if __name__
== "__main__":