Blender with Better Selection and More

Turns out I need “reputation” to upvote something :face_exhaling: so I won’t be able to help you here.
Maybe you should try to report it as a bug?

1 Like

Thanks for trying, that seems pretty typical of stackexchange. Either get nothing, or told the usual, “ACKCHUALLY, that’s not worded in the specific way I like, so it’s not really even a question. Closing this as redundant, and I refuse to elaborate any further. Thanks for stopping by!”

I’ve never had the pleasure of that myself, but I have seen this bs response dozens of times for things I am trying to figure out. Not on the blender one at least, but in general. It’s never been on some egregiously lazy or vague question either. Just closed, with no links to a solution.

I did figure it out at least.

row.separator_spacer() makes it do that weird adjustment thing.
row.separator(factor=5.0) works good for what I needed.

I didn’t know the non-spacer one did horizontal spacing, I thought it was only vertical, because the spacer one says it is for horizontal empty space.

Without any separator in between, it looks bad. Huge gap between the label and the textbox / dropdown, and zero gap between the two properties:

I wish I could tell this to not take away so much of the textbox on the left, and just make the show: and dropdown less wide. Everything is the same though, pretty annoying. If you could just say what size each element took up, like a min and max, it would be great.

1 Like

Just want to let people know there’s a delay. Everything’s good except non-RT HIP on Windows. Apple never has any issues, and Linux is probably fine but I don’t know yet.

So, unless you need gpu accellerated Cycles with no raytracing on an AMD gpu on Windows, it means nothing to you. I’m willing to bet that this applies to basically nobody, but it’s one of those checkboxes that needs to be marked to be a comparable build in every reasonable way. I honestly feel like this is one of those things that borders on the unreasonable, depending how long I have to wait for help. Chat is down, and devtalk is also seemingly down for new posts.

I really, really wish that Cycles was just a renderer that could be downloaded by itself as an extension. Like just a thing, fully functional on it’s own, precompiled for whoever to use. Every time there’s compile errors, or CMake config errors, it is >90% Cycles having problems. Whether it’s Linux or Windows, AMD or very occasionally Nvidia. If the renderer was just it’s own deal that could be connected to BY Blender, instead of being fully packaged WITH Blender. This all goes away. I don’t get it. So much time spent compiling a dozen or so Cycle binaries, and then all over again on Linux. Even when things go smoothly it is so much extra time. Anyways, it is what it is.

Some details about the error, what I was going to put on devtalk but you get error 403:
On Windows 11. Both VS2019 and ROCm 5.5 seems to be more reliable than 2022 and ROCm 6.1 so I am sticking with those until I get it working, unless advised otherwise.

HIPRT, Optix, CUDA, and oneAPI compile ok. CMake having trouble finding non-RT HIP. Edit CMakeCache.txt to manually point to it. Seems fine, but build has errors. Tried rebuilding without non-RT HIP and everything is good. Just Cycles doing Cycles things. Chat is down, and this might be good to have around for future reference anyway.

Don’t know what to do with this:


7>Generating kernel_rt_gfx.bc

7>clang : error : invalid target ID 'gfx1150'; format is a processor name followed by an optional colon-delimited list of features followed by an enable/disable sign (e.g., 'gfx908:sramecc+:xnack-')

Full output (after successful release build, all it is trying to do is compile non-RT HIP at this point):


Build started...

1>------ Build started: Project: ZERO_CHECK, Configuration: Release x64 ------

1>1>Checking Build System

2>------ Build started: Project: cycles_kernel_oneapi, Configuration: Release x64 ------

3>------ Build started: Project: cycles_kernel_optix, Configuration: Release x64 ------

4>------ Build started: Project: buildinfo, Configuration: Release x64 ------

5>------ Build started: Project: cycles_kernel_cuda, Configuration: Release x64 ------

6>------ Build started: Project: cycles_kernel_hip, Configuration: Release x64 ------

7>------ Build started: Project: cycles_kernel_hiprt, Configuration: Release x64 ------

8>------ Build started: Project: cycles_osl_shaders, Configuration: Release x64 ------

9>------ Build started: Project: locales, Configuration: Release x64 ------

4>Generating buildinfo.h_fake, buildinfo.h

7>Generating kernel_rt_gfx.bc

