Blender addon that simplifies access to useful operators and adds missing functionality

Overview

image

Quick Menu is a Blender addon that simplifies common tasks

Compatible with Blender 3.x.x

Install through Edit -> Preferences -> Addons -> Install... -> Select quick_menu.py.

Press D to open the menu.

Every operator is described in the manual.

Join our DISCORD for discussion.

The addon was initially made only with personal use in mind and therefore is not customizable. However, it adds some new operators that some people may find useful. It also simplifies access to some operators and settings. Blender is already very hotkey-friendly, but:

  1. Some useful operators are hard to reach, some take several mouse clicks. Some things you can't even fix with editing the keymap (snapping options for example). Quick Menu is optimized for accelerator keys, meaning all of the operators are accessible with just your left hand. All of them follow the pattern d + {key near d} + {key near d} . I took into consideration how easy it is to press them as well, combinations that are used frequently have some rolling finger motion in them.

  2. Blender doesn't really offer anything that would automate repeating tasks, like macros or whatever. Some of the operators do multiple things at once if it makes sense. Which effectively adds new functionality to Blender.

  3. Blender's defaults don't always make sense for my workflow, and a lot of the operators could be context-dependent. A lot of operators address this by calling existing Blender operators with proper settings. For example, I believe that "Shade Smooth", "Origin To (whatever)", operators that add modifiers and booleans should work regardless of what mode you're in. I believe that Separate/Join should be one button. The same is true for Region To Loop/Loop To Region, Add Mirror/Apply Mirror, etc. I believe that some operators (like mirror) should take into consideration your camera orientation when initially setting the axis. The list goes on. The addon is very opinionated.

This addon is the result of over a year of brainstorming on the effectiveness of modeling/texturing workflow and testing tools on small projects. I'm trying to keep it lightweight. If something seems missing from it, there's a high chance that the reason for it is that Blender already has built-in tools that allow to do it easily, or the use-case for it is very rare.

This addon is designed to be as unintrusive and minimalistic as possible. All of the operators are in just one menu. There's no UI other than that, which makes it easy to use. It also only takes one hotkey. It can be changed in the addon's preferences, but I recommend D.

