External Blender Python Button-Bar Addon For Windows

by Theo Gottwald in Scripts and Addons

[Windows-Only] does NOT work with other OS!

This is the small version of "Blender Quickbuttons" that is available here: Blender Quickbuttons V.5

This product - is perfectly fine - and has a ver y low price. While its completely functional. If you just want to put "your own Python Scripts on a Button" you can just use this Version.

There are some disadvantage against the "large Version" (no Tooltips, older and smaller Python-Library and no more Updates).
But if its just that you need it for your own Python Code this is perfectly fine.

Also there is a 70 kb Python Library included. (Quickbuttons V.5 has a 132 kb Python Library). Here you get 4 Layers with Buttons (you can add 5 more with own Scripts!). Quickbuttons V.5 comes with actually 7 Layers.

Now what is it good for? 

There are so many Python Scripts around. But how to use them?

You need to copy and paste them and search them ... so its not quite handy.

How about making these Python Scripts on a Button?

Just press your button to execute your Scripts?

The External Blender Button-Bar (EBB) is a Sort of "Macro-Button Bar". You press a Button, the EBB will write a Python Script (that you can define) into the Python Console.
It already comes with a 70 kb Python Library with many Subprogrammes that you can use for your own Button-Definitions.

Making Blender do whatever you have placed onto that Button. This way you can add your own Python-Scripts on a Button for use in Blender. Without crowding Blender's AddOn Area more.

Is your Blender-Interface crowded from so many Plug-Ins and AddOns?

Get an external Button-Bar that will start all your favorite Python-Scripts for Blender. It comes with over 50 built-in Functions like "Select Similar Size".

Generally the External AddOn is independent from the Blender Version. Just the changes in the Python-Library that is provided with the Button-Bar makes it a bit Blender Version dependent.

Get up to 360 Buttons at the right Side of Blender in up to 9 "Button-Layers". You can put on each Button your own Python-Code, even separate Code for the Left and the right Mouse-Button.

Please note that the Buttonbar was improved since the Video was recorded. Many buttons have now two functions (left- and right-Click), which can not be seen in the Video.


You can redefine all Buttons that have a number on the left side.
You can also add or delete Buttons.

Included is our "Desktop-Manager" that will enable you to run multiple Instances of Blender on multiple real Desktops. and of course with multiple Buttonbars.


Using real Desktops in out Tests, Blender renders more stable if you have multiple Blender running on their own "Private Desktop".
Note that our Desktops are REAL Desktops, not the "virtual Desktops" that come with Windows 10. Real Desktops have their own Window structure.

The PRO-Version can have up to 40 Buttons times up to 9 Layers times 2 for Left and right Mouse-Button. So you can put all Python Scripts onto this AddOn and just call them with a Button. 

Note that the Calculation includes the reserved green System-Buttons. These green Buttons do not have a number and can therefore not be changed by the User.

The difference to most other AddOns is, that this is a separately running "Standalone" Program that will "hang on" to the Blender Window on the right side. So it will not use any Space inside of Blender and just hang outside of it. The advantage is that most functions can just be called with a single click on a Button. Sometimes a Popup appears that will ask you to enter a number that is then used in the Script.

I did the Blenderbar AddOn originally when i made a lot of Rigid-Body stuff. It was annoying for me, that I had always to go to the right side choose Rigid-Body "click here and there" to change something or to BAKE. It should had been done with just 1 Click!

So thats the short-story behind the Blenderbar and that is why I made it primarily for myself.

You may also have some tasks that are special?
You also have functions that you need often and would like to have them on a own Button?
The Python Code that is on the Buttons can be changed, which is as easy as editing a Text-File. All the Button-Functions are inside normal Text Files, with the Number of the Button.


To work properly the system must run under Windows and you need to have the Python Console in the lower right corner of Blender.

Included is a Library Folder with a "Library.py" file which contains a lot of Code-Samples about doing a lot of things with (selected) Objects in Blender. You can also put your own Library Routines into this file and then easily call them from the AddOn and from Blender. 

The AddOn-library must be registered into Blender  one time when Blender starts. Blender will remember the Library as long as its open. 

This "Library-Register" is done with just a Single-Click on the "Add Library"-Button. 
You need to do this always as the first Click to "get Blender and the AddON a Team". 

#################################################

If you want to test it first,  there is a free version  available  with up to 20 Buttons.

Look at my Patreons Page to download it.

Once you have used all of the 20 Buttons in the Free Version and you want much more - 40 Buttons plus Multiple Layers with each 40 Buttons) then this PRO-Version is the AddOn for you.

The Addon is external to Blender so its technically version independent. The Library has been updated for Blender 2.80 up to 2.90. 

#################################################

So if you also have favorite Blender-Actions which you would like to have an o Single Button Click.
And you have the Python code for these. Then you can put these tasks (as Python Scripts) on a button and call them with just one Click

If these are multiple sequencial tasks (for example "Save and Bake"), its even more interesting. Then you click one time, and things happen like they should.