7>clang : error : invalid target ID 'gfx1150'; format is a processor name followed by an optional colon-delimited list of features followed by an enable/disable sign (e.g., 'gfx908:sramecc+:xnack-')

7>clang : error : invalid target ID 'gfx1151'; format is a processor name followed by an optional colon-delimited list of features followed by an enable/disable sign (e.g., 'gfx908:sramecc+:xnack-')

6>Generating kernel_gfx1010.fatbin

7>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(241,5): error MSB8066: Custom build for 'D:\blender-git\build_windows_Release_x64_vc16_Release\CMakeFiles\98e5968de61a8555289b68cc52130f40\kernel_rt_gfx.bc.rule;D:\blender-git\build_windows_Release_x64_vc16_Release\CMakeFiles\98e5968de61a8555289b68cc52130f40\kernel_rt_gfx.hipfb.rule;D:\blender-git\build_windows_Release_x64_vc16_Release\CMakeFiles\98e5968de61a8555289b68cc52130f40\kernel_rt_gfx.hipfb.zst.rule;D:\blender-git\build_windows_Release_x64_vc16_Release\CMakeFiles\eac3836865cb0ac6009396dcfa7b6146\cycles_kernel_hiprt.rule;D:\blender-git\blender\intern\cycles\kernel\CMakeLists.txt' exited with code 1.

7>Done building project "cycles_kernel_hiprt.vcxproj" -- FAILED.

10>------ Build started: Project: buildinfoobj, Configuration: Release x64 ------

11>------ Build started: Project: blender, Configuration: Release x64 ------

10>buildinfo.c

10>buildinfoobj.vcxproj -> D:\blender-git\build_windows_Release_x64_vc16_Release\source\creator\buildinfoobj.dir\Release\buildinfoobj.lib

11>buildinfo.c

11> Creating library D:/blender-git/build_windows_Release_x64_vc16_Release/bin/Release/blender.lib and object D:/blender-git/build_windows_Release_x64_vc16_Release/bin/Release/blender.exp

11>blender.vcxproj -> D:\blender-git\build_windows_Release_x64_vc16_Release\bin\Release\blender.exe

6>Generating kernel_gfx1011.fatbin

6>Generating kernel_gfx1012.fatbin

6>Generating kernel_gfx1030.fatbin

6>Generating kernel_gfx1031.fatbin

6>Generating kernel_gfx1032.fatbin

6>Generating kernel_gfx1034.fatbin

6>Generating kernel_gfx1035.fatbin

6>Generating kernel_gfx1036.fatbin

6>Generating kernel_gfx1100.fatbin

6>Generating kernel_gfx1101.fatbin

6>Generating kernel_gfx1102.fatbin

6>Generating kernel_gfx1103.fatbin

6>Generating kernel_gfx1150.fatbin

6>clang : error : invalid target ID 'gfx1150'; format is a processor name followed by an optional colon-delimited list of features followed by an enable/disable sign (e.g., 'gfx908:sramecc+:xnack-')