This addon is a single-file addon for now, and it will probably stay that way because it simplifies development (reloading addons consisting of multiple files is not as straightforward as just pressing Alt+R, Alt+P in Blender's text editor).

Some tools

Here are some examples of tools that Quick Menu has. Keep in mind that this is not a complete list of operators, but rather a small showcase of what kind of things the addon is capable of. Only some modeling tools are listed, but the addon also has some operators for UVs, textures, export, etc. Check out the manual for the complete list.

Convert To Curve d41

Allows to create tubes out of selected edges with either round or square cross-section. Can be used without leaving edit mode. Usage: d+4+1

curve.mp4

Add geometry d34

Creates a circle or a square aligned to the selected face. Usage: d+3+5. Press shift to make a square

addgeometry.mp4

Loop/Region d23

Like some other Quick Menu operators (for example Separate/Join) it unifies multiple existing Blender operators into one. So instead of having to remember two separate hotkeys for Select Loop Inner Region and Select Boundary Loop, you can now just press d+2+3, and the addon will decide what to do depending on what mode you're in

loopregion.mp4

Bbox around selection d33

Creates a bounding box around selected elements in edit mode. Can also create a bounding plane/line, depending on the selection. Usage: d+3+3

bbox.mp4

Booleans de1, de2, de3

Context-dependent boolean, works in both object and edit mode. This operator will pre-scale selection by a small margin before applying boolean to avoid problems with coplanar faces. Works well with Blender's existing Add Cube tool (dd1). Usage: d+e+1 for union, d+e+2 for difference, d+e+3 for intersection

boolean.mp4

Connect d3c

Connects selected isolated islands with an edge. Will make a face if more than 2 islands are selected. Usage: d+3+c

connect.mp4

Flatten d3f

A faster way to flatten compared to s+{axis}+0+enter. This operator is view-dependent. Usage: d+3+f

flatten.mp4

Randomize d3r

Randomize operator that works in both object and edit mode (on separate islands). Usage: d+3+r

randomize.mp4

Spin d32

Effectively presets for the existing spin operator. Usage: d+3+2

spin.mp4

Plane Intersect Island deq

A view-dependent operator that cuts an island with a plane that goes through the center of the active element and is oriented towards the viewport camera (Snapped to 90 degrees by default). Convenient for cutting through complex meshes with ngons. Usage: d+e+q

planeintersectisland.mp4

Projection Intersect der

Projects selected elements to unselected. Just like the previous one, this operator is view-dependent. Flattens selection before projecting. Usage: d+e+r

projectionintersect.mp4

Knife Intersect dee

Similar to Blender's Intersect (Knife) (Ctrl+F+K), but removes the original geometry. Usage: d+e+e

knifeintersect.mp4
Comments
  • Array count issue

    Array count issue

    Issue: addon for arrays work incorrect. When you press counts more, it adds new array modifier with more counts in addition to previous one. When you press less counts, it add new array modifier with less counts in addition to previous one. 1 - 2 - 3 - 4 - 3 - 2 - 1 - 1, and in total: 7 array modifiers.

    Version: Blender 3.3.0 LTS (Steam version)

    How to recreate:

    1. In EDIT mode select mesh or part.
    2. To see the bug: open modifiers property menu.
    3. D-4-A to set array.
    4. in pop-up menu (same as F9) set count 2 or more by pressing arrows. 4.1) I check init.py, and there count number is 3 by default but in blender it is 1 (so, maybe, v3.3.0 is the reason)
    5. pressing opposite arrows to decrease numbers.

    Result: new array modifier is adding to modifiers' stack and affect on mesh.

    https://user-images.githubusercontent.com/60898828/189495750-d34d7c14-9e1e-4511-b61e-933a20b9dbeb.mp4

    opened by DesLandysh 0
  • I'm getting an error on create curves feature

    I'm getting an error on create curves feature

    When I try to create a curve I get an error.

    Python: Traceback (most recent call last): File "/Users/user/Library/Application Support/Blender/3.1/scripts/addons/quickmenu-main/init.py", line 789, in invoke return self.execute(context) File "/Users/user/Library/Application Support/Blender/3.1/scripts/addons/quickmenu-main/init.py", line 810, in execute self.resolution = max(1, (calculate_number_of_vertices_by_radius(self.depth, subsurf) / 2 - 3)) File "/Applications/Blender.app/Contents/Resources/3.1/scripts/modules/bpy_types.py", line 778, in setattr return setattr(properties, attr, value) TypeError: bpy_struct: item.attr = val: QM_OT_convert.resolution expected an int type, not float

    location: :-1

    opened by Nestlium 0
  • D-3-4 scale down (mouse to the left) throws error

    D-3-4 scale down (mouse to the left) throws error

    Blender 3.0.1

    Error: Python: Traceback (most recent call last):
      File "D:\Blender Assets\addons\quickmenu-main\__init__.py", line 645, in modal
        return modal_run(self, context, event, True)
      File "D:\Blender Assets\addons\quickmenu-main\__init__.py", line 184, in modal_run
        if hasattr(operator, 'on_modal_run'): operator.on_modal_run(context, event)
      File "D:\Blender Assets\addons\quickmenu-main\__init__.py", line 624, in on_modal_run
        self.execute(context)
      File "D:\Blender Assets\addons\quickmenu-main\__init__.py", line 661, in execute
        self.add_geometry()
      File "D:\Blender Assets\addons\quickmenu-main\__init__.py", line 656, in add_geometry
        self.vertices = calculate_number_of_vertices_by_radius(self.radius)
      File "D:\Blender Assets\addons\quickmenu-main\__init__.py", line 104, in calculate_number_of_vertices_by_radius
        return max(6, grid_snap(2, math.log(1 + 0.03 + 0.4 * radius) * RADIUS_TO_VERTICES))
    ValueError: math domain error
    
    opened by iperson 0
  • Error handling

    Error handling

    Having trouble reproducing this one. I think it was D-4-3, but could not repeat.

    location: <unknown location>:-1
    Error: Python: Traceback (most recent call last):
      File "D:\Blender Assets\addons\quickmenu-main\__init__.py", line 881, in execute
        execute_in_mode('OBJECT', fn)
      File "D:\Blender Assets\addons\quickmenu-main\__init__.py", line 92, in execute_in_mode
        result = callback()
      File "D:\Blender Assets\addons\quickmenu-main\__init__.py", line 880, in fn
        bpy.ops.object.convert(target='MESH')
      File "C:\Program Files\Blender Foundation\Blender 3.0\3.0\scripts\modules\bpy\ops.py", line 132, in __call__
        ret = _op_call(self.idname_py(), None, kw)
    RuntimeError: Operator bpy.ops.object.convert.poll() failed, context is incorrect
    
    opened by iperson 0
  • Addon does not show up after install

    Addon does not show up after install

    I'm on an M1 Max Mac running the Blender 3.1 beta on MacOS Monterrey. I downloaded the latest version and Installed it as per the documentation. The addon does not show up after restarting blender, nor in the Addon list in the preferences.

    I've tried selecting a cube, pressing D 4 5 ( and other combinations ) but no menu shows up.

    opened by SkelegonDK 3
Releases(v2.4.3)
Owner
passivestar
passivestar
🎴 LearnQuick is a flashcard application that you can study with decks and cards.