Using the Layers of the PRO-Version,  you can sort several types of tasks in several "Button Layers". Below is a complete Functions-List for all (currently 4) Button-Layers.

  1. Currently we have Rigid-Body mostly on Layer 1,
  2. Object-Generation mostly on Layer 2
  3. Move and Rotate Objects mostly on Layer 3
  4. Manta-Flow, Sample-Scenes and "Plank-Towers" on Layer 4

Below you will also find a Description of the additional Programs/Tools that are in the Package.

HINT: To switch between the (currently 4) Button-Layers, you can press the Yellow Button on Top of the Buttonbar. If you press it with the left Mouse-Button, it will go one Layer forward e.g. from Layer 1 to Layer 2.  If you press the right Mousebutton instead, it will go one Layer backwards. e.g. from layer 1 to Layer 4 or from Layer 2 to Layer 1. This way you can quickly switch to the Layer where you want to go. If you make a Double Click onto the Button, it will quickly switch +3 Layers. This will be interesting if you have more then 4 Button Layers.

Clicking Left or Right?
The Buttonbar has now been enhanced to also detect Right Clicks. This made it possible, to put 2 Functions on each button.
One for the Left Click, one if you Click with the Right Mouse-Button.


This is useful for Example when you rotate Objects with a Button.
So clicking Left can rotate by "90 Degree", and a "RightClick" in the opposite direction.
Buttons that have got 2 Functions and can therefore be right-clicked are painted in a bit more light color, compared to the "normal Buttons" that can only be clicked with the Left Mouse-Button.

If you open a Button-Textfile, it will look like this (Example):

As you can see, the file contains both Parts. The Part for the Left-Click as well as the Part for the Right-Click. In the Textfile they are separated with the "[OnRightMouseButton!]"-Directive.

If you do not understand what a Button is doing, you can simply open his "Textfile" and read inside what is going on. 

Here is a commented Example.

Functions-List Layer 1/4:

1.-2. "Bake", "Bake-Hi Quality" and "Bake-Low Quality" and "Save and Bake".
These 2 Buttons are meant to speed up working with Rigid Body.
No matter where in Blender you are or what is selected.
Just press the Button and it will BAKE with the preferred settings.
As you can see the Buttons have each two functions, depending if you click left or right Mouseclick on them.

3.-4. "Origin to Geometry" and "Remove from Rigid-Body". These two Buttons are also Shortcuts for Blender Functions that are often used while doing Rigid-Body stuff.

5. "Add to Rigid Body (ACTIVE)" and "Add to Rigid Body (PASSIVE)". This will add all selected Objects to the "Rigid-Body Simulation System". Use "ACTIVE" (left Mouse Button) for all Objects that shall move. And use "PASSIVE" (right Mouse Button) for "floor-like" Objects that should not move, but still be able to react to other (falling or moving) Objects.

6. "Copy Rigid Body Settings" and "Copy Rigid Body Settings and Bake".
This Buttons just speeds up Rigid-Body stuff. You can of course click them in Blender, but then you need to click several times to get there. Here its just one Click as it should be.

7.-10. "Set Rigid-Body Bouncing Box" to: SPHERE, BOX, MESH, CONVEX, CONE, CAPSULE or CYLINDER (one click for all selected Objects). With these Buttons you can set all selected Objects to another Bounding box. Doing so in Blender would require several steps (Do it with one Object, select the other Objects,  go to "Copy RB Settings") , here its just one Button Click for all selected Objects.

11. "Select similar Size Percentage" This will select all Objects that have a similar size then the one that is right now selected PLUS/MINUS a Tolerance that you have to enter in the Input-Box in Percent.

Here you can see the Textfile that is behind the Button.

For doing so it will calculate the size of the Bounding Box of the Object and compare it with all the other Objects. Now if the selected Object calculates to a size of "1" and you enter "10" into the Input-Box. Then all Objects with sizes between 0.9 and 1.1 will be selected. (See Video below at: 12:25)

12. "Select similar Size" - this is one of my favorite functions. It will just select all Objects that have a similar size then the one that is right now selected. For doing so it will calculate the size of the Bounding Box of the Object and compare it with all the other Objects.

13. "Show Rounded Size". This is for you to better understand the size of Objects with Buttons 11. and 12. It will write the calculated size of the selected Objects into the Python-Console Window.

14. "Make Random Color" - this will give each selected Object another random Color. Note that only real Objects can have an own color. "Duplicate Linked" Objects  share the same geometrical and Texturing Data, so they will most often (unless using special location dependent shaders?) all have the same color.

15. "Multiply Object and Place-in-Cube" - this will make multiple ("Linked Duplicates") Copies of the selected Object, and place them at a random Position within a Cube of selectable size. You will get a Popup that asks your for the size of the Cube. Don't press UNDO immediately after this Operation, here it will end Blender without saving.

16. Apply a "Random Size" to all selected Objects. You will get a Popup that asks your for the Minimum and Maximum Size. Just write two number separated with a comma. For example "0.5,1.2". Then the Selected Objects will get a random size between these values  in this case 0.5 and 1.2 times their current size.