6>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(241,5): error MSB8066: Custom build for 'D:\blender-git\build_windows_Release_x64_vc16_Release\CMakeFiles\98e5968de61a8555289b68cc52130f40\kernel_gfx1010.fatbin.rule;D:\blender-git\build_windows_Release_x64_vc16_Release\CMakeFiles\98e5968de61a8555289b68cc52130f40\kernel_gfx1010.fatbin.zst.rule;D:\blender-git\build_windows_Release_x64_vc16_Release\CMakeFiles\98e5968de61a8555289b68cc52130f40\kernel_gfx1011.fatbin.rule;D:\blender-git\build_windows_Release_x64_vc16_Release\CMakeFiles\98e5968de61a8555289b68cc52130f40\kernel_gfx1011.fatbin.zst.rule;D:\blender-git\build_windows_Release_x64_vc16_Release\CMakeFiles\98e5968de61a8555289b68cc52130f40\kernel_gfx1012.fatbin.rule;D:\blender-git\build_windows_Release_x64_vc16_Release\CMakeFiles\98e5968de61a8555289b68cc52130f40\kernel_gfx1012.fatbin.zst.rule;D:\blender-git\build_windows_Release_x64_vc16_Release\CMakeFiles\98e5968de61a8555289b68cc52130f40\kernel_gfx1030.fatbin.rule;D:\blender-git\build_windows_Release_x64_vc16_Release\CMakeFiles\98e5968de61a8555289b68cc52130f40\kernel_gfx1030.fatbin.zst.rule;D:\blender-git\build_windows_Release_x64_vc16_Release\CMakeFiles\98e5968de61a8555289b68cc52130f40\kernel_gfx1031.fatbin.rule;D:\blender-git\build_windows_Release_x64_vc16_Release\CMakeFiles\98e5968de61a8555289b68cc52130f40\kernel_gfx1031.fatbin.zst.rule;D:\blender-git\build_windows_Release_x64_vc16_Release\CMakeFiles\98e5968de61a8555289b68cc52130f40\kernel_gfx1032.fatbin.rule;D:\blender-git\build_windows_Release_x64_vc16_Release\CMakeFiles\98e5968de61a8555289b68cc52130f40\kernel_gfx1032.fatbin.zst.rule;D:\blender-git\build_windows_Release_x64_vc16_Release\CMakeFiles\98e5968de61a8555289b68cc52130f40\kernel_gfx1034.fatbin.rule;D:\blender-git\build_windows_Release_x64_vc16_Release\CMakeFiles\98e5968de61a8555289b68cc52130f40\kernel_gfx1034.fatbin.zst.rule;D:\blender-git\build_windows_Release_x64_vc16_Release\CMakeFiles\98e5968de61a8555289b68cc52130f40\kernel_gfx1035.fatbin.rule;D:\blender-git\build_windows_Release_x64_vc16_Release\CMakeFiles\98e5968de61a8555289b68cc52130f40\kernel_gfx1035.fatbin.zst.rule;D:\blender-git\build_windows_Release_x64_vc16_Release\CMakeFiles\98e5968de61a8555289b68cc52130f40\kernel_gfx1036.fatbin.rule;D:\blender-git\build_windows_Release_x64_vc16_Release\CMakeFiles\98e5968de61a8555289b68cc52130f40\kernel_gfx1036.fatbin.zst.rule;D:\blender-git\build_windows_Release_x64_vc16_Release\CMakeFiles\98e5968de61a8555289b68cc52130f40\kernel_gfx1100.fatbin.rule;D:\blender-git\build_windows_Release_x64_vc16_Release\CMakeFiles\98e5968de61a8555289b68cc52130f40\kernel_gfx1100.fatbin.zst.rule;D:\blender-git\build_windows_Release_x64_vc16_Release\CMakeFiles\98e5968de61a8555289b68cc52130f40\kernel_gfx1101.fatbin.rule;D:\blender-git\build_windows_Release_x64_vc16_Release\CMakeFiles\98e5968de61a8555289b68cc52130f40\kernel_gfx1101.fatbin.zst.rule;D:\blender-git\build_windows_Release_x64_vc16_Release\CMakeFiles\98e5968de61a8555289b68cc52130f40\kernel_gfx1102.fatbin.rule;D:\blender-git\build_windows_Release_x64_vc16_Release\CMakeFiles\98e5968de61a8555289b68cc52130f40\kernel_gfx1102.fatbin.zst.rule;D:\blender-git\build_windows_Release_x64_vc16_Release\CMakeFiles\98e5968de61a8555289b68cc52130f40\kernel_gfx1103.fatbin.rule;D:\blender-git\build_windows_Release_x64_vc16_Release\CMakeFiles\98e5968de61a8555289b68cc52130f40\kernel_gfx1103.fatbin.zst.rule;D:\blender-git\build_windows_Release_x64_vc16_Release\CMakeFiles\98e5968de61a8555289b68cc52130f40\kernel_gfx1150.fatbin.rule;D:\blender-git\build_windows_Release_x64_vc16_Release\CMakeFiles\98e5968de61a8555289b68cc52130f40\kernel_gfx1150.fatbin.zst.rule;D:\blender-git\build_windows_Release_x64_vc16_Release\CMakeFiles\98e5968de61a8555289b68cc52130f40\kernel_gfx1151.fatbin.rule;D:\blender-git\build_windows_Release_x64_vc16_Release\CMakeFiles\98e5968de61a8555289b68cc52130f40\kernel_gfx1151.fatbin.zst.rule;D:\blender-git\build_windows_Release_x64_vc16_Release\CMakeFiles\98e5968de61a8555289b68cc52130f40\kernel_gfx900.fatbin.rule;D:\blender-git\build_windows_Release_x64_vc16_Release\CMakeFiles\98e5968de61a8555289b68cc52130f40\kernel_gfx900.fatbin.zst.rule;D:\blender-git\build_windows_Release_x64_vc16_Release\CMakeFiles\98e5968de61a8555289b68cc52130f40\kernel_gfx902.fatbin.rule;D:\blender-git\build_windows_Release_x64_vc16_Release\CMakeFiles\98e5968de61a8555289b68cc52130f40\kernel_gfx902.fatbin.zst.rule;D:\blender-git\build_windows_Release_x64_vc16_Release\CMakeFiles\98e5968de61a8555289b68cc52130f40\kernel_gfx90c.fatbin.rule;D:\blender-git\build_windows_Release_x64_vc16_Release\CMakeFiles\98e5968de61a8555289b68cc52130f40\kernel_gfx90c.fatbin.zst.rule;D:\blender-git\build_windows_Release_x64_vc16_Release\CMakeFiles\eac3836865cb0ac6009396dcfa7b6146\cycles_kernel_hip.rule;D:\blender-git\blender\intern\cycles\kernel\CMakeLists.txt' exited with code 1.