🎴 LearnQuick is a flashcard application that you can study with decks and cards. The main function of the application is to show the front sides of the created cards to the user and ask them to guess

Mehmet Güdük 7 Aug 21, 2022
A tool to quickly create codeforces contest directories with templates.

Codeforces Template Tool I created this tool to help me quickly set up codeforces contests/singular problems with templates. Tested for windows, shoul

1 Jun 02, 2022
Python implementation for Active Directory certificate abuse

Certipy is a Python tool to enumerate and abuse misconfigurations in Active Directory Certificate Services (AD CS). Based on the C# variant Ce

Oliver Lyak 1.3k Jan 09, 2023
Simple Python Gemini browser with nice formatting

gg I wasn't satisfied with any of the other available Gemini clients, so I wrote my own. Requires Python 3.9 (maybe older, I haven't checked) and opti

Sarah Taube 2 Nov 21, 2021
Convert long numbers into a human-readable format in Python

Convert long numbers into a human-readable format in Python

Alex Zaitsev 73 Dec 28, 2022
Tutorials on advanced python topics, and literate programming framework to write them.

Advanced course on Python3 This course covers several topics Python decorators The python object system / meta classes Also see my text on Python impo

Michael Moser 59 Dec 19, 2022
About A python based Apple Quicktime protocol,you can record audio and video from real iOS devices

介绍 本应用程序使用 python 实现,可以通过 USB 连接 iOS 设备进行屏幕共享 高帧率(30〜60fps) 高画质 低延迟(200ms) 非侵入性 支持多设备并行 Mac OSX 安装 python =3.7 brew install libusb pkg-config 如需使用 g

YueC 124 Nov 30, 2022
An AddOn storing wireguard configuration

Wireguard Database Connector Overview Development Status: 0.1.7 (alpha) First of all, I'd like to thank Jared McKnight for wireguard who inspired me t

Markus Neubauer 3 Dec 30, 2021
Automatically skip sponsor segments in YouTube videos playing on Apple TV.

iSponsorBlockTV Skip sponsor segments in YouTube videos playing on an Apple TV. This project is written in asycronous python and should be pretty quic

David 64 Dec 17, 2022
An useful scripts for Misskey

misskey-scripts This place storing useful scripts which made by me. icon-repair Repair broken remote user's icon.

CyberRex 5 Sep 09, 2022
A check numbers python module

Made with Python3 (C) @FayasNoushad Copyright permission under MIT License License - https://github.com/FayasNoushad/Numbers/blob/main/LICENSE Deplo

Fayas Noushad 3 Nov 28, 2021
Simple utlity for sniffing decrypted HTTP/HTTPS traffic on a jailbroken iOS device into an HAR format.

Description iOS devices contain a hidden feature for sniffing decrypted HTTP/HTTPS traffic from all processes using the CFNetwork framework into an HA

83 Dec 25, 2022
Yakuake session management

yman is a python script used for saving/restoring yakuake sessions (currently running commands, working directories, environment variables, tab titles)

Szymon Borecki 6 Jun 25, 2022
This is a Poetry plugin that will make it possible to build projects using custom TOML files

Poetry Multiproject Plugin This is a Poetry plugin that will make it possible to build projects using custom TOML files. This is especially useful whe

David Vujic 69 Dec 25, 2022
Streamlit — The fastest way to build data apps in Python

Welcome to Streamlit 👋 The fastest way to build and share data apps. Streamlit lets you turn data scripts into sharable web apps in minutes, not week

Streamlit 22k Jan 06, 2023
ELF file deserializer and serializer library

elfo ELF file deserializer and serializer library. import elfo elf = elfo.ELF.from_path('main') elf ELF( header=ELFHeader( e_ident=e

Filipe Laíns 3 Aug 23, 2021
A collection of full-stack resources for programmers.

A collection of full-stack resources for programmers.

Charles-Axel Dein 22.3k Dec 30, 2022
CountBoard 是一个基于Tkinter简单的,开源的桌面日程倒计时应用。

CountBoard 是一个基于Tkinter简单的,开源的桌面日程倒计时应用。 基本功能 置顶功能 是否使窗体一直保持在最上面。 简洁模式 简洁模式使窗体更加简洁。 此模式下不可调整大小,请提前在普通模式下调整大小。 设置功能 修改主窗体背景颜色,修改计时模式。 透明设置 调整窗体的透明度。 修改

gaoyongxian 130 Dec 01, 2022
Practice10 - Operasi String With Python

Operasi String MY SOSIAL MEDIA : Apa itu Python String ? String adalah urutan si

Maulana Reza Badrudin 1 Jan 05, 2022
Generate Gaussian 09 input files for the rotamers of an input compound.

Rotapy Purpose Generate Gaussian 09 input files for the rotamers of an input compound. Distance to the axis of rotation remains constant throughout th

1 Jul 16, 2021