8. "Prepare Video settings". If you choose to produce a video instead of a Single Picture, you will need to set multiple Parameters each time. Mostly its the same. Also if you need to render a Preview picture Blender will often reset the values to "PNG". So instead of doing this stuff over and over again, here is one Button that does it for you. Of course you can modify these Parameters to fit your needs in the Textfile "BE1\Button17.txt".

9. "OpenLib" - will open the Library-Folder in the Windows Explorer. Note that this is a green-System Button that can not be changed. It will however change it functionality in the other Layers.

10. "Save Blender","Restore Blender" will save and restore the Position and size of the Blender-Main Window. These Buttons are in Layers 2 and 3 and replace the "OpenLib"-Button from Layer 1. There may be a new function in Layer 4 in further Updates.

11. "FAST"/"SLOW"/"END" are three green System-Buttons that are available on all Layers and can not be changed from the User. "FAST" will change the writing speed of the Blenderbar from "faster then you can see" to "Normal human typing". (See Video 2:44)

 "END" will end the Blenderbar AddOn. If you close Blender, the Buttonbar will close itself automatically. 

You can have multiple Instances of Blender with multiple Buttonbars running at the same time. If you minimize Blender the Buttonbar will minimize itself together with Blender.

Functions-List Layer 2/4: 

Layer 2 has mostly Functions to multiply Objects along the X,Y and Z-Axis. All these objects are "linked Duplicates". Exception is Button 10, using the Array-Modifier and Button 10 you will get "real copied Objects".

1. "New Scene" - A Click on this Button will delete all Items in your Scene and create a new Scene as a starting point. Of course you can modify the details.
IMPORTANT: Due to the concept of this "Just one Click"-AddOn there is NO Safety and no Undo available for this Button. Click it and whatever was there in your Scene, is gone forever.

2. "Delete all" Objects, leave all Collections. This will delete all Objects but leave all Collections untouched. So you can restart whichever Project you just did.
IMPORTANT: Due to the concept of this "Just one Click"-AddOn there is NO Safety and no Undo available for this Button. Click it and whatever was there in your Scene, is gone.

3. "Add Plane and Ball". Will do just that, add a Plane and a Ball.

This is the Textfile behind the Button:

4. "Active Camera Point at Selected Object". Press this Button to make the active Camera look at the selected Object. This is not identical with the Blender Function "Align Active Camera to selected" (orange Arrow in the picture below) as it will not change the Zoom of the Camera and instead just turn the Camera into the right direction (blue Arrow in the picture below).

5.-6. "MakeLine X/Y/Z". This functions duplicates the selected Object(s) and line them up in the selected direction (X/Y/ or Z). "Linked Duplicates" are used. This way the Objects can be faster animated using the Rigid-Body-System. It will work with 1 selected Object or with multiple selected Objects, in such case the number of generated Objects will exponentially rise.

8.-9. "MakeQuad XY/YZ". This is the Combination of two times  "MakeLine" while all Objects stay selected. It will produce a field of Objects. As most functions in Layer 2 this will produce "Linked Duplicates" of the original Object. This saves Memory and speeds up the Rigid-Body Simulations. 

10. "Apply Modifiers". This is a special backend for the Array Modifier. Use the Array Modifier first, then click this Button. You will get perfectly separated Objects, also the Centerpoint will already be centered in the Geometry for each new Object.
Unlike the other Functions, here you do get real Objects not "Linked Duplicates".(See Video 13:56)

11. "Make Point at". This will make the selected Objects all point at the first selected Object. It can handle multiple Objects in one run. 

Using this Button can make nice looking Object patterns that look like magnetic field-lines, see Picture.


12. "PlaceInCube". This function will distribute the selected Objects randomly in a (assumed) Cube of a chosen size.

13. "Bake to Frame Auto". This will Bake a Rigid-Body Simulation into Animation Frames. For all selected Objects, and only for those. Just click the Button - you get it.

14. "Make Cube (Size,Height). This will duplicate "linked" the selected Objects in 3 Dimensions so that you get a resulting Cube with Size*Height duplicated Objects. Using the Buttons in Layer 1 you can immediately add them to Rigid-Body (if the original Object was not), BAKE it with another Click and voila, your Animation is ready.

15. "Rotate Objects (Speed, Last Keyframe"). This Function will create the Keyframes for an animation. It will rotate all selected Objects around themselves with a random speed (below given Speed) in a way that they return to the original position at the last Keyframe. This way you can make Looping animations with no end.

16. "Move (Speed, last Keyframe)".  This Function will create the Keyframes for an animation. It will move all selected Objects around on a random path, in a way that they return to the original position at the last Keyframe. This way you can make Looping animations with no end.

Functions-List Layer 3/4 and 4/4:

Please see the Documentation below.

See this Video about the first version of the Buttonbar. Note that the video is not perfectly "Up to date" because in the time between the recording and now there have been several Improvements.

Yet the Video shows the concepts and most of the buttons are still where they are in the video.