6>Done building project "cycles_kernel_hip.vcxproj" -- FAILED.

12>------ Build started: Project: ALL_BUILD, Configuration: Release x64 ------

12>Building Custom Rule D:/blender-git/blender/CMakeLists.txt

13>------ Build started: Project: INSTALL, Configuration: Release x64 ------

13>1>

13>-- Install configuration: "Release"

13>-- Installing: D:/blender-git/build_windows_Release_x64_vc16_Release/bin/Release/./blender.pdb

13>CMake Error at source/creator/cmake_install.cmake:858 (file):

13> file INSTALL cannot find

13> "D:/blender-git/build_windows_Release_x64_vc16_Release/intern/cycles/kernel/kernel_gfx900.fatbin.zst":

13> No error.

13>Call Stack (most recent call first):

13> cmake_install.cmake:105 (include)

13>

13>

13>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: The command "setlocal

13>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: "C:\Program Files\CMake\bin\cmake.exe" -DBUILD_TYPE=Release -P cmake_install.cmake

13>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: if %errorlevel% neq 0 goto :cmEnd

13>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: :cmEnd

13>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone

13>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: :cmErrorLevel

13>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: exit /b %1

13>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: :cmDone

13>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: if %errorlevel% neq 0 goto :VCEnd

13>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(155,5): error MSB3073: :VCEnd" exited with code 1.

13>Done building project "INSTALL.vcxproj" -- FAILED.

========== Build: 10 succeeded, 3 failed, 165 up-to-date, 0 skipped ==========
1 Like

Builds for 4.2.0 are up, everything is the same with a couple changes to pie menu stuff. I removed the customization of the drag select pie operator, just kinda standardized everything to fit within the 8 possible slices. In addition to that there is a new operator that let’s you make your own pie menu, using any operator you want.

Edit → Preferences → Keymap. Add a new keymap for whatever context you want, for pie.custom. If you want to have the same shortcut do different things, you can make a keymap for the window context which will run basically anywhere, and then another keymap for box select. If you use the same shortcut for both, you can have a generic pie menu for when you aren’t using box select, and then if you are using box select the same shortcut would open a different pie menu tailored for that purpose. Using the different keymap contexts like that makes it as dialed in as you need without needing separate shortcuts for everything.

Perform whatever action you want to assign to a pie menu slice, and then go to the scripting tab. In the lower left you’ll see the python console. Whenever you do something, it will print a bunch of text for the operator you called. Copy this, and paste it into the Left, Right, etc textbox in the keymap.


Give it a name if you want, and an icon. You don’t have to do either thing, but you probably want at least one or the other. You’ll want to install the icon viewer addon if you want icons. It isn’t as easy as it used to be, but that’s just what the dev team decided to do with addons for this version. I imagine the bundled addons like icon viewer will be easier in the future, but who knows.

It isn’t much, but you do need to know where these addons are located now. I didn’t know, so I imagine most people don’t. Wasn’t hard for me to find them, but everybody is different when it comes to this type of thing. A lot of people are just going to wonder why they aren’t just in the addons tab of userprefs, where they used to be.

