It’s been many years so it probably no longer works, but I made addon with similar function in past:
BevelTool.py
# History
"""
15.12.15 - v 0.2 - now also affect edge crease (+ 1 for add bevel, -1 for remove bevel)
11.11.15 - v 0.1 - initial release, 2 bindable operators for hotkeys (add bevel, remove bevel)
"""
# Addon info
bl_info = {
"name": "BevelTool",
"version": (0, 2),
"blender": (2, 7, 6),
"description": "Hot-Keys location: 3D View > Mesh. Simple addon to reduce annoyances when using Bevel Modifier with Bevel Weights. Compatible with Hard Ops",
"category": "3D View"}
import bpy
from mathutils import Vector, Matrix, Quaternion, Euler, Color
# Add Bevel Operator
class BevelToolAddBevel(bpy.types.Operator):
bl_idname = "beveltool.addbevel"
bl_label = "Add Bevel"
def execute(self, context):
bpy.ops.mesh.mark_sharp(clear=False, use_verts=False)
bpy.ops.transform.edge_bevelweight(snap_target='CLOSEST', snap=False, snap_point=Vector((0.0, 0.0, 0.0)), release_confirm=False, snap_normal=Vector((0.0, 0.0, 0.0)), snap_align=False, value=1.0)
bpy.ops.transform.edge_crease(release_confirm=False, snap_normal=Vector((0.0, 0.0, 0.0)), snap_point=Vector((0.0, 0.0, 0.0)), snap=False, snap_target='CLOSEST', snap_align=False, value=1.0)
return {'FINISHED'}
# Remove Bevel Operator
class BevelToolRemoveBevel(bpy.types.Operator):
bl_idname = "beveltool.removebevel"
bl_label = "Remove Bevel"
def execute(self, context):
bpy.ops.mesh.mark_sharp(clear=True, use_verts=False)
bpy.ops.transform.edge_bevelweight(snap_target='CLOSEST', snap=False, snap_point=Vector((0.0, 0.0, 0.0)), release_confirm=False, snap_normal=Vector((0.0, 0.0, 0.0)), snap_align=False, value=-1.0)
bpy.ops.transform.edge_crease(release_confirm=False, snap_normal=Vector((0.0, 0.0, 0.0)), snap_point=Vector((0.0, 0.0, 0.0)), snap=False, snap_target='CLOSEST', snap_align=False, value=-1.0)
return {'FINISHED'}
# Store keymaps
addon_keymaps = []
# Registering Operators
def register():
bpy.utils.register_class(BevelToolAddBevel)
bpy.utils.register_class(BevelToolRemoveBevel)
# Registering Hot-Keys
kc = bpy.context.window_manager.keyconfigs.addon
km = kc.keymaps.new(name='Mesh')
kmi = km.keymap_items.new(BevelToolAddBevel.bl_idname, 'ACCENT_GRAVE', 'PRESS', ctrl=True)
kmi.active = True
addon_keymaps.append((km, kmi))
km = kc.keymaps.new(name='Mesh')
kmi = km.keymap_items.new(BevelToolRemoveBevel.bl_idname, 'ACCENT_GRAVE', 'PRESS', alt=True)
kmi.active = True
addon_keymaps.append((km, kmi))
# Un-registering Operators
def unregister():
bpy.utils.unregister_class(BevelToolAddBevel)
bpy.utils.unregister_class(BevelToolRemoveBevel)
# Un-registering Hot-Keys
for km, kmi in addon_keymaps:
km.keymap_items.remove(kmi)
addon_keymaps.clear()
# This allows script to run direclty from Blender Text Editor
if __name__ == "__main__":
register()
I’m not a programmer but I managed to cobble it together by experimenting with old macros recorder addon and reading info editor output. You will need 4 operators (add crease, remove crease, add bevel weight, remove bevel weight) and a way to assign hotkeys.
Though now I’m pretty sure it’s possible to do without any addons with just keymap trickery:
Change Shift+B hotkey (default is not that useful zoom to border) to add bevel weight +1
Add Alt+Shift+B to always assign -1 bevel weight
Some changes to Shift+E to make it always assign +1 crease
New hotkey Alt+Shift+E to always assign -1 crease
Make sure all these hotkeys are located in 3D View > Mesh > Mesh (Global) category:

There is small issue with this method: if you move your mouse before hotkey is released, blender will change value from absolute 1 / -1 because this is just how modal operators work. Accurate option ensures that change is gonna be small, but if this is a deal-breaker then addon solutions are better.