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
Materials and information for my PyCascades 2021 Presentation

Materials and information for PyCascades 2021 Presentation: Sparking Creativity in LED Art with CircuitPython

GeekMomProjects 19 May 04, 2022
Aplicação que envia regularmente um email ao utilizador com todos os filmes disponíveis no cartaz dos cinemas Nos.

Cartaz-Cinemas-Nos Aplicação que envia regularmente uma notificação ao utilizador com todos os filmes disponíveis no cartaz dos cinemas Nos. Só funcio

Cavalex 1 Jan 09, 2022
Python Interactive Graphical System made during Computer Graphics classes (INE5420-2021.1)

PY-IGS - The PYthon Interactive Graphical System The PY-IGS Installation To install this software you will need these dependencies (with their thevelo

Enzo Coelho Albornoz 4 Dec 03, 2021
Mini-calculadora escrita como exemplo para uma palestra relâmpago sobre `git bisect`

Calculadora Mini-calculadora criada para uma palestra relâmpado sobre git bisect. Tem até uma colinha! Exemplo de uso Modo interativo $ python -m calc

Eduardo Cuducos 3 Dec 14, 2021
A simple IDA Pro plugin to show all HexRays decompiler comments written by user

XRaysComments A simple IDA Pro plugin to show all HexRays decompiler comments written by user Installation Copy the file xray_comments.py to the plugi

Nox 20 Dec 27, 2022
Integration of CCURE access control system with automation HVAC of a commercial building

API-CCURE-Automation-Quantity-Floor Integration of CCURE access control system with automation HVAC of a commercial building CCURE is an access contro

Alexandre Edson Silva Pereira 1 Nov 24, 2021
Make your Discord Account Online 24/7!

Online-Forever Make your Discord Account Online 24/7! A Code written in Python that helps you to keep your account 24/7. The main.py is the main file.

SealedSaucer 0 Mar 16, 2022
Animation retargeting tool for Autodesk Maya. Retargets mocap to a custom rig with a few clicks.

Animation Retargeting Tool for Maya A tool for transferring animation data between rigs or transfer raw mocap from a skeleton to a custom rig. (The sc

Joaen 62 Dec 19, 2022
The Python Fuzzer that the world deserves 🐍

pip3 install frelatage Current release : 0.0.2 The Python Fuzzer that the world deserves Installation | How it works | Features | Use Frelatage | Conf

Rog3r 219 Dec 21, 2022
because rico hates uuid's

terrible-uuid-lambda because rico hates uuid's sub 200ms response times! Try it out here: https://api.mathisvaneetvelde.com/uuid https://api.mathisvan

Mathis Van Eetvelde 2 Feb 15, 2022
A website to collect vintage 4 tracks cassette recorders.

Vintage 4tk cassette recorders A website to collect vintage 4 tracks cassette recorders. Local development setup Copy and customize Django settings (e

1 May 01, 2022
Node editor view image node

A Blender addon to quickly view images from image nodes in Blender's image viewer.

5 Nov 27, 2022
💘 Write any Python with 9 Characters: e,x,c,h,r,(,+,1,)

💘 PyFuck exchr(+1) PyFuck is a strange playful code. It uses only nine different characters to write Python3 code. Inspired by aemkei/jsfuck Example

Satoki 10 Dec 25, 2022
XHacks 2021 Startup Track Winner: Be Heard. Educate, Enact, Empower. No voice left behind. (backend)

Be Heard: X Hacks 2021 Submission Educate, Enact, Empower. No voice left behind. Inspiration To say 2020 was an eventful year would be an understateme

3 Jul 14, 2022
Think DSP: Digital Signal Processing in Python, by Allen B. Downey.

ThinkDSP LaTeX source and Python code for Think DSP: Digital Signal Processing in Python, by Allen B. Downey. The premise of this book (and the other

Allen Downey 3.2k Jan 08, 2023
Projeto-menu - This project is designed to learn more about control mechanisms in Python programming

Projeto-menu - This project is designed to learn more about control mechanisms in Python programming

Henrik Ricarte 2 Mar 01, 2022
CALPHAD tools for designing thermodynamic models, calculating phase diagrams and investigating phase equilibria.

CALPHAD tools for designing thermodynamic models, calculating phase diagrams and investigating phase equilibria.

pycalphad 189 Dec 13, 2022
NotesToCommands - a fully customizable notes / command template program, allowing users to instantly execute terminal commands

NotesToCommands is a fully customizable notes / command template program, allowing users to instantly execute terminal commands with dynamic arguments grouped into sections in their notes/files. It w

zxro 5 Jul 02, 2022
My Solutions to 120 commonly asked data science interview questions.

Data_Science_Interview_Questions Introduction 👋 Here are the answers to 120 Data Science Interview Questions The above answer some is modified based

Milaan Parmar / Милан пармар / _米兰 帕尔马 181 Dec 31, 2022
All Assignments , Test , Quizzes and Exams with solutions from NIT Patna B.Tech CSE 5th Semester.

A 🌟 to repo would be delightful, just do it ✔️ it is inexpensive. All Assignments , Quizzes and Exam papers at one place with clean and elegant solut

LakhanKumawat ᵖ⁺ 16 Dec 05, 2022