Created
April 11, 2019 12:52
-
-
Save bastianlstrube/010f9e22c15ce05b42ec464acee2369d to your computer and use it in GitHub Desktop.
Blender Mayan Pies - Draft Recipe
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import bpy | |
from bpy.types import ( | |
Header, | |
Menu, | |
Panel, | |
) | |
from bpy.app.translations import contexts as i18n_contexts | |
class VIEW3D_contextPie(Menu): | |
bl_label = "" | |
def draw(self, context): | |
if context.mode == 'EDIT_MESH': | |
def count_selected_items_for_objects_in_mode(): | |
selected_verts_len = 0 | |
selected_edges_len = 0 | |
selected_faces_len = 0 | |
for ob in context.objects_in_mode_unique_data: | |
v, e, f = ob.data.count_selected_items() | |
selected_verts_len += v | |
selected_edges_len += e | |
selected_faces_len += f | |
return (selected_verts_len, selected_edges_len, selected_faces_len) | |
is_vert_mode, is_edge_mode, is_face_mode = context.tool_settings.mesh_select_mode | |
selected_verts_len, selected_edges_len, selected_faces_len = count_selected_items_for_objects_in_mode() | |
del count_selected_items_for_objects_in_mode | |
# If nothing is selected | |
# (disabled for now until it can be made more useful). | |
''' | |
# If nothing is selected | |
if not (selected_verts_len or selected_edges_len or selected_faces_len): | |
layout.menu("VIEW3D_MT_mesh_add", text="Add") | |
return | |
''' | |
# Else something is selected | |
layout = self.layout | |
layout.operator_context = 'INVOKE_REGION_WIN' | |
pie = layout.menu_pie() | |
if is_vert_mode: | |
# WEST | |
pie.operator("mesh.knife_tool", text="Knife") | |
# EAST | |
pie.separator() | |
# SOUTH | |
pie.operator("mesh.extrude_vertices_move", text="Extrude Vertices") | |
# NORTH | |
pie.operator("mesh.merge", text="Merge") | |
# potentiel for sub pie: pie.operator("mesh.remove_doubles", text="Remove Double Vertices") | |
# NORTH-WEST | |
pie.operator("mesh.loopcut_slide", text="Insert Loop") | |
# NORTH-EAST | |
pie.operator("mesh.bevel", text="Bevel Vertices").vertex_only = True | |
# SOUTH-WEST | |
pie.menu("VIEW3D_MT_edit_mesh_delete", text="Delete") | |
#pie.operator("mesh.dissolve_verts") | |
# potentiel for sub pie: pie.operator("mesh.delete", text="Delete Vertices").type = 'VERT' | |
# SOUTH-EAST | |
pie.operator("transform.vert_slide", text="Slide Vertex") | |
# Static Vert menu | |
pie.separator() | |
pie.separator() | |
dropdown = pie.column() | |
gap = dropdown.column() | |
gap.separator() | |
gap.scale_y = 8 | |
dropdown_menu = dropdown.box().column() | |
dropdown_menu.scale_y=1 | |
dropdown_menu.operator("wm.toolbar", text = "Handy Tools", icon="TOOL_SETTINGS") | |
dropdown_menu.operator("mesh.remove_doubles", text="Remove Double Vertices") | |
dropdown_menu.operator("mesh.bisect", text = "Bisect") | |
dropdown_menu.operator("transform.edge_crease", text = "Crease Tool") | |
dropdown_menu.operator("mesh.rip_move", text = "Detach Components") | |
dropdown_menu.operator("mesh.bevel", text="Bevel Vertices").vertex_only = True | |
#dropdown_menu.operator("mesh.primitive_cube_add", text = "Crease Tool", icon="ops.generic.select") | |
#dropdown_menu.operator("mesh.primitive_cube_add", text = "Connect Components") | |
#dropdown_menu.operator("mesh.primitive_cube_add", text = "Circularize Component") | |
if is_edge_mode: | |
#render = context.scene.render | |
# WEST | |
pie.operator("mesh.knife_tool", text="Knife") | |
# EAST | |
pie.operator("mesh.edge_face_add", text="Fill") | |
# SOUTH | |
pie.operator("mesh.extrude_edges_move", text="Extrude Edges") | |
# NORTH | |
pie.operator("mesh.merge", text="Merge") | |
# NORTH-WEST | |
pie.operator("mesh.loopcut_slide", text="Insert Loop") | |
# NORTH-EAST | |
pie.operator("mesh.bevel", text="Bevel Edges").vertex_only = False | |
# SOUTH-WEST | |
pie.menu("VIEW3D_MT_edit_mesh_delete", text="Delete") | |
# SOUTH-EAST | |
pie.operator("transform.edge_slide", text="Slide Edge") | |
# Static edge menu | |
pie.separator() | |
pie.separator() | |
dropdown = pie.column() | |
gap = dropdown.column() | |
gap.separator() | |
gap.scale_y = 8 | |
dropdown_menu = dropdown.box().column() | |
dropdown_menu.scale_y=1 | |
dropdown_menu.operator("wm.toolbar", text = "Handy Tools", icon="TOOL_SETTINGS") | |
dropdown_menu.operator("mesh.bisect", text = "Bisect") | |
dropdown_menu.operator("transform.edge_crease", text = "Crease Tool") | |
dropdown_menu.operator("mesh.mark_sharp", text = "Mark Sharp") | |
dropdown_menu.operator("mesh.mark_sharp", text="Clear Sharp").clear = True | |
dropdown_menu.operator("mesh.subdivide", text = "Add Division To Edge") | |
dropdown_menu.operator("mesh.bridge_edge_loops", text = "Bridge") | |
dropdown_menu.operator("mesh.rip_move", text = "Detach Components") | |
#dropdown_menu.operator("mesh.primitive_cube_add", text = "Circularize Component") | |
#dropdown_menu.operator("mesh.primitive_cube_add", text = "Edit Edge Flow") | |
#dropdown_menu.operator("mesh.primitive_cube_add", text = "Offset Edge Loop Tool") | |
#dropdown_menu.operator("mesh.primitive_cube_add", text = "Insert Edgeloop Tool") | |
#dropdown_menu.operator("mesh.primitive_cube_add", text = "Fill") | |
#dropdown_menu.operator("mesh.primitive_cube_add", text = "Connect Components") | |
if is_face_mode: | |
# WEST | |
pie.operator("mesh.knife_tool", text="Knife") | |
# EAST | |
pie.operator("mesh.subdivide", text="Subdivide") | |
# SOUTH | |
pie.operator("view3d.edit_mesh_extrude_move_normal", text="Extrude Faces") | |
# NORTH | |
pie.operator("mesh.merge", text="Merge") | |
# potentiel for sub pie: pie.operator("mesh.dissolve_faces") | |
# NORTH-WEST | |
pie.operator("mesh.loopcut_slide", text="Insert Loop") | |
# NORTH-EAST | |
pie.operator("mesh.unsubdivide") | |
# SOUTH-WEST | |
pie.menu("VIEW3D_MT_edit_mesh_delete", text="Delete") | |
# SOUTH-EAST | |
pie.separator() | |
# Static face menu | |
pie.separator() | |
pie.separator() | |
dropdown = pie.column() | |
gap = dropdown.column() | |
gap.separator() | |
gap.scale_y = 8 | |
dropdown_menu = dropdown.box().column() | |
dropdown_menu.scale_y=1 | |
dropdown_menu.operator("wm.toolbar", text = "Handy Tools", icon="TOOL_SETTINGS") | |
dropdown_menu.operator("mesh.bisect", text = "Bisect") | |
dropdown_menu.operator("mesh.rip_move", text = "Extract Faces") | |
#dropdown_menu.operator("mesh.primitive_cube_add", text = "handy tools", icon="TOOL_SETTINGS") | |
if bpy.context.mode == 'OBJECT': | |
layout = self.layout | |
layout.operator_context = 'INVOKE_REGION_WIN' | |
pie = layout.menu_pie() | |
obj = context.object | |
# WEST | |
if obj is not None and obj.type in {'MESH', 'CURVE', 'SURFACE'}: | |
pie.operator("object.shade_smooth", text="Shade Smooth") | |
pie.operator("object.shade_flat", text="Shade Flat") | |
# SOUTH | |
props = pie.operator("object.select_hierarchy", text="Select Child") | |
props.extend = False | |
props.direction = 'CHILD' | |
# NORTH | |
props = pie.operator("object.select_hierarchy", text="Select Parent") | |
props.extend = False | |
props.direction = 'PARENT' | |
# NORTH-WEST | |
pie.operator("object.parent_set", text="Parent") | |
# NORTH-EAST | |
pie.operator("object.parent_clear", text="Clear Parent") | |
# SOUTH-WEST | |
pie.separator() | |
# SOUTH-EAST | |
pie.separator() | |
# Static non pie menu 01 | |
pie.separator() | |
pie.separator() | |
dropdown = pie.column() | |
gap = dropdown.column() | |
gap.separator() | |
gap.scale_y = 8 | |
dropdown_menu = dropdown.box().column() | |
dropdown_menu.scale_y=1 | |
#dropdown_menu.operator("object.shade_smooth", text="Shade Smooth") | |
#dropdown_menu.operator("object.shade_smooth", text="Deselect All") | |
#dropdown_menu.operator("object.shade_smooth", text="Select Hierachy") | |
#dropdown_menu.operator("object.shade_smooth", text="Invert Selection") | |
def register(): | |
bpy.utils.register_class(VIEW3D_contextPie) | |
def unregister(): | |
bpy.utils.unregister_class(VIEW3D_contextPie) | |
if __name__ == "__main__": | |
register() | |
bpy.ops.wm.call_menu_pie(name="VIEW3D_contextPie") | |
""" | |
class VIEW3D_MT_edit_mesh_specials(Menu): | |
bl_label = "" | |
def draw(self, context): | |
def count_selected_items_for_objects_in_mode(): | |
selected_verts_len = 0 | |
selected_edges_len = 0 | |
selected_faces_len = 0 | |
for ob in context.objects_in_mode_unique_data: | |
v, e, f = ob.data.count_selected_items() | |
selected_verts_len += v | |
selected_edges_len += e | |
selected_faces_len += f | |
return (selected_verts_len, selected_edges_len, selected_faces_len) | |
is_vert_mode, is_edge_mode, is_face_mode = context.tool_settings.mesh_select_mode | |
selected_verts_len, selected_edges_len, selected_faces_len = count_selected_items_for_objects_in_mode() | |
del count_selected_items_for_objects_in_mode | |
layout = self.layout | |
layout.operator_context = 'INVOKE_REGION_WIN' | |
# If nothing is selected | |
# (disabled for now until it can be made more useful). | |
''' | |
# If nothing is selected | |
if not (selected_verts_len or selected_edges_len or selected_faces_len): | |
layout.menu("VIEW3D_MT_mesh_add", text="Add") | |
return | |
''' | |
# Else something is selected | |
row = layout.row() | |
if is_vert_mode: | |
col = row.column() | |
col.label(text="Vertex Context Menu", icon='VERTEXSEL') | |
col.separator() | |
# Additive Operators | |
col.operator("mesh.subdivide", text="Subdivide") | |
col.separator() | |
col.operator("mesh.extrude_vertices_move", text="Extrude Vertices"), | |
col.operator("mesh.bevel", text="Bevel Vertices").vertex_only = True | |
if selected_verts_len > 1: | |
col.separator() | |
col.operator("mesh.edge_face_add", text="New Edge/Face from Vertices") | |
col.operator("mesh.vert_connect_path", text="Connect Vertex Path") | |
col.operator("mesh.vert_connect", text="Connect Vertex Pairs") | |
col.separator() | |
# Deform Operators | |
col.operator("transform.push_pull", text="Push/Pull") | |
col.operator("transform.shrink_fatten", text="Shrink/Fatten") | |
col.operator("transform.shear", text="Shear") | |
col.operator("transform.vert_slide", text="Slide Vertices") | |
col.operator("transform.vertex_random", text="Randomize Vertices") | |
col.operator("mesh.vertices_smooth", text="Smooth Vertices") | |
col.operator("mesh.vertices_smooth_laplacian", text="Smooth Laplacian") | |
col.separator() | |
col.menu("VIEW3D_MT_snap", text="Snap Vertices...") | |
col.operator("transform.mirror", text="Mirror Vertices") | |
col.separator() | |
# Removal Operators | |
if selected_verts_len > 1: | |
col.operator("mesh.merge", text="Merge Vertices...") | |
col.operator("mesh.remove_doubles", text="Remove Double Vertices") | |
col.operator("mesh.dissolve_verts") | |
col.operator("mesh.delete", text="Delete Vertices").type = 'VERT' | |
if is_edge_mode: | |
render = context.scene.render | |
col = row.column() | |
col.label(text="Edge Context Menu", icon='EDGESEL') | |
col.separator() | |
# Additive Operators | |
col.operator("mesh.subdivide", text="Subdivide") | |
col.separator() | |
col.operator("mesh.extrude_edges_move", text="Extrude Edges"), | |
col.operator("mesh.bevel", text="Bevel Edges").vertex_only = False | |
if selected_edges_len >= 2: | |
col.operator("mesh.bridge_edge_loops") | |
col.separator() | |
col.operator("mesh.loopcut_slide") | |
col.operator("mesh.offset_edge_loops_slide") | |
col.operator("mesh.knife_tool") | |
col.operator("mesh.bisect") | |
col.operator("mesh.bridge_edge_loops", text="Bridge Edge Loops") | |
col.separator() | |
# Deform Operators | |
col.operator("mesh.edge_rotate", text="Rotate Edge CW").use_ccw = False | |
col.operator("transform.edge_slide") | |
col.operator("mesh.edge_split") | |
col.separator() | |
# Edge Flags | |
col.operator("transform.edge_crease") | |
col.operator("transform.edge_bevelweight") | |
col.separator() | |
col.operator("mesh.mark_seam").clear = False | |
col.operator("mesh.mark_seam", text="Clear Seam").clear = True | |
col.separator() | |
col.operator("mesh.mark_sharp") | |
col.operator("mesh.mark_sharp", text="Clear Sharp").clear = True | |
if render.use_freestyle: | |
col.separator() | |
col.operator("mesh.mark_freestyle_edge").clear = False | |
col.operator("mesh.mark_freestyle_edge", text="Clear Freestyle Edge").clear = True | |
col.separator() | |
# Removal Operators | |
col.operator("mesh.unsubdivide") | |
col.operator("mesh.dissolve_edges") | |
col.operator("mesh.delete", text="Delete Edges").type = 'EDGE' | |
if is_face_mode: | |
col = row.column() | |
col.label(text="Face Context Menu", icon='FACESEL') | |
col.separator() | |
# Additive Operators | |
col.operator("mesh.subdivide", text="Subdivide") | |
col.separator() | |
col.operator("view3d.edit_mesh_extrude_move_normal", text="Extrude Faces"), | |
col.operator("view3d.edit_mesh_extrude_move_shrink_fatten", text="Extrude Faces Along Normals"), | |
col.operator("mesh.extrude_faces_move", text="Extrude Individual Faces"), | |
col.operator("mesh.inset"), | |
col.operator("mesh.poke") | |
if selected_faces_len >= 2: | |
col.operator("mesh.bridge_edge_loops", text="Bridge Faces") | |
col.separator() | |
# Modify Operators | |
col.menu("VIEW3D_MT_uv_map", text="UV Unwrap Faces...") | |
col.separator() | |
props = col.operator("mesh.quads_convert_to_tris") | |
props.quad_method = props.ngon_method = 'BEAUTY' | |
col.operator("mesh.tris_convert_to_quads") | |
col.separator() | |
col.operator("mesh.faces_shade_smooth") | |
col.operator("mesh.faces_shade_flat") | |
col.separator() | |
# Removal Operators | |
col.operator("mesh.unsubdivide") | |
col.operator("mesh.dissolve_faces") | |
col.operator("mesh.delete", text="Delete Faces").type = 'FACE' | |
class VIEW3D_MT_object_specials(Menu): | |
bl_label = "Object Context Menu" | |
def draw(self, context): | |
layout = self.layout | |
view = context.space_data | |
obj = context.object | |
is_eevee = context.scene.render.engine == 'BLENDER_EEVEE' | |
selected_objects_len = len(context.selected_objects) | |
# If nothing is selected | |
# (disabled for now until it can be made more useful). | |
''' | |
if selected_objects_len == 0: | |
layout.menu("VIEW3D_MT_add", text="Add") | |
layout.operator("view3d.pastebuffer", text="Paste Objects", icon='PASTEDOWN') | |
return | |
''' | |
# If something is selected | |
if obj is not None and obj.type in {'MESH', 'CURVE', 'SURFACE'}: | |
layout.operator("object.shade_smooth", text="Shade Smooth") | |
layout.operator("object.shade_flat", text="Shade Flat") | |
layout.separator() | |
if obj is None: | |
pass | |
elif obj.type == 'MESH': | |
layout.operator_context = 'INVOKE_REGION_WIN' | |
layout.operator_menu_enum("object.origin_set", text="Set Origin...", property="type") | |
layout.operator_context = 'INVOKE_DEFAULT' | |
# If more than one object is selected | |
if selected_objects_len > 1: | |
layout.operator("object.join") | |
elif obj.type == 'CAMERA': | |
layout.operator_context = 'INVOKE_REGION_WIN' | |
if obj.data.type == 'PERSP': | |
props = layout.operator("wm.context_modal_mouse", text="Camera Lens Angle") | |
props.data_path_iter = "selected_editable_objects" | |
props.data_path_item = "data.lens" | |
props.input_scale = 0.1 | |
if obj.data.lens_unit == 'MILLIMETERS': | |
props.header_text = "Camera Lens Angle: %.1fmm" | |
else: | |
props.header_text = "Camera Lens Angle: %.1f\u00B0" | |
else: | |
props = layout.operator("wm.context_modal_mouse", text="Camera Lens Scale") | |
props.data_path_iter = "selected_editable_objects" | |
props.data_path_item = "data.ortho_scale" | |
props.input_scale = 0.01 | |
props.header_text = "Camera Lens Scale: %.3f" | |
if not obj.data.dof_object: | |
if view and view.camera == obj and view.region_3d.view_perspective == 'CAMERA': | |
props = layout.operator("ui.eyedropper_depth", text="DOF Distance (Pick)") | |
else: | |
props = layout.operator("wm.context_modal_mouse", text="DOF Distance") | |
props.data_path_iter = "selected_editable_objects" | |
props.data_path_item = "data.dof_distance" | |
props.input_scale = 0.02 | |
props.header_text = "DOF Distance: %.3f" | |
elif obj.type in {'CURVE', 'FONT'}: | |
layout.operator_context = 'INVOKE_REGION_WIN' | |
props = layout.operator("wm.context_modal_mouse", text="Extrude Size") | |
props.data_path_iter = "selected_editable_objects" | |
props.data_path_item = "data.extrude" | |
props.input_scale = 0.01 | |
props.header_text = "Extrude Size: %.3f" | |
props = layout.operator("wm.context_modal_mouse", text="Width Size") | |
props.data_path_iter = "selected_editable_objects" | |
props.data_path_item = "data.offset" | |
props.input_scale = 0.01 | |
props.header_text = "Width Size: %.3f" | |
layout.operator("object.convert", text="Convert to Mesh").target = 'MESH' | |
layout.operator_menu_enum("object.origin_set", text="Set Origin...", property="type") | |
elif obj.type == 'GPENCIL': | |
layout.operator("gpencil.convert", text="Convert to Path").type = 'PATH' | |
layout.operator("gpencil.convert", text="Convert to Bezier Curves").type = 'CURVE' | |
layout.operator("gpencil.convert", text="Convert to Mesh").type = 'POLY' | |
layout.operator_menu_enum("object.origin_set", text="Set Origin...", property="type") | |
elif obj.type == 'EMPTY': | |
layout.operator_context = 'INVOKE_REGION_WIN' | |
props = layout.operator("wm.context_modal_mouse", text="Empty Draw Size") | |
props.data_path_iter = "selected_editable_objects" | |
props.data_path_item = "empty_display_size" | |
props.input_scale = 0.01 | |
props.header_text = "Empty Draw Size: %.3f" | |
elif obj.type == 'LIGHT': | |
light = obj.data | |
layout.operator_context = 'INVOKE_REGION_WIN' | |
emission_node = None | |
if light.node_tree: | |
for node in light.node_tree.nodes: | |
if getattr(node, "type", None) == 'EMISSION': | |
emission_node = node | |
break | |
if is_eevee and not emission_node: | |
props = layout.operator("wm.context_modal_mouse", text="Energy") | |
props.data_path_iter = "selected_editable_objects" | |
props.data_path_item = "data.energy" | |
props.header_text = "Light Energy: %.3f" | |
if emission_node is not None: | |
props = layout.operator("wm.context_modal_mouse", text="Energy") | |
props.data_path_iter = "selected_editable_objects" | |
props.data_path_item = ( | |
"data.node_tree" | |
".nodes[\"" + emission_node.name + "\"]" | |
".inputs[\"Strength\"].default_value" | |
) | |
props.header_text = "Light Energy: %.3f" | |
props.input_scale = 0.1 | |
if light.type == 'AREA': | |
props = layout.operator("wm.context_modal_mouse", text="Size X") | |
props.data_path_iter = "selected_editable_objects" | |
props.data_path_item = "data.size" | |
props.header_text = "Light Size X: %.3f" | |
if light.shape in {'RECTANGLE', 'ELLIPSE'}: | |
props = layout.operator("wm.context_modal_mouse", text="Size Y") | |
props.data_path_iter = "selected_editable_objects" | |
props.data_path_item = "data.size_y" | |
props.header_text = "Light Size Y: %.3f" | |
elif light.type in {'SPOT', 'POINT', 'SUN'}: | |
props = layout.operator("wm.context_modal_mouse", text="Radius") | |
props.data_path_iter = "selected_editable_objects" | |
props.data_path_item = "data.shadow_soft_size" | |
props.header_text = "Light Radius: %.3f" | |
if light.type == 'SPOT': | |
layout.separator() | |
props = layout.operator("wm.context_modal_mouse", text="Spot Size") | |
props.data_path_iter = "selected_editable_objects" | |
props.data_path_item = "data.spot_size" | |
props.input_scale = 0.01 | |
props.header_text = "Spot Size: %.2f" | |
props = layout.operator("wm.context_modal_mouse", text="Spot Blend") | |
props.data_path_iter = "selected_editable_objects" | |
props.data_path_item = "data.spot_blend" | |
props.input_scale = -0.01 | |
props.header_text = "Spot Blend: %.2f" | |
layout.separator() | |
layout.operator("view3d.copybuffer", text="Copy Objects", icon='COPYDOWN') | |
layout.operator("view3d.pastebuffer", text="Paste Objects", icon='PASTEDOWN') | |
layout.separator() | |
layout.operator("object.duplicate_move", icon='DUPLICATE') | |
layout.operator("object.duplicate_move_linked") | |
layout.separator() | |
layout.menu("VIEW3D_MT_snap") | |
layout.menu("VIEW3D_MT_object_parent") | |
layout.operator_context = 'INVOKE_REGION_WIN' | |
if view and view.local_view: | |
layout.operator("view3d.localview_remove_from") | |
else: | |
layout.operator("object.move_to_collection") | |
layout.separator() | |
layout.operator("anim.keyframe_insert_menu", text="Insert Keyframe...") | |
layout.separator() | |
layout.operator_context = 'EXEC_DEFAULT' | |
layout.operator("object.delete", text="Delete").use_global = False | |
""" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import bpy | |
from bpy.types import (keyconfig_data = \ | |
[("Object Mode", | |
{"space_type": 'EMPTY', "region_type": 'WINDOW'}, | |
{"items": | |
[("wm.call_menu_pie", | |
{"type": 'O', "value": 'PRESS', "shift": True}, | |
{"properties": | |
[("name", 'VIEW3D_MT_proportional_editing_falloff_pie'), | |
], | |
}, | |
), | |
("wm.context_toggle", | |
{"type": 'O', "value": 'PRESS'}, | |
{"properties": | |
[("data_path", 'tool_settings.use_proportional_edit_objects'), | |
], | |
}, | |
), | |
("object.select_all", | |
{"type": 'A', "value": 'PRESS'}, | |
{"properties": | |
[("action", 'SELECT'), | |
], | |
}, | |
), | |
("object.select_all", | |
{"type": 'A', "value": 'PRESS', "alt": True}, | |
{"properties": | |
[("action", 'DESELECT'), | |
], | |
}, | |
), | |
("object.select_all", | |
{"type": 'I', "value": 'PRESS', "ctrl": True}, | |
{"properties": | |
[("action", 'INVERT'), | |
], | |
}, | |
), | |
("object.select_all", | |
{"type": 'A', "value": 'DOUBLE_CLICK'}, | |
{"properties": | |
[("action", 'DESELECT'), | |
], | |
}, | |
), | |
("object.select_more", {"type": 'NUMPAD_PLUS', "value": 'PRESS', "ctrl": True}, None), | |
("object.select_less", {"type": 'NUMPAD_MINUS', "value": 'PRESS', "ctrl": True}, None), | |
("object.select_linked", {"type": 'L', "value": 'PRESS', "shift": True}, None), | |
("object.select_grouped", {"type": 'G', "value": 'PRESS', "shift": True}, None), | |
("object.select_hierarchy", | |
{"type": 'LEFT_BRACKET', "value": 'PRESS'}, | |
{"properties": | |
[("direction", 'PARENT'), | |
("extend", False), | |
], | |
}, | |
), | |
("object.select_hierarchy", | |
{"type": 'LEFT_BRACKET', "value": 'PRESS', "shift": True}, | |
{"properties": | |
[("direction", 'PARENT'), | |
("extend", True), | |
], | |
}, | |
), | |
("object.select_hierarchy", | |
{"type": 'RIGHT_BRACKET', "value": 'PRESS'}, | |
{"properties": | |
[("direction", 'CHILD'), | |
("extend", False), | |
], | |
}, | |
), | |
("object.select_hierarchy", | |
{"type": 'RIGHT_BRACKET', "value": 'PRESS', "shift": True}, | |
{"properties": | |
[("direction", 'CHILD'), | |
("extend", True), | |
], | |
}, | |
), | |
("object.parent_set", {"type": 'P', "value": 'PRESS', "ctrl": True}, None), | |
("object.parent_clear", {"type": 'P', "value": 'PRESS', "alt": True}, None), | |
("object.location_clear", | |
{"type": 'G', "value": 'PRESS', "alt": True}, | |
{"properties": | |
[("clear_delta", False), | |
], | |
}, | |
), | |
("object.rotation_clear", | |
{"type": 'R', "value": 'PRESS', "alt": True}, | |
{"properties": | |
[("clear_delta", False), | |
], | |
}, | |
), | |
("object.scale_clear", | |
{"type": 'S', "value": 'PRESS', "alt": True}, | |
{"properties": | |
[("clear_delta", False), | |
], | |
}, | |
), | |
("object.delete", | |
{"type": 'X', "value": 'PRESS'}, | |
{"properties": | |
[("use_global", False), | |
], | |
}, | |
), | |
("object.delete", | |
{"type": 'X', "value": 'PRESS', "shift": True}, | |
{"properties": | |
[("use_global", True), | |
], | |
}, | |
), | |
("object.delete", | |
{"type": 'DEL', "value": 'PRESS'}, | |
{"properties": | |
[("use_global", False), | |
("confirm", False), | |
], | |
}, | |
), | |
("object.delete", | |
{"type": 'DEL', "value": 'PRESS', "shift": True}, | |
{"properties": | |
[("use_global", True), | |
("confirm", False), | |
], | |
}, | |
), | |
("wm.call_menu", | |
{"type": 'A', "value": 'PRESS', "shift": True}, | |
{"properties": | |
[("name", 'VIEW3D_MT_add'), | |
], | |
}, | |
), | |
("wm.call_menu", | |
{"type": 'A', "value": 'PRESS', "ctrl": True}, | |
{"properties": | |
[("name", 'VIEW3D_MT_object_apply'), | |
], | |
}, | |
), | |
("wm.call_menu", | |
{"type": 'L', "value": 'PRESS', "ctrl": True}, | |
{"properties": | |
[("name", 'VIEW3D_MT_make_links'), | |
], | |
}, | |
), | |
("object.duplicate_move", {"type": 'D', "value": 'PRESS', "shift": True}, None), | |
("object.duplicate_move_linked", {"type": 'D', "value": 'PRESS', "alt": True}, None), | |
("object.join", {"type": 'J', "value": 'PRESS', "ctrl": True}, None), | |
("anim.keyframe_insert_menu", {"type": 'I', "value": 'PRESS'}, None), | |
("anim.keyframe_delete_v3d", {"type": 'I', "value": 'PRESS', "alt": True}, None), | |
("anim.keying_set_active_set", {"type": 'I', "value": 'PRESS', "shift": True, "ctrl": True, "alt": True}, None), | |
("collection.create", {"type": 'G', "value": 'PRESS', "ctrl": True}, None), | |
("collection.objects_remove", {"type": 'G', "value": 'PRESS', "ctrl": True, "alt": True}, None), | |
("collection.objects_remove_all", {"type": 'G', "value": 'PRESS', "shift": True, "ctrl": True, "alt": True}, None), | |
("collection.objects_add_active", {"type": 'G', "value": 'PRESS', "shift": True, "ctrl": True}, None), | |
("collection.objects_remove_active", {"type": 'G', "value": 'PRESS', "shift": True, "alt": True}, None), | |
("wm.call_menu", | |
{"type": 'RIGHTMOUSE', "value": 'PRESS', "shift": True, "ctrl": True, "alt": True, "oskey": True}, | |
{"properties": | |
[("name", 'VIEW3D_MT_object_context_menu'), | |
], | |
}, | |
), | |
("object.subdivision_set", | |
{"type": 'ZERO', "value": 'PRESS', "ctrl": True}, | |
{"properties": | |
[("level", 0), | |
("relative", False), | |
], | |
}, | |
), | |
("object.subdivision_set", | |
{"type": 'ONE', "value": 'PRESS', "ctrl": True}, | |
{"properties": | |
[("level", 1), | |
("relative", False), | |
], | |
}, | |
), | |
("object.subdivision_set", | |
{"type": 'TWO', "value": 'PRESS', "ctrl": True}, | |
{"properties": | |
[("level", 2), | |
("relative", False), | |
], | |
}, | |
), | |
("object.subdivision_set", | |
{"type": 'THREE', "value": 'PRESS', "ctrl": True}, | |
{"properties": | |
[("level", 3), | |
("relative", False), | |
], | |
}, | |
), | |
("object.subdivision_set", | |
{"type": 'FOUR', "value": 'PRESS', "ctrl": True}, | |
{"properties": | |
[("level", 4), | |
("relative", False), | |
], | |
}, | |
), | |
("object.subdivision_set", | |
{"type": 'FIVE', "value": 'PRESS', "ctrl": True}, | |
{"properties": | |
[("level", 5), | |
("relative", False), | |
], | |
}, | |
), | |
("object.move_to_collection", {"type": 'M', "value": 'PRESS'}, None), | |
("object.link_to_collection", {"type": 'M', "value": 'PRESS', "shift": True}, None), | |
("object.hide_view_clear", {"type": 'H', "value": 'PRESS', "alt": True}, None), | |
("object.hide_view_set", | |
{"type": 'H', "value": 'PRESS'}, | |
{"properties": | |
[("unselected", False), | |
], | |
}, | |
), | |
("object.hide_view_set", | |
{"type": 'H', "value": 'PRESS', "shift": True}, | |
{"properties": | |
[("unselected", True), | |
], | |
}, | |
), | |
("object.hide_collection", {"type": 'H', "value": 'PRESS', "ctrl": True}, None), | |
("object.hide_collection", | |
{"type": 'ONE', "value": 'PRESS', "any": True}, | |
{"properties": | |
[("collection_index", 1), | |
], | |
}, | |
), | |
("object.hide_collection", | |
{"type": 'TWO', "value": 'PRESS', "any": True}, | |
{"properties": | |
[("collection_index", 2), | |
], | |
}, | |
), | |
("object.hide_collection", | |
{"type": 'THREE', "value": 'PRESS', "any": True}, | |
{"properties": | |
[("collection_index", 3), | |
], | |
}, | |
), | |
("object.hide_collection", | |
{"type": 'FOUR', "value": 'PRESS', "any": True}, | |
{"properties": | |
[("collection_index", 4), | |
], | |
}, | |
), | |
("object.hide_collection", | |
{"type": 'FIVE', "value": 'PRESS', "any": True}, | |
{"properties": | |
[("collection_index", 5), | |
], | |
}, | |
), | |
("object.hide_collection", | |
{"type": 'SIX', "value": 'PRESS', "any": True}, | |
{"properties": | |
[("collection_index", 6), | |
], | |
}, | |
), | |
("object.hide_collection", | |
{"type": 'SEVEN', "value": 'PRESS', "any": True}, | |
{"properties": | |
[("collection_index", 7), | |
], | |
}, | |
), | |
("object.hide_collection", | |
{"type": 'EIGHT', "value": 'PRESS', "any": True}, | |
{"properties": | |
[("collection_index", 8), | |
], | |
}, | |
), | |
("object.hide_collection", | |
{"type": 'NINE', "value": 'PRESS', "any": True}, | |
{"properties": | |
[("collection_index", 9), | |
], | |
}, | |
), | |
("object.hide_collection", | |
{"type": 'ZERO', "value": 'PRESS', "any": True}, | |
{"properties": | |
[("collection_index", 10), | |
], | |
}, | |
), | |
], | |
}, | |
), | |
("Mesh", | |
{"space_type": 'EMPTY', "region_type": 'WINDOW'}, | |
{"items": | |
[("mesh.loopcut_slide", | |
{"type": 'R', "value": 'PRESS', "ctrl": True}, | |
{"properties": | |
[("TRANSFORM_OT_edge_slide", | |
[("release_confirm", False), | |
], | |
), | |
], | |
}, | |
), | |
("mesh.offset_edge_loops_slide", | |
{"type": 'R', "value": 'PRESS', "shift": True, "ctrl": True}, | |
{"properties": | |
[("TRANSFORM_OT_edge_slide", | |
[("release_confirm", False), | |
], | |
), | |
], | |
}, | |
), | |
("mesh.inset", {"type": 'I', "value": 'PRESS'}, None), | |
("mesh.bevel", | |
{"type": 'B', "value": 'PRESS', "ctrl": True}, | |
{"properties": | |
[("vertex_only", False), | |
], | |
}, | |
), | |
("mesh.bevel", | |
{"type": 'B', "value": 'PRESS', "shift": True, "ctrl": True}, | |
{"properties": | |
[("vertex_only", True), | |
], | |
}, | |
), | |
("mesh.select_mode", | |
{"type": 'ONE', "value": 'PRESS'}, | |
{"properties": | |
[("type", 'VERT'), | |
], | |
}, | |
), | |
("mesh.select_mode", | |
{"type": 'TWO', "value": 'PRESS'}, | |
{"properties": | |
[("type", 'EDGE'), | |
], | |
}, | |
), | |
("mesh.select_mode", | |
{"type": 'THREE', "value": 'PRESS'}, | |
{"properties": | |
[("type", 'FACE'), | |
], | |
}, | |
), | |
("mesh.select_mode", | |
{"type": 'ONE', "value": 'PRESS', "shift": True}, | |
{"properties": | |
[("use_extend", True), | |
("type", 'VERT'), | |
], | |
}, | |
), | |
("mesh.select_mode", | |
{"type": 'TWO', "value": 'PRESS', "shift": True}, | |
{"properties": | |
[("use_extend", True), | |
("type", 'EDGE'), | |
], | |
}, | |
), | |
("mesh.select_mode", | |
{"type": 'THREE', "value": 'PRESS', "shift": True}, | |
{"properties": | |
[("use_extend", True), | |
("type", 'FACE'), | |
], | |
}, | |
), | |
("mesh.select_mode", | |
{"type": 'ONE', "value": 'PRESS', "ctrl": True}, | |
{"properties": | |
[("use_expand", True), | |
("type", 'VERT'), | |
], | |
}, | |
), | |
("mesh.select_mode", | |
{"type": 'TWO', "value": 'PRESS', "ctrl": True}, | |
{"properties": | |
[("use_expand", True), | |
("type", 'EDGE'), | |
], | |
}, | |
), | |
("mesh.select_mode", | |
{"type": 'THREE', "value": 'PRESS', "ctrl": True}, | |
{"properties": | |
[("use_expand", True), | |
("type", 'FACE'), | |
], | |
}, | |
), | |
("mesh.select_mode", | |
{"type": 'ONE', "value": 'PRESS', "shift": True, "ctrl": True}, | |
{"properties": | |
[("use_extend", True), | |
("use_expand", True), | |
("type", 'VERT'), | |
], | |
}, | |
), | |
("mesh.select_mode", | |
{"type": 'TWO', "value": 'PRESS', "shift": True, "ctrl": True}, | |
{"properties": | |
[("use_extend", True), | |
("use_expand", True), | |
("type", 'EDGE'), | |
], | |
}, | |
), | |
("mesh.select_mode", | |
{"type": 'THREE', "value": 'PRESS', "shift": True, "ctrl": True}, | |
{"properties": | |
[("use_extend", True), | |
("use_expand", True), | |
("type", 'FACE'), | |
], | |
}, | |
), | |
("mesh.loop_select", | |
{"type": 'LEFTMOUSE', "value": 'CLICK', "alt": True}, | |
{"properties": | |
[("extend", False), | |
("deselect", False), | |
("toggle", False), | |
], | |
}, | |
), | |
("mesh.loop_select", | |
{"type": 'LEFTMOUSE', "value": 'CLICK', "shift": True, "alt": True}, | |
{"properties": | |
[("extend", False), | |
("deselect", False), | |
("toggle", True), | |
], | |
}, | |
), | |
("mesh.edgering_select", | |
{"type": 'LEFTMOUSE', "value": 'CLICK', "ctrl": True, "alt": True}, | |
{"properties": | |
[("extend", False), | |
("deselect", False), | |
("toggle", False), | |
], | |
}, | |
), | |
("mesh.edgering_select", | |
{"type": 'LEFTMOUSE', "value": 'CLICK', "shift": True, "ctrl": True, "alt": True}, | |
{"properties": | |
[("extend", False), | |
("deselect", False), | |
("toggle", True), | |
], | |
}, | |
), | |
("mesh.shortest_path_pick", | |
{"type": 'LEFTMOUSE', "value": 'CLICK', "ctrl": True}, | |
{"properties": | |
[("use_fill", False), | |
], | |
}, | |
), | |
("mesh.shortest_path_pick", | |
{"type": 'LEFTMOUSE', "value": 'CLICK', "shift": True, "ctrl": True}, | |
{"properties": | |
[("use_fill", True), | |
], | |
}, | |
), | |
("mesh.select_all", | |
{"type": 'A', "value": 'PRESS'}, | |
{"properties": | |
[("action", 'SELECT'), | |
], | |
}, | |
), | |
("mesh.select_all", | |
{"type": 'A', "value": 'PRESS', "alt": True}, | |
{"properties": | |
[("action", 'DESELECT'), | |
], | |
}, | |
), | |
("mesh.select_all", | |
{"type": 'I', "value": 'PRESS', "ctrl": True}, | |
{"properties": | |
[("action", 'INVERT'), | |
], | |
}, | |
), | |
("mesh.select_all", | |
{"type": 'A', "value": 'DOUBLE_CLICK'}, | |
{"properties": | |
[("action", 'DESELECT'), | |
], | |
}, | |
), | |
("mesh.select_more", {"type": 'NUMPAD_PLUS', "value": 'PRESS', "ctrl": True}, None), | |
("mesh.select_less", {"type": 'NUMPAD_MINUS', "value": 'PRESS', "ctrl": True}, None), | |
("mesh.select_next_item", {"type": 'NUMPAD_PLUS', "value": 'PRESS', "shift": True, "ctrl": True}, None), | |
("mesh.select_prev_item", {"type": 'NUMPAD_MINUS', "value": 'PRESS', "shift": True, "ctrl": True}, None), | |
("mesh.select_linked", {"type": 'L', "value": 'PRESS', "ctrl": True}, None), | |
("mesh.select_linked_pick", | |
{"type": 'L', "value": 'PRESS'}, | |
{"properties": | |
[("deselect", False), | |
], | |
}, | |
), | |
("mesh.select_linked_pick", | |
{"type": 'L', "value": 'PRESS', "shift": True}, | |
{"properties": | |
[("deselect", True), | |
], | |
}, | |
), | |
("mesh.select_mirror", {"type": 'M', "value": 'PRESS', "shift": True, "ctrl": True}, None), | |
("wm.call_menu", | |
{"type": 'G', "value": 'PRESS', "shift": True}, | |
{"properties": | |
[("name", 'VIEW3D_MT_edit_mesh_select_similar'), | |
], | |
}, | |
), | |
("mesh.hide", | |
{"type": 'H', "value": 'PRESS'}, | |
{"properties": | |
[("unselected", False), | |
], | |
}, | |
), | |
("mesh.hide", | |
{"type": 'H', "value": 'PRESS', "shift": True}, | |
{"properties": | |
[("unselected", True), | |
], | |
}, | |
), | |
("mesh.reveal", {"type": 'H', "value": 'PRESS', "alt": True}, None), | |
("mesh.normals_make_consistent", | |
{"type": 'N', "value": 'PRESS', "shift": True}, | |
{"properties": | |
[("inside", False), | |
], | |
}, | |
), | |
("mesh.normals_make_consistent", | |
{"type": 'N', "value": 'PRESS', "shift": True, "ctrl": True}, | |
{"properties": | |
[("inside", True), | |
], | |
}, | |
), | |
("mesh.flip_normals", {"type": 'N', "value": 'PRESS', "alt": True}, None), | |
("view3d.edit_mesh_extrude_move_normal", {"type": 'E', "value": 'PRESS'}, None), | |
("wm.call_menu", | |
{"type": 'E', "value": 'PRESS', "alt": True}, | |
{"properties": | |
[("name", 'VIEW3D_MT_edit_mesh_extrude'), | |
], | |
}, | |
), | |
("transform.edge_crease", {"type": 'E', "value": 'PRESS', "shift": True}, None), | |
("mesh.fill", {"type": 'F', "value": 'PRESS', "alt": True}, None), | |
("mesh.quads_convert_to_tris", | |
{"type": 'T', "value": 'PRESS', "ctrl": True}, | |
{"properties": | |
[("quad_method", 'BEAUTY'), | |
("ngon_method", 'BEAUTY'), | |
], | |
}, | |
), | |
("mesh.quads_convert_to_tris", | |
{"type": 'T', "value": 'PRESS', "shift": True, "ctrl": True}, | |
{"properties": | |
[("quad_method", 'FIXED'), | |
("ngon_method", 'CLIP'), | |
], | |
}, | |
), | |
("mesh.tris_convert_to_quads", {"type": 'J', "value": 'PRESS', "alt": True}, None), | |
("mesh.rip_move", | |
{"type": 'V', "value": 'PRESS'}, | |
{"properties": | |
[("MESH_OT_rip", | |
[("use_fill", False), | |
], | |
), | |
], | |
}, | |
), | |
("mesh.rip_move", | |
{"type": 'V', "value": 'PRESS', "alt": True}, | |
{"properties": | |
[("MESH_OT_rip", | |
[("use_fill", True), | |
], | |
), | |
], | |
}, | |
), | |
("mesh.rip_edge_move", {"type": 'D', "value": 'PRESS', "alt": True}, None), | |
("mesh.merge", {"type": 'M', "value": 'PRESS', "alt": True}, None), | |
("transform.shrink_fatten", {"type": 'S', "value": 'PRESS', "alt": True}, None), | |
("mesh.edge_face_add", {"type": 'F', "value": 'PRESS'}, None), | |
("mesh.duplicate_move", {"type": 'D', "value": 'PRESS', "shift": True}, None), | |
("wm.call_menu", | |
{"type": 'A', "value": 'PRESS', "shift": True}, | |
{"properties": | |
[("name", 'VIEW3D_MT_mesh_add'), | |
], | |
}, | |
), | |
("mesh.separate", {"type": 'P', "value": 'PRESS'}, None), | |
("mesh.split", {"type": 'Y', "value": 'PRESS'}, None), | |
("mesh.vert_connect_path", {"type": 'J', "value": 'PRESS'}, None), | |
("mesh.point_normals", {"type": 'L', "value": 'PRESS', "alt": True}, None), | |
("transform.vert_slide", {"type": 'V', "value": 'PRESS', "shift": True}, None), | |
("mesh.dupli_extrude_cursor", | |
{"type": 'RIGHTMOUSE', "value": 'CLICK', "ctrl": True}, | |
{"properties": | |
[("rotate_source", True), | |
], | |
}, | |
), | |
("mesh.dupli_extrude_cursor", | |
{"type": 'RIGHTMOUSE', "value": 'CLICK', "shift": True, "ctrl": True}, | |
{"properties": | |
[("rotate_source", False), | |
], | |
}, | |
), | |
("wm.call_menu", | |
{"type": 'X', "value": 'PRESS'}, | |
{"properties": | |
[("name", 'VIEW3D_MT_edit_mesh_delete'), | |
], | |
}, | |
), | |
("wm.call_menu", | |
{"type": 'DEL', "value": 'PRESS'}, | |
{"properties": | |
[("name", 'VIEW3D_MT_edit_mesh_delete'), | |
], | |
}, | |
), | |
("mesh.dissolve_mode", {"type": 'X', "value": 'PRESS', "ctrl": True}, None), | |
("mesh.dissolve_mode", {"type": 'DEL', "value": 'PRESS', "ctrl": True}, None), | |
("mesh.knife_tool", | |
{"type": 'K', "value": 'PRESS'}, | |
{"properties": | |
[("use_occlude_geometry", True), | |
("only_selected", False), | |
], | |
}, | |
), | |
("object.vertex_parent_set", {"type": 'P', "value": 'PRESS', "ctrl": True}, None), | |
("wm.call_menu", | |
{"type": 'RIGHTMOUSE', "value": 'PRESS', "shift": True, "ctrl": True, "alt": True, "oskey": True}, | |
{"properties": | |
[("name", 'VIEW3D_MT_edit_mesh_context_menu'), | |
], | |
}, | |
), | |
("wm.call_menu", | |
{"type": 'F', "value": 'PRESS', "ctrl": True}, | |
{"properties": | |
[("name", 'VIEW3D_MT_edit_mesh_faces'), | |
], | |
}, | |
), | |
("wm.call_menu", | |
{"type": 'E', "value": 'PRESS', "ctrl": True}, | |
{"properties": | |
[("name", 'VIEW3D_MT_edit_mesh_edges'), | |
], | |
}, | |
), | |
("wm.call_menu", | |
{"type": 'V', "value": 'PRESS', "ctrl": True}, | |
{"properties": | |
[("name", 'VIEW3D_MT_edit_mesh_vertices'), | |
], | |
}, | |
), | |
("wm.call_menu", | |
{"type": 'H', "value": 'PRESS', "ctrl": True}, | |
{"properties": | |
[("name", 'VIEW3D_MT_hook'), | |
], | |
}, | |
), | |
("wm.call_menu", | |
{"type": 'U', "value": 'PRESS'}, | |
{"properties": | |
[("name", 'VIEW3D_MT_uv_map'), | |
], | |
}, | |
), | |
("wm.call_menu", | |
{"type": 'G', "value": 'PRESS', "ctrl": True}, | |
{"properties": | |
[("name", 'VIEW3D_MT_vertex_group'), | |
], | |
}, | |
), | |
("object.vertex_group_remove_from", {"type": 'G', "value": 'PRESS', "ctrl": True, "alt": True}, None), | |
("wm.call_menu_pie", | |
{"type": 'O', "value": 'PRESS', "shift": True}, | |
{"properties": | |
[("name", 'VIEW3D_MT_proportional_editing_falloff_pie'), | |
], | |
}, | |
), | |
("wm.context_toggle_enum", | |
{"type": 'O', "value": 'PRESS'}, | |
{"properties": | |
[("data_path", 'tool_settings.proportional_edit'), | |
("value_1", 'DISABLED'), | |
("value_2", 'ENABLED'), | |
], | |
}, | |
), | |
("wm.context_toggle_enum", | |
{"type": 'O', "value": 'PRESS', "alt": True}, | |
{"properties": | |
[("data_path", 'tool_settings.proportional_edit'), | |
("value_1", 'DISABLED'), | |
("value_2", 'CONNECTED'), | |
], | |
}, | |
), | |
], | |
}, | |
), | |
("3D View", | |
{"space_type": 'VIEW_3D', "region_type": 'WINDOW'}, | |
{"items": | |
[("view3d.cursor3d", {"type": 'RIGHTMOUSE', "value": 'PRESS', "shift": True, "ctrl": True, "alt": True}, None), | |
("transform.translate", | |
{"type": 'EVT_TWEAK_R', "value": 'ANY', "shift": True}, | |
{"properties": | |
[("cursor_transform", True), | |
("release_confirm", True), | |
], | |
}, | |
), | |
("view3d.localview", {"type": 'NUMPAD_SLASH', "value": 'PRESS'}, None), | |
("view3d.localview", {"type": 'SLASH', "value": 'PRESS'}, None), | |
("view3d.localview_remove_from", {"type": 'M', "value": 'PRESS'}, None), | |
("view3d.rotate", {"type": 'MIDDLEMOUSE', "value": 'PRESS'}, None), | |
("view3d.move", {"type": 'MIDDLEMOUSE', "value": 'PRESS', "shift": True}, None), | |
("view3d.zoom", {"type": 'MIDDLEMOUSE', "value": 'PRESS', "ctrl": True}, None), | |
("view3d.dolly", {"type": 'MIDDLEMOUSE', "value": 'PRESS', "shift": True, "ctrl": True}, None), | |
("view3d.view_selected", | |
{"type": 'NUMPAD_PERIOD', "value": 'PRESS', "ctrl": True}, | |
{"properties": | |
[("use_all_regions", True), | |
], | |
}, | |
), | |
("view3d.view_selected", | |
{"type": 'NUMPAD_PERIOD', "value": 'PRESS'}, | |
{"properties": | |
[("use_all_regions", False), | |
], | |
}, | |
), | |
("view3d.smoothview", {"type": 'TIMER1', "value": 'ANY', "any": True}, None), | |
("view3d.rotate", {"type": 'TRACKPADPAN', "value": 'ANY'}, None), | |
("view3d.rotate", {"type": 'MOUSEROTATE', "value": 'ANY'}, None), | |
("view3d.move", {"type": 'TRACKPADPAN', "value": 'ANY', "shift": True}, None), | |
("view3d.zoom", {"type": 'TRACKPADZOOM', "value": 'ANY'}, None), | |
("view3d.zoom", {"type": 'TRACKPADPAN', "value": 'ANY', "ctrl": True}, None), | |
("view3d.zoom", | |
{"type": 'NUMPAD_PLUS', "value": 'PRESS'}, | |
{"properties": | |
[("delta", 1), | |
], | |
}, | |
), | |
("view3d.zoom", | |
{"type": 'NUMPAD_MINUS', "value": 'PRESS'}, | |
{"properties": | |
[("delta", -1), | |
], | |
}, | |
), | |
("view3d.zoom", | |
{"type": 'EQUAL', "value": 'PRESS', "ctrl": True}, | |
{"properties": | |
[("delta", 1), | |
], | |
}, | |
), | |
("view3d.zoom", | |
{"type": 'MINUS', "value": 'PRESS', "ctrl": True}, | |
{"properties": | |
[("delta", -1), | |
], | |
}, | |
), | |
("view3d.zoom", | |
{"type": 'WHEELINMOUSE', "value": 'PRESS'}, | |
{"properties": | |
[("delta", 1), | |
], | |
}, | |
), | |
("view3d.zoom", | |
{"type": 'WHEELOUTMOUSE', "value": 'PRESS'}, | |
{"properties": | |
[("delta", -1), | |
], | |
}, | |
), | |
("view3d.dolly", | |
{"type": 'NUMPAD_PLUS', "value": 'PRESS', "shift": True}, | |
{"properties": | |
[("delta", 1), | |
], | |
}, | |
), | |
("view3d.dolly", | |
{"type": 'NUMPAD_MINUS', "value": 'PRESS', "shift": True}, | |
{"properties": | |
[("delta", -1), | |
], | |
}, | |
), | |
("view3d.dolly", | |
{"type": 'EQUAL', "value": 'PRESS', "shift": True, "ctrl": True}, | |
{"properties": | |
[("delta", 1), | |
], | |
}, | |
), | |
("view3d.dolly", | |
{"type": 'MINUS', "value": 'PRESS', "shift": True, "ctrl": True}, | |
{"properties": | |
[("delta", -1), | |
], | |
}, | |
), | |
("view3d.view_center_camera", {"type": 'HOME', "value": 'PRESS'}, None), | |
("view3d.view_center_lock", {"type": 'HOME', "value": 'PRESS'}, None), | |
("view3d.view_all", | |
{"type": 'HOME', "value": 'PRESS'}, | |
{"properties": | |
[("center", False), | |
], | |
}, | |
), | |
("view3d.view_all", | |
{"type": 'HOME', "value": 'PRESS', "ctrl": True}, | |
{"properties": | |
[("use_all_regions", True), | |
("center", False), | |
], | |
}, | |
), | |
("view3d.view_all", | |
{"type": 'C', "value": 'PRESS', "shift": True}, | |
{"properties": | |
[("center", True), | |
], | |
}, | |
), | |
("wm.call_menu_pie", | |
{"type": 'ACCENT_GRAVE', "value": 'PRESS'}, | |
{"properties": | |
[("name", 'VIEW3D_MT_view_pie'), | |
], | |
}, | |
), | |
("view3d.navigate", {"type": 'ACCENT_GRAVE', "value": 'PRESS', "shift": True}, None), | |
("view3d.view_camera", {"type": 'NUMPAD_0', "value": 'PRESS'}, None), | |
("view3d.view_axis", | |
{"type": 'NUMPAD_1', "value": 'PRESS'}, | |
{"properties": | |
[("type", 'FRONT'), | |
], | |
}, | |
), | |
("view3d.view_orbit", | |
{"type": 'NUMPAD_2', "value": 'PRESS'}, | |
{"properties": | |
[("type", 'ORBITDOWN'), | |
], | |
}, | |
), | |
("view3d.view_axis", | |
{"type": 'NUMPAD_3', "value": 'PRESS'}, | |
{"properties": | |
[("type", 'RIGHT'), | |
], | |
}, | |
), | |
("view3d.view_orbit", | |
{"type": 'NUMPAD_4', "value": 'PRESS'}, | |
{"properties": | |
[("type", 'ORBITLEFT'), | |
], | |
}, | |
), | |
("view3d.view_persportho", {"type": 'NUMPAD_5', "value": 'PRESS'}, None), | |
("view3d.view_orbit", | |
{"type": 'NUMPAD_6', "value": 'PRESS'}, | |
{"properties": | |
[("type", 'ORBITRIGHT'), | |
], | |
}, | |
), | |
("view3d.view_axis", | |
{"type": 'NUMPAD_7', "value": 'PRESS'}, | |
{"properties": | |
[("type", 'TOP'), | |
], | |
}, | |
), | |
("view3d.view_orbit", | |
{"type": 'NUMPAD_8', "value": 'PRESS'}, | |
{"properties": | |
[("type", 'ORBITUP'), | |
], | |
}, | |
), | |
("view3d.view_axis", | |
{"type": 'NUMPAD_1', "value": 'PRESS', "ctrl": True}, | |
{"properties": | |
[("type", 'BACK'), | |
], | |
}, | |
), | |
("view3d.view_axis", | |
{"type": 'NUMPAD_3', "value": 'PRESS', "ctrl": True}, | |
{"properties": | |
[("type", 'LEFT'), | |
], | |
}, | |
), | |
("view3d.view_axis", | |
{"type": 'NUMPAD_7', "value": 'PRESS', "ctrl": True}, | |
{"properties": | |
[("type", 'BOTTOM'), | |
], | |
}, | |
), | |
("view3d.view_pan", | |
{"type": 'NUMPAD_2', "value": 'PRESS', "ctrl": True}, | |
{"properties": | |
[("type", 'PANDOWN'), | |
], | |
}, | |
), | |
("view3d.view_pan", | |
{"type": 'NUMPAD_4', "value": 'PRESS', "ctrl": True}, | |
{"properties": | |
[("type", 'PANLEFT'), | |
], | |
}, | |
), | |
("view3d.view_pan", | |
{"type": 'NUMPAD_6', "value": 'PRESS', "ctrl": True}, | |
{"properties": | |
[("type", 'PANRIGHT'), | |
], | |
}, | |
), | |
("view3d.view_pan", | |
{"type": 'NUMPAD_8', "value": 'PRESS', "ctrl": True}, | |
{"properties": | |
[("type", 'PANUP'), | |
], | |
}, | |
), | |
("view3d.view_roll", | |
{"type": 'NUMPAD_4', "value": 'PRESS', "shift": True}, | |
{"properties": | |
[("type", 'LEFT'), | |
], | |
}, | |
), | |
("view3d.view_roll", | |
{"type": 'NUMPAD_6', "value": 'PRESS', "shift": True}, | |
{"properties": | |
[("type", 'RIGHT'), | |
], | |
}, | |
), | |
("view3d.view_orbit", | |
{"type": 'NUMPAD_9', "value": 'PRESS'}, | |
{"properties": | |
[("angle", 3.1415927), | |
("type", 'ORBITRIGHT'), | |
], | |
}, | |
), | |
("view3d.view_axis", | |
{"type": 'NUMPAD_1', "value": 'PRESS', "shift": True}, | |
{"properties": | |
[("type", 'FRONT'), | |
("align_active", True), | |
], | |
}, | |
), | |
("view3d.view_axis", | |
{"type": 'NUMPAD_3', "value": 'PRESS', "shift": True}, | |
{"properties": | |
[("type", 'RIGHT'), | |
("align_active", True), | |
], | |
}, | |
), | |
("view3d.view_axis", | |
{"type": 'NUMPAD_7', "value": 'PRESS', "shift": True}, | |
{"properties": | |
[("type", 'TOP'), | |
("align_active", True), | |
], | |
}, | |
), | |
("view3d.view_axis", | |
{"type": 'NUMPAD_1', "value": 'PRESS', "shift": True, "ctrl": True}, | |
{"properties": | |
[("type", 'BACK'), | |
("align_active", True), | |
], | |
}, | |
), | |
("view3d.view_axis", | |
{"type": 'NUMPAD_3', "value": 'PRESS', "shift": True, "ctrl": True}, | |
{"properties": | |
[("type", 'LEFT'), | |
("align_active", True), | |
], | |
}, | |
), | |
("view3d.view_axis", | |
{"type": 'NUMPAD_7', "value": 'PRESS', "shift": True, "ctrl": True}, | |
{"properties": | |
[("type", 'BOTTOM'), | |
("align_active", True), | |
], | |
}, | |
), | |
("view3d.view_axis", | |
{"type": 'EVT_TWEAK_M', "value": 'NORTH', "alt": True}, | |
{"properties": | |
[("type", 'TOP'), | |
("relative", True), | |
], | |
}, | |
), | |
("view3d.view_axis", | |
{"type": 'EVT_TWEAK_M', "value": 'SOUTH', "alt": True}, | |
{"properties": | |
[("type", 'BOTTOM'), | |
("relative", True), | |
], | |
}, | |
), | |
("view3d.view_axis", | |
{"type": 'EVT_TWEAK_M', "value": 'EAST', "alt": True}, | |
{"properties": | |
[("type", 'RIGHT'), | |
("relative", True), | |
], | |
}, | |
), | |
("view3d.view_axis", | |
{"type": 'EVT_TWEAK_M', "value": 'WEST', "alt": True}, | |
{"properties": | |
[("type", 'LEFT'), | |
("relative", True), | |
], | |
}, | |
), | |
("view3d.view_center_pick", {"type": 'MIDDLEMOUSE', "value": 'CLICK', "alt": True}, None), | |
("view3d.ndof_orbit_zoom", {"type": 'NDOF_MOTION', "value": 'ANY'}, None), | |
("view3d.ndof_orbit", {"type": 'NDOF_MOTION', "value": 'ANY', "ctrl": True}, None), | |
("view3d.ndof_pan", {"type": 'NDOF_MOTION', "value": 'ANY', "shift": True}, None), | |
("view3d.ndof_all", {"type": 'NDOF_MOTION', "value": 'ANY', "shift": True, "ctrl": True}, None), | |
("view3d.view_selected", | |
{"type": 'NDOF_BUTTON_FIT', "value": 'PRESS'}, | |
{"properties": | |
[("use_all_regions", False), | |
], | |
}, | |
), | |
("view3d.view_roll", | |
{"type": 'NDOF_BUTTON_ROLL_CCW', "value": 'PRESS'}, | |
{"properties": | |
[("type", 'LEFT'), | |
], | |
}, | |
), | |
("view3d.view_roll", | |
{"type": 'NDOF_BUTTON_ROLL_CCW', "value": 'PRESS'}, | |
{"properties": | |
[("type", 'RIGHT'), | |
], | |
}, | |
), | |
("view3d.view_axis", | |
{"type": 'NDOF_BUTTON_FRONT', "value": 'PRESS'}, | |
{"properties": | |
[("type", 'FRONT'), | |
], | |
}, | |
), | |
("view3d.view_axis", | |
{"type": 'NDOF_BUTTON_BACK', "value": 'PRESS'}, | |
{"properties": | |
[("type", 'BACK'), | |
], | |
}, | |
), | |
("view3d.view_axis", | |
{"type": 'NDOF_BUTTON_LEFT', "value": 'PRESS'}, | |
{"properties": | |
[("type", 'LEFT'), | |
], | |
}, | |
), | |
("view3d.view_axis", | |
{"type": 'NDOF_BUTTON_RIGHT', "value": 'PRESS'}, | |
{"properties": | |
[("type", 'RIGHT'), | |
], | |
}, | |
), | |
("view3d.view_axis", | |
{"type": 'NDOF_BUTTON_TOP', "value": 'PRESS'}, | |
{"properties": | |
[("type", 'TOP'), | |
], | |
}, | |
), | |
("view3d.view_axis", | |
{"type": 'NDOF_BUTTON_BOTTOM', "value": 'PRESS'}, | |
{"properties": | |
[("type", 'BOTTOM'), | |
], | |
}, | |
), | |
("view3d.view_axis", | |
{"type": 'NDOF_BUTTON_FRONT', "value": 'PRESS', "shift": True}, | |
{"properties": | |
[("type", 'FRONT'), | |
("align_active", True), | |
], | |
}, | |
), | |
("view3d.view_axis", | |
{"type": 'NDOF_BUTTON_RIGHT', "value": 'PRESS', "shift": True}, | |
{"properties": | |
[("type", 'RIGHT'), | |
("align_active", True), | |
], | |
}, | |
), | |
("view3d.view_axis", | |
{"type": 'NDOF_BUTTON_TOP', "value": 'PRESS', "shift": True}, | |
{"properties": | |
[("type", 'TOP'), | |
("align_active", True), | |
], | |
}, | |
), | |
("view3d.select", | |
{"type": 'LEFTMOUSE', "value": 'CLICK'}, | |
{"properties": | |
[("deselect_all", True), | |
], | |
}, | |
), | |
("view3d.select", | |
{"type": 'LEFTMOUSE', "value": 'CLICK', "shift": True}, | |
{"properties": | |
[("toggle", True), | |
], | |
}, | |
), | |
("view3d.select", | |
{"type": 'LEFTMOUSE', "value": 'CLICK', "ctrl": True}, | |
{"properties": | |
[("center", True), | |
("object", True), | |
], | |
}, | |
), | |
("view3d.select", | |
{"type": 'LEFTMOUSE', "value": 'CLICK', "alt": True}, | |
{"properties": | |
[("enumerate", True), | |
], | |
}, | |
), | |
("view3d.select", | |
{"type": 'LEFTMOUSE', "value": 'CLICK', "shift": True, "ctrl": True}, | |
{"properties": | |
[("extend", True), | |
("toggle", True), | |
("center", True), | |
], | |
}, | |
), | |
("view3d.select", | |
{"type": 'LEFTMOUSE', "value": 'CLICK', "ctrl": True, "alt": True}, | |
{"properties": | |
[("center", True), | |
("enumerate", True), | |
], | |
}, | |
), | |
("view3d.select", | |
{"type": 'LEFTMOUSE', "value": 'CLICK', "shift": True, "alt": True}, | |
{"properties": | |
[("toggle", True), | |
("enumerate", True), | |
], | |
}, | |
), | |
("view3d.select", | |
{"type": 'LEFTMOUSE', "value": 'CLICK', "shift": True, "ctrl": True, "alt": True}, | |
{"properties": | |
[("toggle", True), | |
("center", True), | |
("enumerate", True), | |
], | |
}, | |
), | |
("view3d.select_box", {"type": 'B', "value": 'PRESS'}, None), | |
("view3d.select_lasso", | |
{"type": 'EVT_TWEAK_R', "value": 'ANY', "ctrl": True}, | |
{"properties": | |
[("mode", 'ADD'), | |
], | |
}, | |
), | |
("view3d.select_lasso", | |
{"type": 'EVT_TWEAK_R', "value": 'ANY', "shift": True, "ctrl": True}, | |
{"properties": | |
[("mode", 'SUB'), | |
], | |
}, | |
), | |
("view3d.select_circle", {"type": 'C', "value": 'PRESS'}, None), | |
("view3d.clip_border", {"type": 'B', "value": 'PRESS', "alt": True}, None), | |
("view3d.zoom_border", {"type": 'B', "value": 'PRESS', "shift": True}, None), | |
("view3d.render_border", {"type": 'B', "value": 'PRESS', "ctrl": True}, None), | |
("view3d.clear_render_border", {"type": 'B', "value": 'PRESS', "ctrl": True, "alt": True}, None), | |
("view3d.camera_to_view", {"type": 'NUMPAD_0', "value": 'PRESS', "ctrl": True, "alt": True}, None), | |
("view3d.object_as_camera", {"type": 'NUMPAD_0', "value": 'PRESS', "ctrl": True}, None), | |
("view3d.copybuffer", {"type": 'C', "value": 'PRESS', "ctrl": True}, None), | |
("view3d.pastebuffer", {"type": 'V', "value": 'PRESS', "ctrl": True}, None), | |
("wm.call_menu_pie", | |
{"type": 'S', "value": 'PRESS', "shift": True}, | |
{"properties": | |
[("name", 'VIEW3D_MT_snap_pie'), | |
], | |
}, | |
), | |
("transform.translate", {"type": 'G', "value": 'PRESS'}, None), | |
("transform.translate", {"type": 'EVT_TWEAK_L', "value": 'ANY'}, None), | |
("transform.rotate", {"type": 'R', "value": 'PRESS'}, None), | |
("transform.resize", {"type": 'S', "value": 'PRESS'}, None), | |
("transform.bend", {"type": 'W', "value": 'PRESS', "shift": True}, None), | |
("transform.tosphere", {"type": 'S', "value": 'PRESS', "shift": True, "alt": True}, None), | |
("transform.shear", {"type": 'S', "value": 'PRESS', "shift": True, "ctrl": True, "alt": True}, None), | |
("transform.mirror", {"type": 'M', "value": 'PRESS', "ctrl": True}, None), | |
("wm.context_toggle", | |
{"type": 'TAB', "value": 'PRESS', "shift": True}, | |
{"properties": | |
[("data_path", 'tool_settings.use_snap'), | |
], | |
}, | |
), | |
("wm.call_panel", | |
{"type": 'TAB', "value": 'PRESS', "shift": True, "ctrl": True}, | |
{"properties": | |
[("name", 'VIEW3D_PT_snapping'), | |
("keep_open", False), | |
], | |
}, | |
), | |
("object.transform_axis_target", {"type": 'T', "value": 'PRESS', "shift": True}, None), | |
("transform.skin_resize", {"type": 'A', "value": 'PRESS', "ctrl": True}, None), | |
("view3d.copybuffer", {"type": 'C', "value": 'PRESS', "oskey": True}, None), | |
("view3d.pastebuffer", {"type": 'V', "value": 'PRESS', "oskey": True}, None), | |
("wm.context_toggle", | |
{"type": 'ACCENT_GRAVE', "value": 'PRESS', "ctrl": True}, | |
{"properties": | |
[("data_path", 'space_data.show_gizmo_tool'), | |
], | |
}, | |
), | |
("wm.call_menu_pie", | |
{"type": 'PERIOD', "value": 'PRESS'}, | |
{"properties": | |
[("name", 'VIEW3D_MT_pivot_pie'), | |
], | |
}, | |
), | |
("wm.call_menu_pie", | |
{"type": 'COMMA', "value": 'PRESS'}, | |
{"properties": | |
[("name", 'VIEW3D_MT_orientations_pie'), | |
], | |
}, | |
), | |
("wm.context_toggle", | |
{"type": 'ACCENT_GRAVE', "value": 'PRESS', "ctrl": True}, | |
{"properties": | |
[("data_path", 'space_data.show_gizmo_tool'), | |
], | |
}, | |
), | |
("wm.call_menu_pie", | |
{"type": 'Z', "value": 'PRESS'}, | |
{"properties": | |
[("name", 'VIEW3D_MT_shading_ex_pie'), | |
], | |
}, | |
), | |
("view3d.toggle_shading", | |
{"type": 'Z', "value": 'PRESS', "shift": True}, | |
{"properties": | |
[("type", 'WIREFRAME'), | |
], | |
}, | |
), | |
("view3d.toggle_xray", {"type": 'Z', "value": 'PRESS', "alt": True}, None), | |
("wm.context_toggle", | |
{"type": 'Z', "value": 'PRESS', "shift": True, "alt": True}, | |
{"properties": | |
[("data_path", 'space_data.overlay.show_overlays'), | |
], | |
}, | |
), | |
("wm.tool_set_by_id", | |
{"type": 'W', "value": 'PRESS'}, | |
{"properties": | |
[("name", 'builtin.select_box'), | |
("cycle", True), | |
], | |
}, | |
), | |
("wm.call_menu_pie", | |
{"type": 'RIGHTMOUSE', "value": 'PRESS', "shift": True}, | |
{"properties": | |
[("name", 'VIEW3D_contextPie'), | |
], | |
}, | |
), | |
("wm.call_menu_pie", | |
{"type": 'SPACE', "value": 'PRESS'}, | |
{"properties": | |
[("name", 'VIEW3D_PIE_spaceMaster'), | |
], | |
}, | |
), | |
("wm.call_menu_pie", | |
{"type": 'RIGHTMOUSE', "value": 'PRESS'}, | |
{"properties": | |
[("name", 'VIEW3D_PIE_editobject'), | |
], | |
}, | |
), | |
("wm.call_menu_pie", | |
{"type": 'Q', "value": 'PRESS'}, | |
{"properties": | |
[("name", 'VIEW3D_PIE_manipulator'), | |
], | |
}, | |
), | |
], | |
}, | |
), | |
("3D View Tool: Select Box", | |
{"space_type": 'VIEW_3D', "region_type": 'WINDOW'}, | |
{"items": | |
[("view3d.select_box", {"type": 'EVT_TWEAK_L', "value": 'ANY'}, None), | |
("view3d.select_box", | |
{"type": 'EVT_TWEAK_L', "value": 'ANY', "shift": True}, | |
{"properties": | |
[("mode", 'XOR'), | |
], | |
}, | |
), | |
("view3d.select_box", | |
{"type": 'EVT_TWEAK_L', "value": 'ANY', "ctrl": True}, | |
{"properties": | |
[("mode", 'SUB'), | |
], | |
}, | |
), | |
("view3d.select_box", | |
{"type": 'EVT_TWEAK_L', "value": 'ANY', "shift": True, "ctrl": True}, | |
{"properties": | |
[("mode", 'AND'), | |
], | |
}, | |
), | |
], | |
}, | |
), | |
("3D View Tool: Transform", | |
{"space_type": 'VIEW_3D', "region_type": 'WINDOW'}, | |
{"items": | |
[("view3d.select_box", | |
{"type": 'EVT_TWEAK_L', "value": 'ANY', "shift": True}, | |
{"properties": | |
[("mode", 'XOR'), | |
], | |
}, | |
), | |
("view3d.select_box", | |
{"type": 'EVT_TWEAK_L', "value": 'ANY'}, | |
{"properties": | |
[("mode", 'ADD'), | |
], | |
}, | |
), | |
("view3d.select_box", | |
{"type": 'EVT_TWEAK_L', "value": 'ANY', "ctrl": True}, | |
{"properties": | |
[("mode", 'SUB'), | |
], | |
}, | |
), | |
], | |
}, | |
), | |
("3D View Tool: Move", | |
{"space_type": 'VIEW_3D', "region_type": 'WINDOW'}, | |
{"items": | |
[("view3d.select_box", | |
{"type": 'EVT_TWEAK_L', "value": 'ANY', "shift": True}, | |
{"properties": | |
[("mode", 'XOR'), | |
], | |
}, | |
), | |
("view3d.select_box", | |
{"type": 'EVT_TWEAK_L', "value": 'ANY'}, | |
{"properties": | |
[("mode", 'ADD'), | |
], | |
}, | |
), | |
("view3d.select_box", | |
{"type": 'EVT_TWEAK_L', "value": 'ANY', "ctrl": True}, | |
{"properties": | |
[("mode", 'SUB'), | |
], | |
}, | |
), | |
], | |
}, | |
), | |
("3D View Tool: Rotate", | |
{"space_type": 'VIEW_3D', "region_type": 'WINDOW'}, | |
{"items": | |
[("view3d.select_box", | |
{"type": 'EVT_TWEAK_L', "value": 'ANY', "shift": True}, | |
{"properties": | |
[("mode", 'XOR'), | |
], | |
}, | |
), | |
("view3d.select_box", | |
{"type": 'EVT_TWEAK_L', "value": 'ANY'}, | |
{"properties": | |
[("mode", 'ADD'), | |
], | |
}, | |
), | |
("view3d.select_box", | |
{"type": 'EVT_TWEAK_L', "value": 'ANY', "ctrl": True}, | |
{"properties": | |
[("mode", 'SUB'), | |
], | |
}, | |
), | |
], | |
}, | |
), | |
("3D View Tool: Scale", | |
{"space_type": 'VIEW_3D', "region_type": 'WINDOW'}, | |
{"items": | |
[("view3d.select_box", | |
{"type": 'EVT_TWEAK_L', "value": 'ANY', "shift": True}, | |
{"properties": | |
[("mode", 'XOR'), | |
], | |
}, | |
), | |
("view3d.select_box", | |
{"type": 'EVT_TWEAK_L', "value": 'ANY'}, | |
{"properties": | |
[("mode", 'ADD'), | |
], | |
}, | |
), | |
("view3d.select_box", | |
{"type": 'EVT_TWEAK_L', "value": 'ANY', "ctrl": True}, | |
{"properties": | |
[("mode", 'SUB'), | |
], | |
}, | |
), | |
], | |
}, | |
), | |
("Window", | |
{"space_type": 'EMPTY', "region_type": 'WINDOW'}, | |
{"items": | |
[("wm.read_homefile", {"type": 'N', "value": 'PRESS', "oskey": True}, None), | |
("wm.call_menu", | |
{"type": 'O', "value": 'PRESS', "shift": True, "oskey": True}, | |
{"properties": | |
[("name", 'TOPBAR_MT_file_open_recent'), | |
], | |
}, | |
), | |
("wm.open_mainfile", {"type": 'O', "value": 'PRESS', "oskey": True}, None), | |
("wm.save_mainfile", {"type": 'S', "value": 'PRESS', "oskey": True}, None), | |
("wm.save_as_mainfile", {"type": 'S', "value": 'PRESS', "shift": True, "oskey": True}, None), | |
("wm.quit_blender", {"type": 'Q', "value": 'PRESS', "oskey": True}, None), | |
("wm.search_menu", {"type": 'F', "value": 'PRESS', "oskey": True}, None), | |
("wm.read_homefile", {"type": 'N', "value": 'PRESS', "ctrl": True}, None), | |
("wm.call_menu", | |
{"type": 'O', "value": 'PRESS', "shift": True, "ctrl": True}, | |
{"properties": | |
[("name", 'TOPBAR_MT_file_open_recent'), | |
], | |
}, | |
), | |
("wm.open_mainfile", {"type": 'O', "value": 'PRESS', "ctrl": True}, None), | |
("wm.save_mainfile", {"type": 'S', "value": 'PRESS', "ctrl": True}, None), | |
("wm.save_as_mainfile", {"type": 'S', "value": 'PRESS', "shift": True, "ctrl": True}, None), | |
("wm.quit_blender", {"type": 'Q', "value": 'PRESS', "ctrl": True}, None), | |
("wm.call_menu", | |
{"type": 'Q', "value": 'PRESS', "shift": True, "oskey": True}, | |
{"properties": | |
[("name", 'SCREEN_MT_user_menu'), | |
], | |
}, | |
), | |
("screen.space_type_set_or_cycle", | |
{"type": 'F1', "value": 'PRESS', "shift": True}, | |
{"properties": | |
[("space_type", 'FILE_BROWSER'), | |
], | |
}, | |
), | |
("screen.space_type_set_or_cycle", | |
{"type": 'F2', "value": 'PRESS', "shift": True}, | |
{"properties": | |
[("space_type", 'CLIP_EDITOR'), | |
], | |
}, | |
), | |
("screen.space_type_set_or_cycle", | |
{"type": 'F3', "value": 'PRESS', "shift": True}, | |
{"properties": | |
[("space_type", 'NODE_EDITOR'), | |
], | |
}, | |
), | |
("screen.space_type_set_or_cycle", | |
{"type": 'F4', "value": 'PRESS', "shift": True}, | |
{"properties": | |
[("space_type", 'CONSOLE'), | |
], | |
}, | |
), | |
("screen.space_type_set_or_cycle", | |
{"type": 'F5', "value": 'PRESS', "shift": True}, | |
{"properties": | |
[("space_type", 'VIEW_3D'), | |
], | |
}, | |
), | |
("screen.space_type_set_or_cycle", | |
{"type": 'F6', "value": 'PRESS', "shift": True}, | |
{"properties": | |
[("space_type", 'GRAPH_EDITOR'), | |
], | |
}, | |
), | |
("screen.space_type_set_or_cycle", | |
{"type": 'F7', "value": 'PRESS', "shift": True}, | |
{"properties": | |
[("space_type", 'PROPERTIES'), | |
], | |
}, | |
), | |
("screen.space_type_set_or_cycle", | |
{"type": 'F8', "value": 'PRESS', "shift": True}, | |
{"properties": | |
[("space_type", 'SEQUENCE_EDITOR'), | |
], | |
}, | |
), | |
("screen.space_type_set_or_cycle", | |
{"type": 'F9', "value": 'PRESS', "shift": True}, | |
{"properties": | |
[("space_type", 'OUTLINER'), | |
], | |
}, | |
), | |
("screen.space_type_set_or_cycle", | |
{"type": 'F10', "value": 'PRESS', "shift": True}, | |
{"properties": | |
[("space_type", 'IMAGE_EDITOR'), | |
], | |
}, | |
), | |
("screen.space_type_set_or_cycle", | |
{"type": 'F11', "value": 'PRESS', "shift": True}, | |
{"properties": | |
[("space_type", 'TEXT_EDITOR'), | |
], | |
}, | |
), | |
("screen.space_type_set_or_cycle", | |
{"type": 'F12', "value": 'PRESS', "shift": True}, | |
{"properties": | |
[("space_type", 'DOPESHEET_EDITOR'), | |
], | |
}, | |
), | |
("wm.call_menu", | |
{"type": 'NDOF_BUTTON_MENU', "value": 'PRESS'}, | |
{"properties": | |
[("name", 'USERPREF_MT_ndof_settings'), | |
], | |
}, | |
), | |
("wm.context_scale_float", | |
{"type": 'NDOF_BUTTON_PLUS', "value": 'PRESS'}, | |
{"properties": | |
[("data_path", 'preferences.inputs.ndof_sensitivity'), | |
("value", 1.1), | |
], | |
}, | |
), | |
("wm.context_scale_float", | |
{"type": 'NDOF_BUTTON_MINUS', "value": 'PRESS'}, | |
{"properties": | |
[("data_path", 'preferences.inputs.ndof_sensitivity'), | |
("value", 0.90909094), | |
], | |
}, | |
), | |
("wm.context_scale_float", | |
{"type": 'NDOF_BUTTON_PLUS', "value": 'PRESS', "shift": True}, | |
{"properties": | |
[("data_path", 'preferences.inputs.ndof_sensitivity'), | |
("value", 1.5), | |
], | |
}, | |
), | |
("wm.context_scale_float", | |
{"type": 'NDOF_BUTTON_MINUS', "value": 'PRESS', "shift": True}, | |
{"properties": | |
[("data_path", 'preferences.inputs.ndof_sensitivity'), | |
("value", 0.6666667), | |
], | |
}, | |
), | |
("info.reports_display_update", {"type": 'TIMER_REPORT', "value": 'ANY', "any": True}, None), | |
("wm.doc_view_manual_ui_context", {"type": 'F1', "value": 'PRESS'}, None), | |
("wm.call_panel", | |
{"type": 'F2', "value": 'PRESS'}, | |
{"properties": | |
[("name", 'TOPBAR_PT_name'), | |
("keep_open", False), | |
], | |
}, | |
), | |
("wm.search_menu", {"type": 'F3', "value": 'PRESS'}, None), | |
("wm.call_menu", | |
{"type": 'F4', "value": 'PRESS'}, | |
{"properties": | |
[("name", 'TOPBAR_MT_file_context_menu'), | |
], | |
}, | |
), | |
("wm.toolbar", {"type": 'SPACE', "value": 'PRESS', "shift": True, "ctrl": True, "alt": True, "oskey": True}, None), | |
], | |
}, | |
), | |
("Object Non-modal", | |
{"space_type": 'EMPTY', "region_type": 'WINDOW'}, | |
{"items": | |
[("wm.call_menu_pie", | |
{"type": 'TAB', "value": 'PRESS', "shift": True, "ctrl": True}, | |
{"properties": | |
[("name", 'view3d.snap_of'), | |
], | |
}, | |
), | |
("wm.call_menu_pie", | |
{"type": 'Z', "value": 'PRESS'}, | |
{"properties": | |
[("name", 'VIEW3D_MT_shade_of'), | |
], | |
}, | |
), | |
("wm.call_menu_pie", | |
{"type": 'PERIOD', "value": 'PRESS'}, | |
{"properties": | |
[("name", 'VIEW3D_MT_pivot_of'), | |
], | |
}, | |
), | |
("wm.call_menu_pie", | |
{"type": 'TAB', "value": 'PRESS'}, | |
{"properties": | |
[("name", 'VIEW3D_MT_object_mode_of'), | |
], | |
}, | |
), | |
("wm.call_menu_pie", | |
{"type": 'TAB', "value": 'PRESS', "shift": True, "ctrl": True}, | |
{"properties": | |
[("name", 'view3d.snap_of'), | |
], | |
}, | |
), | |
("wm.call_menu_pie", | |
{"type": 'Z', "value": 'PRESS'}, | |
{"properties": | |
[("name", 'VIEW3D_MT_shade_of'), | |
], | |
}, | |
), | |
("wm.call_menu_pie", | |
{"type": 'PERIOD', "value": 'PRESS'}, | |
{"properties": | |
[("name", 'VIEW3D_MT_pivot_of'), | |
], | |
}, | |
), | |
("wm.call_menu_pie", | |
{"type": 'TAB', "value": 'PRESS'}, | |
{"properties": | |
[("name", 'VIEW3D_MT_object_mode_of'), | |
], | |
}, | |
), | |
("object.mode_set", | |
{"type": 'TAB', "value": 'PRESS', "ctrl": True}, | |
{"properties": | |
[("mode", 'EDIT'), | |
("toggle", True), | |
], | |
}, | |
), | |
("wm.call_menu_pie", | |
{"type": 'TAB', "value": 'PRESS'}, | |
{"properties": | |
[("name", 'VIEW3D_MT_object_mode_pie'), | |
], | |
}, | |
), | |
], | |
}, | |
), | |
] | |
if __name__ == "__main__": | |
import os | |
from bl_keymap_utils.io import keyconfig_import_from_data | |
keyconfig_import_from_data(os.path.splitext(os.path.basename(__file__))[0], keyconfig_data) | |
Header, | |
Menu, | |
Panel, | |
) | |
from bpy.app.translations import contexts as i18n_contexts | |
# spawn an edit mode selection pie (run while object is in edit mode to get a valid output) | |
class VIEW3D_PIE_editobject(Menu): | |
# label is displayed at the center of the pie menu. | |
bl_label = "" | |
def draw(self, context): | |
if bpy.context.mode == 'OBJECT': | |
layout = self.layout | |
layout.operator_context = 'INVOKE_REGION_WIN' | |
pie = layout.menu_pie() | |
obj = context.object | |
if obj is not None and obj.type in {'MESH', 'CURVE', 'SURFACE'}: | |
pie.operator_enum("OBJECT_OT_mode_set", "mode") | |
pie.menu("VIEW3D_MT_object_context_menu", text="Object Menu") | |
if context.mode == 'EDIT_MESH': | |
def count_selected_items_for_objects_in_mode(): | |
selected_verts_len = 0 | |
selected_edges_len = 0 | |
selected_faces_len = 0 | |
for ob in context.objects_in_mode_unique_data: | |
v, e, f = ob.data.count_selected_items() | |
selected_verts_len += v | |
selected_edges_len += e | |
selected_faces_len += f | |
return (selected_verts_len, selected_edges_len, selected_faces_len) | |
is_vert_mode, is_edge_mode, is_face_mode = context.tool_settings.mesh_select_mode | |
selected_verts_len, selected_edges_len, selected_faces_len = count_selected_items_for_objects_in_mode() | |
del count_selected_items_for_objects_in_mode | |
# If nothing is selected | |
# (disabled for now until it can be made more useful). | |
''' | |
# If nothing is selected | |
if not (selected_verts_len or selected_edges_len or selected_faces_len): | |
layout.menu("VIEW3D_MT_mesh_add", text="Add") | |
return | |
''' | |
# Else something is selected | |
layout = self.layout | |
layout.operator_context = 'INVOKE_REGION_WIN' | |
pie = layout.menu_pie() | |
pie.operator("object.mode_set", text="object mode", icon="OBJECT_DATAMODE") | |
pie.operator_enum("mesh.select_mode", "type") | |
pie.menu("VIEW3D_MT_edit_mesh_edges", text="edge menu", icon="COLLAPSEMENU") | |
pie.menu("VIEW3D_MT_edit_mesh_vertices", text="vert menu", icon="COLLAPSEMENU") | |
pie.menu("VIEW3D_MT_edit_mesh_faces", text="face menu", icon="COLLAPSEMENU") | |
pie.menu("VIEW3D_MT_uv_map", text="uv", icon="UV") | |
#pie.operator("transform.edge_crease", text="edge crease", icon="SHARPCURVE") | |
#pie.operator_enum("OBJECT_OT_mode_set", "mode") | |
def register(): | |
bpy.utils.register_class(VIEW3D_PIE_editobject) | |
def unregister(): | |
bpy.utils.unregister_class(VIEW3D_PIE_editobject) | |
if __name__ == "__main__": | |
register() | |
bpy.ops.wm.call_menu_pie(name="VIEW3D_PIE_editobject") |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment