Hot answers tagged

6

You need to set a Redo Panel. In this tutorial Sybren shows how to create an operator with a redo panel (at 8:17 he starts talking about it) At 13:38 he talks exactly about what you need. Basicly you need to add: bl_options = {'REGISTER','UNDO'} after your bl_description.


5

Ditch your operator and use the one designed for this. As a suggestion, add imports and register etc to question code, to make a minimal run-able example. This would only be a couple of lines and is appreciated by those answering not to have to do this themselves. (It adds up) There is no need to re-invent the wheel and write a new nested operator to reset ...


4

All the math node operations Note: this doesn't answer how to put your operators into the search, rather is intended to offer another way to have same functionality in a far more easily extendable way From one look at the question code instantly has me quoting Foghorn Leghorn No, no, no your're doing it all wrong No menus one operator Have taken code ...


4

If you want to affect color globally, through a variable accessible in the color management controls, you need to create LUTs (Look Up Table), that will allow you to convert values of pixels in an image into other values. Creating LUTs has to be done in a different program, Blender has no tools for this. There are many Lut creation programs available online, ...


4

1st - Original / 2nd - Un-Subdivide 2 / 3rd + Delete Disolve Edge (manually selected loops) But as Robin Betts answer - separate profile curvature and use Screw modifier choice.


4

I don't know if you have a reason to make your loops exactly equidistant, if so, I've missed, with this one.. This is really to reduce geometry, while preserving curvature. Enable the shipped Add-on 'Simplify Curves' and.. Select, duplicate, and make a new object of one vertical half-loop from your cone (BTW, straighten it out in your chosen plane, and make ...


3

Making a grid of holes. 1. start with some random shape 2. Make a hole object: Make sure it goes all the way through your shape and is the size you want your holes to be. 3. Give it 2 array modifiers to make a 2d grid of cylinders: Adjust the values to control how far apart the holes are Add a boolean on the base object with the cylinder as the target, ...


2

Yes true. That addon is not that necessary. Mostly all of addons doesn't make sense if we think that it can be done manually. But, add-ons are created with the soul purpose of making things easier than it is. If your render farm do not support the addons than it's up to you weather you want to use it or not.


2

Spelling Error Quite likely the property fails to register because it has no idea what discrription is. (Most likely you are alerted to this error when trying to register the operator class) Coding is about attention to detail. Recommend for blender coding questions here, adding minimal, but runable, code to your question eg the register code for above. ...


2

A work-around, suggested by David McSween, is to add a color strip beneath the strip you want to color and group them together (Ctrl+G). That way, you'll see a small colored bar within the strip. Because the color strip is underneath and by default replaced with the original strip, nothing will change in the viewport. The code above seems to come from a ...


2

The solution I've found was to to override the context.node call. The way I did it was by creating a dictionary with 'node' as the key and the node as the item, e.g. override = {'node': bpy.data.node_groups[node_group_name].nodes['node_name']} The operator can then be run with bpy.ops.node.ligexport(override, 'INVOKE_DEFAULT']).


1

Please see the included add-ons that come with Blender as examples. If you are on Windows, that will most likely be C:\Program Files\Blender Foundation\Blender [version number]\[version number]\scripts\addons\ If you go to any of the folders there, you will see what would be in the zip file if it was a zipped addon: The main addon file is __init__.py, you ...


1

Is ScreenCastKeys (from github you can get it, but there is other versions, but that's the name "ScreenCastKeys" there is a compatible version for 2.9, but I don't know if its ready for 2.91)


1

Use a pointer property with a poll. To distinguish a regular material from one for a gp object there is the handy attribute Material.is_grease_pencil Similarly to https://blender.stackexchange.com/a/159155/15543 and using a poll method https://blender.stackexchange.com/a/101303/15543 Will narrow down the selection based and offer the same choices as the ...


1

https://blendermarket.com/products/boxcutter Once purchased, Follow the guide to install into blender. Boxcutter is a paid addon and cant be installed from the default addon directory. Manual: https://boxcutter-manual.readthedocs.io/en/latest/


1

self.node is set in invoke. THe operator is designed to be invoked by pressing its button displayed on its node. The operator defines self.node = context.node in its invoke method, and uses self.node in its execute method, and will hence not work unless invoked. bpy.ops.foo.bar(override, 'INVOKE_DEFAULT', filepath=somefilepath) IMO the simple fix is to ...


1

Solved with the help of CGDive! https://blender.stackexchange.com/users/25308/cgdive The generated rig tries to correct the roll automatically by default, but this can be overwritten by selecting each upper_arm bone and in Bone Properties > Rigify Type > Rotation Axis selecting the rotation axis manually. If you have copied the roll orientations from ...


1

If you don't need to write out default value, just use items() like dictionary. Unless you assign it, Blender will not create an entry for them. import bpy import json data = [ prop.items() for prop in bpy.context.scene.favit ] print(json.dumps(data)) # save this string to json file output: [[["index", 1], ["label", "...


1

Here is an updated answer built on previosly accepted answer. Since 2.79, you can use bpy.props.PointerProperty to store references to blender data blocks. You can then use prop instead of prop_search for selection box. prop_search is still useful if you want selection from specific collection. This solves the problem with modifying the object. If you for ...


1

Use EnumProperty callback: Property Definitions (bpy.props) — Blender Python API Basically blender will call the function in following way: list_tuple_callback(scene, context) The return of your function should look similar with the original item List[(identifier, name, description, icon, number), ...].


1

Current version of HardOps (00986_MercuryX_24) works with Blender 2.9. You might have to restart Blender before it starts working.


1

Honestly, I have downloaded SSGI add-on yesterday to use it for a project I work on and immediately removed it after some time playing around. I personally didn't like it but if you get what you want with it, keep it.Addons like this are not that Necessary because Addons do not implementing some new functionality, they are just taking 10 steps inside blender ...


Only top voted, non community-wiki answers of a minimum length are eligible