Anyways, the icon viewer is here:
\4.2\scripts\addons
and it is called:
development_icon_get.py

Go to preferences → addons. See that tiny little arrow in the top right? Click that, and then click install from disk. Navigate to the location of the addon you want, and click install from disk.


Now you can go back to the scripting tab, and in the mid-left you’ll see two new buttons, the usual icon viewer, and a toolbar icon viewer that I’ve created.


If you just want one of the little icons, open the icon viewer, click the icon you want, and copy the name in the top-right. Then just paste that icon’s name into the appropriate icon textbox in the keymap.



Now we have a custom pie menu that will scale whatever object. It has a name and an icon. Keep in mind, the long string of text that you copied from the python console holds everything exactly as you did it, so if you want something different, either perform the action how you want, or just edit the operator properties you copied. I suggest using a text editor and having a look at all that stuff, and changing it to your liking.

If you want one of the bigger icons that you see in the toolbar, use my toolbar icon viewer.

It’s a little different, but basically the same. It’s a floating window, with the name textbox in the upper left, and a section filter in the upper right. Click the icon you want, and then copy the name from the name textbox. Then just paste it into the keymap.

Now we have a custom pie menu with 2 things in it. You don’t need to fill these pie slices in order. If you want just up and down, or whatever else, it will work fine.

If you want to have a pie slice with multiple operators in it, you can do that too. Just split each thing (operator, name, icon) with a double-semicolon. ;;

You can leave some or all of the names / icons for these multioperator pie slices blank. Keep in mind though, if one of them has a name/icon you need to split the ones you intend to keep blank. If you don’t do this, the system console will print you a warning about which pie slice is messed up and how many of each operator/name/icon it is seeing, so you can easilly fix it by adding/removing the ;; where needed.

Early days still for this feature, but I think this is pretty good already, will make a video for it later. Over time, I’ll add more and more purpose-built / premade menu’s for you. They’ll be sitting there to use as-is, or for you to use as a template. All kinds of crazy stuff is possble when you can call a pie menu from a pie menu. If you’ve ever used the hotbox (does that still exist in Maya? It’s been about a decade for me) you can have a pie menu version of that if you were so inclined.

From this point forward, this custom build is no longer free. Not even the windows build will fit inside the size limit on gumroad, so I have to make it cost something. And if I’m going to charge money, I’m going to charge a reasonable price. $9.99 is pretty good, considering what it does. If you already “own” this addon, whether you entered a price or not, you don’t need to worry about this. But any newcomers will have a one time price to pay.

Also, lazydodo has helped me yet again in chat with the cycles thing I was dealing with. I’d at him here, but I’d rather not bug him just to say thanks. He gave me the best non-coding advice I’ve gotten so far, which is saying a lot. I had no idea, but you don’t even need to compile cycles. You can just copy the libs for the correct version. SO much time saved working out every little stupid thing wrong with git and AMD/Nvidia/Intel for both Windows and Linux. Nevermind the extra hour or so of compile time for each. So cool.

I wont be adding any new stuff until I do some youtube videos for this build. Both tutorial / walkthrough stuff and some promo’s to post around. I’ve been wanting to do this for like 6 months now, but stuff happens, and this build has been improving a lot in some substantial ways that made the creation of tutorial videos a bit pointless since I knew the build would be different enough to obsolete them anyways. So, after a week or two I’ll hopefully have found the time to do all that, we’ll see.

VERY IMPORTANT
I also noticed something earlier tonight. When I downloaded the Linux version of this build using Microsoft Edge it thought it was a trojan and windows defender blocked it:

I don’t really need to tell you this is a false positive, but it’s better if I put this out there rather than assume nobody comes across it. Didn’t happen for any of the other builds, including the windows one, which is kinda hilarious. Who knows why, Linux predjudice or something :stuck_out_tongue:

Anyways, firefox doesn’t care, and neither does windows defender when actually extracting and using it (the windows one). If I can go through the process of extracting the Linux version, and use the Windows one, I don’t know why the Edge browser flags this and has windows defender block it. Nevermind the part where I uploaded it with Edge. Just an fyi sort of thing.

3 Likes

