Sculpt/Paint/Edit Workflow Suite (New: Brush Quickset fixed for 2.83!)

I totally understand. It’s be great if you’d start a new version. Personally, I only use Brush Quickset. Couldn’t live without that anymore. :+1::+1:

Yeah, I think it’s the most popular. If I made a new version, what features would you want it to have? Do you have any ideas?

I’m thinking retain the minimalist gestures, but when you tap the key it could pop open a menu of common UI stuff that would be helpful to have quick access to during full screen sculpting. What exactly that would contain, I have no idea anymore, as I haven’t sculpted in years.

1 Like

It would great if you could adjust the Smooth strength separately, for example if you hold Shift while adjusting the strength. Thanks!

1 Like

I used blender 2.79 and brush shortcuts were important for me but blender 2.9 deleted the option so I heavily rely on your Brush Select By Name add-on now. Thank you.

And I have questions. Texture Paint view and Image Editor view uses same shortcuts but your Brush Select By Name add-on is activated only in Texture Paint view. I switch back and forth between those 3D and 2D image editors. Is it possible to use your add-on in 2D Image Editor view too?

And about Brush changing sequence.
I always use 2 types of brushes, one with antialiasing, and one with no-antialiasing.
I assigned F key to those 2 brushes but I want to do like
If I press F,current tool goes to Brush A, and If I go to other tool and press F again it goes back to Brush A. If I press F again while Brush A is activated,it goes to Brush B and If I go to other tool again and press F it goes back to Brush B and I go to other tool and press F, current tool goes to Brush B.Is it possible?

Hey quick set is not working in the current version of blender 2.93

Python: Traceback (most recent call last):
  File "C:\Users\USER\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\brush_quickset.py", line 407, in modal
    if not self.doingstr and abs(self.cur[0] - self.start[0]) > self.deadzone:
TypeError: '>' not supported between instances of 'int' and '_PropertyDeferred'

location: <unknown location>:-1


This is the error im currently getting.
thanks in advanced.

1 Like

I’ve also noticed this. Hope it can be fixed soon, @jynell, many thanks in advance. Using Blender’s native right-click Sculpt Mode brush menu for now, which is less convenient.

Maybe the cause of the issue is the Blender 2.93 Python version update?

1 Like

Any update? I’m actually dying with out this addon never knew how much i relied on it.

Hi! Sorry, I have been busy and totally missed these emails. I will try to take a look at the script today after work, around 6-7PST. Thanks for keeping me informed and sorry again for being silent on this!

2 Likes

Thanks for the hard work man and NP, life comes first :slight_smile:

1 Like

Hi @jynell ,

Sorry to bother you again, but I really miss Brush Quickset. It’s an invaluable tool for sculpting in Blender.

Many thanks in advance for having a look at it for 2.93 (alpha).

Hi @Metin_Seven! Thank you for your reminder post. I have been very busy and unable to take a look at this. I happened to have some time today, so I took a look.

A lot of addons are breaking with 2.93 alpha. It seems they are removing bpy.props, which is the system this addon uses to provide customization and other settings. I can’t make sense of the scraps of information I have found regarding this:

The intermediate representation of bpy.props, typically defined in a classes annotations before registration is now using a new type bpy.props._PropertyDeferred. While this is not considered part of the stable API, some scripts depended on this (c44c611c6d)

(from here: https://wiki.blender.org/wiki/Reference/Release_Notes/2.93/Python_API)

I’ve searched for a while now, but haven’t found anything regarding porting addons to the 2.93 alpha. All I see is, in the Templates section of the 2.93 script editor, a class property is defined with a different syntax. I tried that, but several of the properties I was setting via bpy.props were not defined when using that syntax–and there is no API documentation for 2.93, so I cannot look up what the correct syntax is.

As such I must say that this version (Blender 2.93 alpha) is not something I am able to support until some reasonable documentation for the changes to the Python API are provided provided, which (I expect) will likely not happen until a stable build is made.

Once that happens, if the changes to the API are significant, I may finally feel motivated to rewrite this addon mostly-entirely, as the code is pretty gnarly. I do not find it pleasant to maintain. :slight_smile:

1 Like

Thanks for your response. I understand. I do know that a lot of Blender add-ons are broken in 2.93 Alpha because Blender switched to a new Python version.

I the mean time I’m getting used to using the default RMB menu for brush controls, so it’s no problem for me.

Hi, I solved the 2.93 property definition problem in my addons changing the = with :
not working → mod = bpy.props.EnumProperty()
working → mod : bpy.props.EnumProperty()

Hope this can help you.

2 Likes

Thanks! Do you mean every instance of ‘=’ should be replaced with ‘:’ in the Python script? With the exception of combinations like ‘==’ and ‘!=’ I assume.

─ Edit: Tried that in the brush_quickset.py script, but it doesn’t work. If you got it to work, could you please share the working .py script? Thanks!

Here i got it working :slight_smile:
brush_quickset.py (20.7 KB)

2 Likes

And thanks soo much for the fix i love this addon!

1 Like

Great, thanks! :+1:

Not every, only for property definition

1 Like

I can’t get brush quickset to work in any of the GP modes… 2.92 or 2.93. Anyone using this in any of the grease pencil modes, sculpt for example?

Works fine in geometry sculpt and other older areas of blender…

======================================

Python: Traceback (most recent call last):
File “C:\Users\jonas\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\brush_quickset.py”, line 407, in modal
if not self.doingstr and abs(self.cur[0] - self.start[0]) > self.deadzone:
TypeError: ‘>’ not supported between instances of ‘int’ and ‘_PropertyDeferred’

location: :-1