I have written a pie menu for shading objects. In the script, I have included a hotkey assignment. It shows up in User Preferences however when I press said hotkey, it isn’t showing up. I can call it from the console so I don’t know why it’s not working.
bl_info = { "name": "Shader Pie",
"description": "Custom shader pie menu",
"author": "Lee Hesketh",
"version": (0, 1, 1),
"blender": (2, 75, 0),
"location": "3D View",
"warning": "",
"wiki_url": "",
"category": "Shading Pie"
}
import bpy
from bpy.types import Menu, Operator
class auto_smooth(Operator):
bl_idname = "object.auto_smooth"
bl_label = "Auto Smooth"
def execute(slef, context):
bpy.ops.object.shade_smooth()
bpy.context.object.data.use_auto_smooth = True
return {"FINISHED"}
class shader_pie(Menu):
bl_label = "Shading"
bl_idmane = "pie.shader"
def draw(self, context):
layout = self.layout
pie = layout.menu_pie()
pie.operator("object.shade_smooth")
pie.operator("object.shade_flat")
pie.operator("object.auto_smooth")
addon_keymaps = []
def register():
bpy.utils.register_class(shader_pie)
bpy.utils.register_class(auto_smooth)
wm = bpy.context.window_manager
if wm.keyconfigs.addon:
km = wm.keyconfigs.addon.keymaps.new(name='Object Mode')
kmi = km.keymap_items.new('wm.call_menu_pie', 'BACK_SLASH', 'PRESS')
kmi.properties.name = "pie.shader"
addon_keymaps.append((km, kmi))
def unregister():
bpy.utils.unregister_class(shader_pie)
bpy.utils.unregister_class(auto_smooth)
wm = bpy.context.window_manager
kc = wm.keyconfigs.addon
if kc:
for km, kmi in addon_keymaps:
km.keymap_items.remove(kmi)
addon_keymaps.clear()
if __name__ == "__main__":
register()