Thanks for the 4.2 build. That new custom pie menu tool is really powerful.
I was wondering if it’s possible to put the facedots priority toggle into the pie menu somehow?
ff
From testing I noticed that it’s something I would like to toggle occasionally while modeling. Not very often probably, but going into preferences is a bit too cumbersome. But a custom pie menu would be a perfect place for it.

Also, I tried to recreate Blender’s default selection pie menu (Alt+W), but it’s more complicated than I thought. It can switch between different selection tools (Box/Circle/Lasso) if you are already using selection tool. But if you are using a transform tool, then it only changes the selection fallback mode, so there is some context sensitive behaviour. If I just copy python commands into my custom pie menu, then I can only make it change selection fallback mode or switch to the selection tool, but not both. Do you know what python command I should use to get this more advanced behaviour?

I’ll add facedot visibility to the drag pie menu. To make it fit within 8 pie slices, I will combine the tool stuff that you find in the Alt-W menu into one multi-op slice. I will probably keep square select separate from them because it’s something that affects anything that can use modal circle select, so it doesn’t care what tool is currently in use.

I ran into the same thing with the tool switcher pie buttons. I have to look into it some more, because I didn’t know this was a problem until right now. It was easier to make my own python operator than go digging around to see what it is doing to work contextually, where it will change either the tool itself, or the fallback tool.

I thought it would work if you added these custom operators I made to a custom pie menu. But nothing happens. They work if I put them in the header, or call them from my hard-coded drag pie menu I made, but not from my custom pie menu creator. No python console stuff is printed either, regardless of whether the operator does it thing or not. I think it has something to do with Blender doing everything with one operator:
bpy.ops.wm.tool_set_by_id

If you want to see what they are, you can find them here:
4.2\scripts\startup\bl_operators\view3d.py

class VIEW3D_OT_circle_select(bpy.types.Operator):
  """Switch to circle select"""
  bl_idname = "view3d.circle_select"
  bl_label = "Circle"

  def invoke(self, context, event):
    from bl_ui.space_toolsystem_common import ToolSelectPanelHelper
    tool = ToolSelectPanelHelper.tool_active_from_context(context)
    tool_settings = context.tool_settings

    for i in range(2):
        if tool.idname == "builtin.select_box" or tool.idname == "builtin.select_lasso" or tool.idname == "builtin.select":
            bpy.ops.wm.tool_set_by_id(name="builtin.select_circle", space_type='VIEW_3D')
        elif tool_settings.workspace_tool_type == 'FALLBACK':
            bpy.ops.wm.tool_set_by_id(name="builtin.select_circle", as_fallback=True, space_type='VIEW_3D')
        else:
            bpy.ops.wm.tool_set_by_id(name="builtin.select_circle", space_type='VIEW_3D')

    return {'FINISHED'}

I am having it run more than once (for i in range(2):) because for whatever reason it was necessary for the header and pie menu to update / redraw their icons like they should.

So yeah, Blender’s pie menu is half baked. Not user friendly at all, and not me friendly either. It’s like a lot of things. It works if you hard code it like I did for the drag pie thing I made, but good luck figuring anything out by using Blender by itself. It is supposed to be something that anybody can just use by clicking stuff inside of Blender. Flexible, no coding bs, and nothing convoluted like I’m doing in the keymap or what I’ve seen in a thread for a pie menu addon. From what I’ve seen, this thing is no longer being maintained and there’s one user keeping it afloat. I might have to buy it just to see if it is doing something different that I would like to add to my build.

I won’t resort to buying that addon just for coding tips unless I absolutely have to, because that thing would cost almost as much as I’ve gotten in donations for this build (after gumroad’s cut). Speaking of which, I need to make some videos to promote this thing. I don’t exactly have high hopes, but I have to try. I don’t get why this build got zero traction, even when it was free, but it is what it is. Maybe the $9.99 is somehow a positive in that respect. I’ll need a few more weeks to get some promo and tutorial videos made. Need to find the time somewhere, even if motivation is kinda low because doing salespitchy stuff is awkward for me.

You mean facedot priority?
And, yes, some less frequently used options should be combined together, so that everything can fit in one menu. I would just recommend to keep the button layout consistent. Right now it’s quite confusing when buttons change depending on which selection mode you’re in.

Also it looks like facedots are disabled for wireframe mode by default? I think it would be better to have them on by default to match standard Blender configuration.

I’m not sure either. Maybe people are less likely to try it out because it’s a custom build instead of an add-on. Also others might be scared off by apparent complexity in the settings. Don’t get me wrong, I think that deep customization this build offers is great, but at first it can be overwhelming. Maybe if you would set up the build to have some basic functionality out of the box and make a short video to show how it works, it would help.

Yeah, facedot priority is what I mean.

I’ll think of something for the drag select menu. What is less used is going to be different for people, so it will probably be a handful of different layouts to choose from.

Custom pie menu needs to be looked at. If nothing else, I will just hard code a bunch of stuff that can be clicked on to either directly assign, or at least get a pastable string for the keymap the way it is now, for the standard Blender operators and properties. Stuff that comes from addons or your own python scripts will probably be doable in a different way. Need to set aside some time for it, lower priority for this build, which itself isn’t exactly high on the list.

Yeah, need to make some videos. After I get the pie menu stuff good enough so I can at least show them without redoing the video later.

Facedot visibility / selection, or anything else in this build, should be the same as default Blender. It’s probably your user settings / startup file. If you want, you can rename or backup your settings folder and check it again. If something is still different from regular Blender, let me know.

Those Blender defaults are preserved because this build does a lot of different things, and has a lot of options for each of them in most cases. Nobody will be using all of them, and beyond that, they’ll configure them differently. I have some presets for selection to give a starting point. If anybody has ideas for different presets, they can share them and I’ll add it to the list. Other than those, I could add some header layout presets as well, but they aren’t that important or complicated.

There’s something weird going on with facedots in this build. If I do a factory reset then they are on by default in wireframe mode, but if I use my custom config, then they are off. Even though in standard Blender they are on by default, and there’s no setting in preferences that would turn them off.
Looks like I can fix that by saving a new startup file, but still, maybe that’s something worth looking into.

I just wanted you to confirm the defaults are the way I made them is all. Facedot visibility is in the header where it is found as usual. Its an operator instead of a property checkbox.

It’s an operator because there are 2 facedots. One for X-ray and another for solid shading. With an operator, I can give you options for this. Either toggle both, or only the currently active mode. Settings for this are in my area of userprefs.

Yeah, I know that it’s possible to toggle the facedots for each shading mode separately, and that’s all good. It’s just weird that they are off by default in x-ray mode for me, even though you said that shouldn’t be the case.

You mentioned not seeing a setting for it, so I wanted to make sure you know that you can change things the way you want without losing your startup file. To make defaults, I have to make their default state the “false” state, because your startup file is coming from a version of Blender that doesn’t know these new properties exist.

I’ll just flip facedots, and anything else that is still hanging around, where their “false” state is their default. I was pretty sure the way I have facedots was working ok in previous versions, but who knows. It will make things easier for me anyway, less potential conflicts I have to manually merge later when updating to new Blender versions. The more lines I add to different files, like setting default values, the less likely something new has been added in between where I put it, or some variable has been renamed by the devs for some annoying reason, and the DIFF merge gives me more work to do.

The only reason I have x-ray facedots this way was to conform with Blender. That way it was more likely to be accepted as a PR. Nobody really paid the things I did any mind, so it doesn’t matter anymore. Not that this whole thing was a single PR, everything was split into individual features over several PR’s. Their priorities to fix some dealbreaker, super basic, everyday, used all the time, features like selection of objects and mesh elements, are mind mindbogglingly low. Like sub-zero care about it. I should not be the person submitting PR to fix that type of thing. They should, and could easilly, have done it themselves years ago. But whatever, I’m sure there’s some grand plan, or a sense of, “Selection is fine, it is the users who are wrong.”

At the same time, the user response to this custom build was pretty lukewarm, if that. I’ll have one last try at promoting it after I update the gumroad page and make some videos. Going to be a couple months I think, just to account for any non-Blender stuff getting in the way of my free time to work on it. Hopefully when I’m done I can get a little help from the handful of users I got to give me a rating on gumroad, and some likes on youtube or something. Doubt it will matter, but you never know.

Also, I want to make it clear that I’m not going to stop updating this build or anything. I use it myself. It’s just a situation where I cannot justify spending time on new features when there is a userbase in the double digits. To say that it is a little deflating, is an understatement. But at least I have something useful out of the experience, and other things I am interested in creating, using it.

Have you tried getting the build in front of the eyes of some Blender youtubers like askNK who could amplify it?

https://www.youtube.com/@askNK

Thanks, I’ll try that after I get my promo and tutorial videos done.

A little over a year ago I searched through youtube for active blender channels. Emailed around 100 of them. Got 2 email replies, along the lines of “Hey looks cool.” About what I expected. An email from rando isn’t likely to be read by most people.

At the time the build was free, and available from the blender website under experimental version downloads. Back then, I was merely trying to get some more feedback about how to proceed, and what to do with a design document, and then a PR for submission to Blender. Now I am some goofball salesman, with my hand out for $9.99. It’s hard to sell anything, especially to the FOSS community. It’s more than worth the price, and there’s lots of $ addons out there with what looks like decent numbers.

The lack of success is one of three things. Either people don’t know about my build, don’t care about what it does, or they don’t like how it’s a custom build. That’s life, take it or leave it. Python at runtime doesn’t have access to everything, so with selection in particular, it needs to rewrite the wheel into an octagon, so it’s janky and slow. Other cases, runtime changes can’t do anything at all.

Nobody cares about those details, they just want something that works and costs no money. I’m offering about half of that, because there’s always something a little off here and there. Nothing new for regular Blender. All this build really does, is close some gaps in the official release while offering several options for how you want to close them.

2 Likes

Alright I figured out the things I wanted to do for my custom pie operator without having to buy that addon to see what it does.

First thing was operators weren’t getting added to the undo list / queue. Not being able to undo an operator called directly from the pie menu is pretty lame. Fortunately it’s easy to fix, you just have to add bl_options = {'UNDO'} to it:

Second was my operators for switching between selection tools not doing anything when added to my custom pie menu. That was specific to the operators I made, not the way my custom pie operator works. Just a trial and error thing to fix that. Instead of def invoke I switched them to def execute and they are fine now. Still have to be called twice to make the header redraw itself correctly, doesn’t make sense.

Will do some sort of layout customization for the drag select pie operator, but since the custom pie operator is working fine, it’s not that big of a deal. I made the drag select pie context sensitive, so it is a little more useful than what you could accomplish with the the custom pie menu by itself. I’ll either do a handful of different layouts that you can choose from a dropdown in the keymap, or make it where each pie slice has a drag select item you can choose for them.

I’ll think about making it easier to assign operators to the custom pie operator. Some kind of lookup for known operators with all of their properties would be ideal, not sure if that’s easilly done. That way it doesn’t break or need to be updated whenever they change a name or add something new. There’s a list somewhere that can be looked at during runtime, otherwise you couldn’t search for them in the keymap. Most likely thing is it’s enough of a pain that I leave the custom pie operator as-is, where you paste a string into the keymap. It works fine. If there’s meaningful interest or a rainy enough day, I’ll get back into it later.

Hello, I bought your build. But there is some confusion on my part, I already have my build and only need the modes to choose from your build. Is there any way to add it as an addon?

1 Like

Thanks for your support!

That screenshot looks like an older version, I’ve made some changes since then, with a few more on the way in a few weeks for Blender 4.3. Download the version of my build for your operating system, and pick a spot on your computer to extract it. This is a custom build that works like a portable install of Blender, you just extract it somewhere and run it.

After my custom build for 4.3 is done and I redo some tutorial / promo videos I’ll look into making an addon as an alternative. It would be noticeably slower than the custom build version, but I’ll offer it as an alternative in later versions of this build.

To see how the newer version works, have a look through this post:

Keep in mind that post isn’t up to date either, keymap controls have been removed since then, but it is a pretty good idea how this will build will work going forward.

Hey, I just wanted to ask if you’re still planning to update your build to Blender 4.3? It has some nice new features that would make it worth upgrading, but losing auto x-ray and directional selection would suck :grimacing:

Sorry for the delay, a few stupid things around the house and holiday stuff got in the way. End of next week I’ll at least get what I’ve done uploaded.

I changed a few things with the pie menu stuff, wanted to expand it to other areas of Blender and include it as an addon with this build. For now I’ll just keep it to the drag select pie stuff I do with this custom build, and then add to a pie menu addon as I finish different parts of it.

2 Likes

Ok, good to know.
And an addon seems like a much more convenient option than a custom build, if you could add main features to it.