text:
How to Remotely Reference Property Group in Registration
It seems to be impossible to remotely reference property groups registered from other scripts. If you try to do:
channels_list: CollectionProperty(type=ChannelsList)

it will NOT work if that property group was registered outside that script. I've tried putting the property group inside a Python class, I've tried using bl_idname, I've tried import statements, nothing works. Import statements don't work because trying to get VSCode or whatever running properly is way too complicated and error prone, so I work out of the text editor. The only way I've found is to put the property group in the same script.
Is there a way to do this, or do I have to copy paste the same Property Group into multiple scripts?
EDIT: For context, the reason I'm upset about this is because my add-on has 32 scripts and about 15-20,000 lines. And I don't want to use VS Code because I can't figure out how to get the dang thing to actually work. There's like 30 steps to setting it up and even if you follow all the instructions perfectly, it still may not work, and if it doesn't you're SOL because it's a hodgepodge of like 20 different softwares and plugins and whatnot.
EDIT: And I've tried stuff like this, and even within the same script it doesn't work. But this is how I'm remotely accessing functions. Just can't get it to work for PropertyGroup.
class PropertyGroups:
    class ChannelsList(PropertyGroup):
        chan: IntProperty()

bpy.ALVA_PropertyGroups = PropertyGroups
PropertyGroupsInstance = PropertyGroups

class GroupData(PropertyGroup):
    name: StringProperty(name="Group Name", default="New Group",
    update=CommonUpdaters.group_name_updater)
    channels_list: CollectionProperty(type=PropertyGroupsInstance.ChannelsList)

And then I try looking for the Property Group in bpy.types and in bpy.props and it's not there. And I'm not smart enough on C++ to look in the source code to figure out where bpy.utils.register_class() actually puts stuff.
EDIT: Someone in a different forum provided this solution:
pg_name = "PyOnePropertyGroup"

property_groups = [cls for cls in bpy.types.PropertyGroup.__subclasses__()]

for PropertyGroupSubClass in property_groups:
    if PropertyGroupSubClass.__name__ == pg_name
        break
else:
    assert False, f"{pg_name} not registered"

bpy.types.Object.py_two_prop = CollectionProperty(type=PropertyGroupSubClass)

Can you talk more about why you want to accomplish this? There might be a good reason you can't do this for memory management reasons, or there might be a workaround or accepted path to get your data where you need it at registration time.

@Jakemoyo Because my add-on has 32 scripts and about 15-20,000 lines. Some of the PropertyGroup classes are needed in multiple scripts. Plus I would really prefer to keep PropertyGroups in a separate script to keep in line with the rest of the organization.

Are you able to show what your file/folder structure looks like? When you say 32 scripts does that mean 32 separate .py files or 32 functions in one huge file? I think this is an issue of how you're organizing your files.

What does VS Code have to do with anything?

@TheLabCat You're not supposed to create addons with tens of thousands of lines of code inside Blender's text editor.

@Jakemoyo Hundreds of functions across 32 separate .py files.

"I think this is an issue of how you're organizing your files." - Negative. My file structure is directly inspired by Blender's own internal file structure. If there's no way to remotely reference PropertyGroups within text editor in CollectionProperty definitions, I take this to the dev forum as feature request. Everything else can be remotely referenced from what I've seen so far.

VS Code isn’t the only IDE out there, though. Kate is a good one, Notepad++ is another, even Python’s built in one IDLE works fine for most lighter use cases. By no means am I suggesting writing an add-on in Blender Text Editor!

VS Code is by far the most common one for Blender and if I can't get that to work, the lesser known ones almost certainly won't be any easier. Plus it needs to be easy for non-developer people to develop the addon, which is why I'm making a secondary add-on just to extend the Text Editor just to help develop the addon.

@socrathien Honestly you need to just reword this question and actually describe what it is you're trying to accomplish. Like why do you need to remotely reference a PropertyGroup before registering? See XY Problem.

@Jakemoyo I'm not asking the wrong question, it seems like I'm just not in the right forum. If you had experience refactoring 20,000 line addons from Text Editor you would know exactly what I was talking about from the first line of my post. Externally referencing stuff from within text editor is a constant headache. But if you're used to much smaller, simpler add-ons, then I understand why you would be confused by the question.

"Like why do you need to remotely reference a PropertyGroup before registering?"
What? No. This is the first line of my post: "It seems to be impossible to remotely reference property groups registered from other scripts." Where did I say "before registering"? For example, one of the primary reasons I'm upset about this aside from organization is because I have nodes, sequencer strips, and objects all referencing the same property group. They used to all have to be registered inside same script. That's really dumb when you have hundreds and hundreds of custom properties to register.

If you would just do what the people trying to help you asked you to do (just show me what your script and file structure looks like) this question would have been answered awhile ago. The point of the comment section is to try to hash out what exactly your issue is, not for you to post paragraphs defending the decisions and disregarding everything everyone is asking you. Because I actually have written my own addons, with hundreds of files, with PropertyGroups registered outside of the scripts, in VSCode. And I'm pretty sure what you're asking is an easy fix.

But I can't just post any old random answer that I have a hunch might be your problem without more info first. Hence, why I come to the comments and ask for more info. But apparently you're the Blender scripting genius and I'm a little easily-confused guy who only writes simple scripts, so maybe you know best.

If you use VS Code, that explains why you're confused by my question. This would be a non-issue if I was in VS Code... My problem is exactly what I stated in the first line of the post. My file structure is of zero importance.

And I'm not just sharing my structure because 1, I can't easily do that since it's currently a 3 page long table inside a Word document and isn't up to date. Because 2, it's utterly irrelevant to this post. All anyone needs to know is that 32 .py's is the reason I wants PG's in a separate script. No one needs to see exactly how my folders are laid out.

And to clarify, my file structure is utterly irrelevant specifically because I am not in VS Code. When you work out of the built-in Text Editor, the file structure doesn't even exist at that point. It has absolutely zero bearing on functionality. It's just a theoretical table in a Word document. And I do have filler .py's in an actual folder system, but that doesn't have any relationship whatsoever to the Blender file. Meaning it's not like in VS Code or an operational add-on where you have to know your file structure for the .file imports. That's not happening here.

Someone provided this solution elsewhere:
pg_name = "PyOnePropertyGroup"
property_groups = [cls for cls in bpy.types.PropertyGroup.subclasses()]
for PropertyGroupSubClass in property_groups:
if PropertyGroupSubClass.name == pg_name
break
else:
assert False, f"{pg_name} not registered"
bpy.types.Object.py_two_prop = CollectionProperty(type=PropertyGroupSubClass)


text:
Marked Sharp Edges are showing in the normal map "UPDATED"
I keep having this problem even know a created a prefect cage mesh .
marked sharp edges showing in the normal map and I tried every thing i know .
I tried with the cage and without it , used different uv maps , deferent baking settings , applied all transforms , used non color image , 32 bit , used 8k image . and same result every time .
can someone please help . thank you . !

here the blend file witch includes the high and low poly and the cage  .
                       *-UPDATE-*

Thank you all for taking the time to look into my problem.
1: So here are the deferens in the normal map and the mesh between shaded smoothe and auto smoothe.
smooth

auto smooth

As you can see, the shaded smooth mesh and normal map do not look professional, and the artifacts appear in the final model.
2: I have already finished the model and textures.

but after some test renders, I find out that I need to redo these areas here compared to the real gun. and I wanted to use another UV map to reduce seams and make texturing easier.

So I know that this is not how the normal map looks; this is how it is supposed to be.
compare The text engravings in the old normal map and the new one
old

new

so I think that there is some problem in the baking it self not the mesh shading , it seems like cycles is not casting enough rays and I notice that the baking is so fast compared to old bakes.
can anyone help please !

I'm not sure to understand, edges marked as sharp are supposed to show on the normal map

I can't tell what's wrong from the normal map image alone, which is never the best way to judge a normal map. To solve the problem, we need to see the low poly, the high poly, the material settings of the high poly, the bake settings, and the material or rendered preview of the low poly using the normal map. Assuming we're talking selected-to-active baking here. Best way to provide this info is with a file. Marking LP edges as sharp is rarely a good idea, that's one of the popular pieces of bad advice floating around on the internet.

baking should be done with the low poly shaded smooth, so it makes sense that sharp edges on the low poly, as Nathan says, is a bad idea.

Select the low poly object (slide), press / for local view.
⭾ Tab, 2, A, $\color{#888}{█0}\color{green}{█}$ right-click, choose "Clear Sharp". ⭾ Tab
Click in the Outliner on the high poly object (slide high) to select it, then ✲ Ctrl$\color{green}{█}\color{#888}{0█}$ left-click on the low-poly object (slide) in the outliner, to add selection and make the latter active.
Disable the Cage, set related settings to defaults except use a slight extrusion of 1 cm:

Create a new image in the Image Texture node, set color space to non-color, disconnect Normal Map node from Principled BSDF to get rid of circular dependency, hit the "Bake" button. When finished, reconnect the normals.

1024×1024 result:

4096×4096 result:

With better UV unwrap (aligning edges horizontally/vertically, reusing UV space) you can get better results using the 1K resolution - compare 1st rib with other ribs below:

Also the thinner your triangles get, and the smaller resolution you use, the more you need to scale them up so they don't share pixels with other geometry. Consider increasing the poly count to improve the shapes of the triangles…

20 triangles above, 30 below

THANK YOU @markus von broady .
I have tried your solution but the problem is not fixed .
PS : I have added more details about the issue if you want to take another look , I would really appreciate it

source: Stack Exchange

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/

sort: votes


text:
Cycles Viewport Render not updating while Texture Painting
Is there a way to enable/force Cycles Viewport Render to show live updates while Texture Painting?
It does only shows changes on Viewport Render restart.

As far as I know, this isn't possible without making changes to the source code. Even then, there might be a reason why this isn't done (performance, etc.). You could try asking the developers, For example on the mailing list (note that as of this comment, blender.org is down because they are replacing some servers, so the above link won't work. It should be back soon though).

My answer to this question explains most of the issue.
The key points to make texture painting work while Cycles is set as the render engine are -

The 3DView shading mode should be set to Texture
The object needs to have a UV Map
The object needs to have a material that has an image node set to the desired image

When the material has multiple image nodes the selected image node defines the active image being drawn to. The image node does not need to be connected to any other nodes.
The UV Map selected in the UV Map list is the one being used to display the image selected. Any UV Maps linked into the image node are ignored with the 3DView set to Texture shading.
While you can switch the render engine to Blender Render while you do texture painting, the only real difference is that Cycles chooses the image from an image node were Blender Render links the image in the UV Image Editor to a UV Map while in edit mode.

I think the OP is asking specifically about viewport rendered shading.

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/


text:
How do I determine NodeTree overhead in a .blend file?
Since we have the ability to save a NodeTree into the deault .blend file I'm wondering if there are any guidelines or ceilings that need to be observed before I ramp up and save lots of NoteTrees into the default file.  I find myself using some of the bwide stuff quite a bit and am thinking of dropping into the startup file but I don't want to go to the trouble of doing this if it might cause performance or other issues down the road.
Thanks for any guidance on this
@lan

If you can't tell the overhead from simply opening the two, does it even matter?

This should not affect anything significantly. I have already added a few of my own nodegroups and a couple node groups from the b°wide nodepack to my startup.blend and have noticed no side effects.
Nodegroups don't really affect performance (unless they are being used), the biggest thing would be file size (which you probably don't have to worry about, because they don't take up much space).

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/


text:
Default cube has 6 zero faces in 3D printer tool
I've seen this question on the web, videos, forums, etc. with no solution in sight.
This problem exists in 3.6.1 LTS. Naturally it causes problems with CURA, "non-manifold object".
Is there a solution for this? I've tried ALL the "solutions" I found online, with no resolution.
The problem exists on the default cube and any other cube I instantiate or modification of the default cube.
Thanks for bearing with me, repeating this question, but hey! Where's the solution?
To clarify a bit, the bare default will show properly in CURA and in MS 3D viewer. But my completed mesh with other objects in boolean difference with the main cube do not come out properly in both of those apps.
I would like to share my file, but I'm not sure how. I'm relatively new to Blender 3D, just been a month using it, but I sure learned a lot from videos, docs and the web, thanks to all for that! But his problem is a poser for me.
Thanks,
Dave

Hello and welcome to BSE! I'm not sure what you mean, because the default cube is manifold and should be 3d printable. If that was not so in your case then it's a bug and off-topic? Can you share a screenshot?

It depends on the file format you use to export your model to cura. Some formats automatically unweld edges so your model will be non-manifold. The defacto format is stl which should preserve manifold-ness (if that word exists ?)

Also zero-faces can be very very small faces, as the software has a threshold under which it will consider faces to have zero area. Consider scaling your object way up when exporting it, there might be a dimension mismatch

Titanius Anglesmith, in what way would my configuration be at fault? It was a clean installation of 3.6.1 STL on a W110 PC. Which part of Blender 3D config would cause or fix this issue?

Gorgious, I did use STL file format. As noted in my original post, I VERY thoroughly looked for solutions, tried them all. No cures. The problem exists from first cube to finished object, which has other stuff in it.

Harry McKenzie, Hi! How do I share files, screenshots? I can accurately describe it. Open Blender, there's the cube. Open 3D print tools, check all. There's the "zero faces 6". click that in Edit Mode, all 6 sides of the cube are highlighted. What in my config would cause that? One thing, I can make that go away in 3D print tools by setting the "Degenerate" parameter to 0.000001 ... but that doesn't cure the CURA issues.

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/


text:
How to rig (bones? pivots?) a rotating anchor to a multi pivot can?

I have a solid base, that has an axle hooked to a set of arms and as it rotates, the arms move a link that moves the primary arm (it is hooked up to a can, but I have it hidden for the picture) lifts a can, who in turn is also moving the upper arm. This mechanical linkage keeps the can vertical.
I've gone through youtube tutorials on adjusting the pivot points and locking axis for rotation, and parenting, but that only works with single linked objects and I'm failing to figure out how to make this work. This will be exported for Unity later.

Here is an example of some rigging I've tried. Even parenting Root2 to Root2.002 but that didn't work either.

Here is an example of the rotated locked track in pose/Object mode (it follows the arm in edit mode) and do you have the details for the locked track constraint? that is one I'm not familiar with. other then that, it works flawlessly so far.

to clarify, the round handle is what will be rotated to make the mechanism work. still stumped

You probably want to control the rotation from that bone, but not the location, right?  It's easy enough if that's not true; it's easy enough with some choices of controls.  But using that bone for rotation and some other bone for location is complicated, and I'd rather you confirmed that's what you want before going into details.

Well, there is another way, but only if your rotation doesn't have to exactly match your control.

Its most likely I have the bones wrong in general, or the IK methods are incorrect. The general idea is someone grabs the handle inside the round housing, and rotates it. WHich in turn due to the arm links lifts the can up.

If you want to lift the can up, it's easy enough, you just have to think about your IK slightly differently.  I'll show in an answer.

Rest pose on left, hierarchy in outliner.  Bones should have reasonable enough names.

We have a two bone IK chain, parented to the control bone; its target is parented to the root bone.
The cylinder/can bone is parented to the second bone in the IK chain, and then copies world space rotation from the IK target, which has the same rest axes as it, to remain parallel.
Finally, the top arm is relatively simple, I just have an cylinder-parented arm that's locked tracking a bone that's parented to the root.

I would have never thought of that. I'm out tonight and will try it when I get back.

OK I've spent the last 2 days working on/off this. bones easy. did the IK of ik1/2 (target: Armature; Bone: ikt) works. Added the Cylinder, added the copy rotation (target: Armature; Bone: ikt) works. (caveat: if I had the cylinder bone added before the IK, it would b0rk b/w edit/pose mode)
now the issues I'm having is the "LockedTrack" bone. "Extending"/Duplicating then parenting to Cylinder will always rotate the new Tracking bone 90deg from Cylinder.

Bone creation order doesn't matter at all; if you're having problems, it's from something else.  If you're having trouble with a locked track, you can just use a 1-chain IK instead, it doesn't really matter.  Probably, your problems there are with the rest pose bone axes.

the 2nd IK worked. Sorry, I don't have the reputation yet to upvote your answer


text:
Spotlight size visibility in viewport
I work in millimeter units. Therefore, all architectural work is carried out in millimeters. But I noticed that the blender is designed for meters. All Gizmo objects are always very large.
I searched the answers and Google and the Blender-menu but could not find the answer.
How can I reduce the apparent (visibility in viewport) size of the Spot Light Sources?

I added an update without too much detail: how to reduce this distance in the viewport?

Hi ! First version of my answer was explaining units-related settings, but not the Spot Lights specifically — I've updated the answer to cover this thing too.

thank you. I am update post too
I added a spot to the second floor of my cafe, and as you can see its visual display extends to the basement. if I add 10 spots on 2nd floor. it will create visual chaos on the first floor and it will simply be difficult for me to work visually. I'd like to just reduce the size of the gizmo.

You can simply select your spot lights and scale them up or down (object mode scaling.)  A light's scale has absolutely no effect on the way that the light renders, not even on its "radius" property, but it affects the viewport display of the light.  This is sort of weird on Blender's part-- it's one of the few ways where you can't just scale an entire scene up or down, the lights won't be consistent with the scale-- but in your case, it's convenient.
If you'd like to do this with all of your lights very quickly, and you don't have any area lights, you can select grouped->type (with light selected, shift-g in 3D viewport for me), change your pivot point to individual origins, and scale.
The only kind of light that is affected by scaling is an area light, so if you have any of those, you'll have to be careful not to scale those-- they'll get selected with select grouped by type above.
There are other useful techniques for managing the display of objects like this.  I usually work with two 3D viewports open, one with overlays and gizmos disabled, so that I can see the controls I need to work with in one view without them interfering with the final product that I see in the other view (this is usually for dealing with armatures, but I can easily end up with a scene riddled with empties.)  And it can often be useful to create collections of certain objects-- say, all spot lights-- so that the visibility of these collections can be toggled rapidly.

Showing scaled and unscaled spotlights, two viewports, sidebar collection visibility panel.

Thanks. it works

By the way, I just noticed that if you scale only along by Z axis, then the spot light still changes its characteristics. its angle changes. although the Beam Shape parameter remains unchanged.

Scaling non-uniformly-- like only along Z-- will scale the overlay displayed, but it doesn't actually effect the render.  This is kind of dangerous, because the angle the overlay displays is then a lie: it might look to be wider or more narrow, but it's not representing the actual angle of the spot, which is measured in world space.

Three things:
1) You always can switch scene units to millimeters on the right side panel :

2) You can always select an object — then press N to see it's options — then set the EXACT size of the object.
Here:

*Press N again to hide option bar.

3) And last but not least: you can set millimeters as your DEFAULT units.
To do so:

Create new file.

Set millimeters as units (the way it was mentioned before)

Set this file (with all settings) as a "Startup File" – THIS WAY :

__
After those settings done :
For Spot Lights just change the radius and size.
HERE:

Voila! :-)

I know everything you described at the beginningб thank you. I just mentioned that all the Gizmos in the blender are huge when you work in millimeters. this is weird. It seems that Blender was only tested on objects the size of a car or larger.
but as for spot light. are you sure that this is version 4.0 and that you selected the render cycles engine? because I don’t see such parameters in myself. Radius - I don't have that.
But I can’t change the size parameter because... This already is responsible for the physical behavior of the light source.

I wrote about Visual display in viewport. This is what confuses me. look at the screenshot. how huge they are, they just filled the entire screen and I can’t work; they’re a visual mess.
My light sources hang on the first floor but penetrate the floor up to the 2nd floor down. imagine if I do lighting on the second floor. All these light sources will fall through the floor onto the first floor and will disturb me.


text:
How do I get a "correct" isosurface from points to volume to mesh workflow?
I am a computational chemist, looking to visualize an electron density in blender. The density is basically a 3D-array with a value assigned to each point. I managed to load the density to blender, with the values as attributes allowing me to use a "smaller than" comparison node for the selection of points in geonodes. So far to good.
These points I can convert to a volume and the volume to the mesh, resulting in an isosurface (everything in geonodes).
The isosurface however change depending on the chosen parameters, because to volume to mesh node uses again an isovalue for the determination of the isosurface.
My question now refers to the parameters of the both the points to volume as well as the volume to mesh node. so the density, radius, voxel size and somewhat the threshold.
I would ideally need a node that converts the point cloud to an isosurface with the isovalue comparing the value from the attribute. Is there an easy way without me having to reimplement this?
The problem is basically that blender is reevaluating the density from the volume and the isosurfaces always come out a bit "lumpy". And if I visually "fix" this, I worry about the scientific accuracy of my picture.
Thanks!
Edit:
So @Robin Betts, this is exactly what I needed and works like a charm. I couldn't be happier with the result.
The isosurfaces are beautifully smooth and scientifically correct. Thanks a lot!

Would it be worth looking at converting your value-array straight into OpenVDB? See here, for example.. maybe you could share a data-set?

I think I might know the problem. I'd like to ask to please include some pictures of the mesh and the nodes. I think this is caused by the compare node; just using an add or subtract node would solve the problem.

So the comments in here helped a bunch.
The answer by Robin Betts was perfectly applicable.
I exported the volume as .vdb file using OpenVDB and could import it in blender. The result was a correct isosurface.
I applied this to my addon https://github.com/hweiske/blender-importASE, which now allows for the import of .cube files. Sorry for not answering earlier, I accepted the "question was closed" as closed and only left the edit in there.

Glad it worked for you!  And great it's been incorporated in an add-on. You'll be able to to accept (tick) your self-answer after a while, and that will mark it as solved, at a glance, for other visitors. If you edit to add 'ASE' or a suitable search-term to the body or title of your post, folks will be able to find it more easily, if that's what you'd like.


text:
broken vertices after export
when I export my model to the game, the vertices are broken, causing problems in the texture
if anyone has any idea why this is happening i would appreciate the help and how to fix it, thanks
(in the first image it is before exporting it, everything is ''fine'')

after making some modifications in the normals and doing the Merge by Distance some parts are unified, others are not, but I still have a "shading" problem for the broken vertices

when I put recalculate normals, it is as if it were inverted, if a part is dark, when recalculating that part it becomes lighter but the one that was lighter becomes darker

Here the file to see

SOLVED: I recalculated the polygons of the conflicting part in Zbrush and re-imported it to blender, the smooth tone was better, I also placed a proper normal map.

Check the face orientation of your model. You can turn the orientation display on on the Viewport Overlay menu by checking Face Orientation. Your whole model should be blue. If any of it is red, go into Edit mode, select All, and Shift-N to recalculate the Normals. If that doesn't fix it, share your Blend file via  https://blend-exchange.com/ following the instructions there to copy the link to it and then edit your question and paste the link into it.

Hello, it didn't work, there I assigned the .blend file

Can't see any obvious problems causing the problem but I'm no expert. Maybe someone else can help now that you've added the file. Incidentally, which format did you use to export/import the file? (fbx, gltf, obj, etc.?)

import obj and after export .xml (codewalker XML plugin that is used to export and import to games like GTA V)
I have already consulted, the problem does not seem to be with the plugin, but with the mesh itself, since when giving the shade auto smooth it gives a shading on the right side, and when exporting it it is cut in the middle
If I hit recalculate normals, you can see in the last photo I added how they are inverted, I need both sides to be the same
note: I made the model in ZBRUSH using mirror to copy parts, made zremesher to lower the polygons and then imported it into blender

Ok. I know nothing about external programs and third-party addons so can't comment further. The only thing I did notice was that you had custom split normals on the object, but clearing them made no difference so I didn't consider it worth mentioning them.

I fixed it and updated the post.
Thank you for your interest in wanting to help me!

Good! You should really add that as an answer rather than just updating the question.


text:
Remove object from specific group programmatically
Somehow I have managed to add objects to a group called "myGroup" without actually wanting to do that. I now want to remove all those objects from that group, which at the same time were already assigned to another group. I figured the best way would be to do that in python. I tried the following:
allObjects = bpy.data.objects;
for obj in allObjects:
    count = 0;
    found = 0;
    for gr in obj.users_group:
        count = count + 1;
        if gr.name == 'myGroup'
            found = 1;
    if count > 1 and found == 1
        for object in bpy.context.visible_objects:
            object.select = False;
        obj.select = True;
        REMOVE obj from group myGroup!!!!

I do not know how to put the last line into valid python code. I know that there is a function could "bpy.ops.object.group_remove()", but I do not understand which group the object is deleted from when I call this function.
Any help? :)

If you don't mind not using python, you can just select the objects and press ⎈ Ctrl⎇ AltG, then select the group you want to remove them from:

If you still want to use python, then you want a group operator, rather than a object operator:
bpy.ops.group.objects_remove(group="myGroup")

This will remove the selected objects from the group "myGroup".


text:
Properties of a selection of objects
Imagine a scene containing multiple objects, for example a bed and a chair. The bed and the chair aren't blender-objects themselves, but they consist of many subobjects. To view the dimensions, rotation etc of one of these subobjects is not a problem, but what if I want to see the dimension of the whole bed? I have thought about parenting all sub-bed-objects to one of the parts or adding them all to a group. However, so far I have not been able to figure out how to display the dimensions of a whole group. How could I do that?

Blender does not support editing groups of objects in Properties Editor and N-toolshelf, it only works for the active object. You would have to join all your objects together.

I have created an addon that will create a mesh cube that encompasses all selected objects. Of note is that non-render objects such as camera, lamp and lattice objects report there bounding box as a zero size cube, this can lead to a cube of zero size that is only seen in the outliner.
To use you can save this link to your addon folder or to somewhere convenient and use the Install from file button in the preferences. You will then find Create Bounding Box under the Add Mesh menu.
This will give you a single object that clearly shows the outer dimensions in the object properties as if all objects had been joined.

Like your script! Good example how to write a script for me. Also, it does help getting the dimensions of a group of objects :)

I'm trying to use it as function not an addon
this is my attempt but it's not working pasteall.org/blend/index.php?id=45713 could you please advise?

Calling 'object_data_add` gets properties like loc/rot/scale from the calling operator, as you aren't using an operator you set it as None and manually set the location. Working script here

@sambler thank you very much, but it's not working properly as shown here http://pasteall.org/blend/index.php?id=45724 if you switch between commenting each last two lines in the script you will see the difference.

@sambler for some reason when I do the scaling before calling the function it doesn't work. I tried running the scaling part from one text block then running your script from another text block and it works fine. Once I place them together it doesn't work.

@sambler thank you I solved it by doing bpy.context.scene.update()

Hello, Sambler
I like your addon a lot!
I was thinking, would you be willing to modify it for a case when an object has non-zero rotation? So the created cube would automatically be aligned to local axes of an active object.

Blender doesn't support showing dimentsions of dupli-group instances or children (directly), You can however use the Ruler to measure it, hold Ctrl to snap to the extents of the objects.


text:
Object hierarchy
Say I have a very simple object (e.g. a house) that consist out of the roof and the walls.
How do I actually model this relationship using Blender? With CTRL+P I can either make roof or the walls the parent of the respective other object. But neither roof nor walls actually, logically, should be the parent but a new object called "house". "House" so to say should consist out of the union of roof and walls, but Blender should still be aware of the separate children objects.

Is this comprehensible?

Yep, just create an empty object, name it "House" and parent both Walls and Roof to it.


text:
Fit a blanket to a person
I have a model of a person exported from the MakeHuman software. I also do have a model of a blanket. What I want to do now, is to fit the blanket to the human, as if the human was sleeping under the blanket.
I have done some research and believe that the shrinkwarp modifier applied to the blanket with target "testHuman" should do the trick. However, the following happens:

The blanket seems too small when I apply the shrinkwarp modifier and is very weirdly shaped
When I increase the offset to about one, the blanket increases to a size which looks about right. When I decrease the offset again, the blanket shrinks again.

I believe, that this has also to do with the model for the human I use. I cannot really choose the whole human as a target, but only parts of it. I will attach some pictures to illustrate.
Can somebody explain to me the behavior occuring when I change the offset? Also, how can I use my human-model for this purpose?

Why not cloth sim? Shrinkwrap way will be very tedious to get reasonable result.

Thats actually a good hint and a much better approach to the problem, I believe. This tutorial helped me to get what you were refering to: http://cgcookie.com/blender/2010/08/17/cloth-simulation/

Here is the simplest way, using Cloth Simulator defaults.
Select body, then in Physics tab, select Collision:

Add Plane mesh, set smooth, then in Edit Mode, scale to cover body and subdivide it to desired level of billow detail. Select Cloth in the Physics tab:

Raise Plane above all parts, then press Alt-A to begin simulation:

Pick your favorite frame:

Thanks, thats how I will end up doing it. However, do you have an idea why the blanket begins to tear apart the closer it comes to the person? Is there a setting which prevents my cloth to get holes?

The degree of tearing mostly comes down to mesh resolution at the points of contact for both objects. More is better, but you will still get some. But this thread gives some great approaches to eliminating them: http://blenderartists.org/forum/showthread.php?242001-CLOTH-SIM-how-to-reduce-or-prevent-tears-in-the-fabric

You could also add a solidify modifier after the cloth in the modifier stack.  That would make it look more realistic and as long as the blanket has a reasonable amount of subdivisions you shouldn't be able to see any of the body mesh poking through.


text:
UV Unwrapping this door
I'm trying to UV unwrap this door I modeled and really struggling, I don't understand why the UV looks wonky.
Any help would be appreciated.

Sometimes you need to be willing to spend a few minutes editing the UV's after the first unwrap.
Your DoorUVunwrap.blend contains one material called "Steel" suggesting that your door is supposed to be a metal door. The geometry and UV unwrap of a metal door would be a little different than that of a wooden door. The front and side panels of a metal door would probably be pressed from a single sheet of metal where as a wooden door would be made from many different pieces of wood, vertical, horizontal and panels in-between.
A single metal pressed sheet is going to require more hand editing of the UV's than a wooden door because the wooden door will have many more UV seams / UV islands and so will unwrap better. The single UV island of the front of the metal door will require some straightening of the UV edges. Knowing this then it is a good idea to keep the geometry as low poly as possible. Less vertices means less UV vertices to straighten out later.
1: Construct the door using as few vertices as possible. In the example below the metal door has half as many vertices compared to your original door.
2:  Mark the UV seams in such a way that the back panel will be separated from the front and side panels.(UV seams around the the outer edges of the back panel and along the 4 corner edges. see image below).
3: Select All and UV Unwrap using the Conformal method.

The UV's will need straightening, aligning edges to either the  X or Y in the UV space. Sounds a pain but doesn't take long.
4: Start by selecting a line of horizontal edges near the middle and running across the UV island. With the edges selected RMB to open the
UV Context Menu and choose the Align Y option. With the edges still selected hit the P key to Pin these vertices. Pinning will stop these vertices moving when we do a second UV unwrap.
Repeat for a second Line of horizontal edges.
With the mouse hovering over this UV island hit the L key to select it all followed by U and choose the Unwrap option.
With all the UV island still selected hit Alt P to Unpin the pinned vertices.
Repeat step 4 for two vertical line of edges. see gif below:

The result should be something like in the image below. If some edges are not quite straight enough you can go in and select lines of vertices and align them as needed.

Below is an example of the same door but "made of wood". Different geometry and many more UV seams. For the wooden door add seams in such a way that each section of wood is isolated from its neighbour. This doors UV's should UV unwrap without later needing to straighten any edges. But the islands may need to be oriented correctly to align with the grain of the wood texture being used.

Modified Blend file: https://blend-exchange.com/b/K1e3Omn8

I may be wrong but it looks like Blender can't unwrap orthogonally (maybe there's an addon for this but UV Squares doesn't seem to do it):

So maybe switch to front view and unwrap with the Project from View option:

The problem is that it will stretch the image texture on the side faces, if it bothers you you can still unwrap these faces apart but it may be tedious to make them match with the front faces.


text:
Error creating a color_attribute slot and bakes the AO onto this slot for multiple Objects
I need a script, that batch processes the selected objects, creates a  color_attribute slot and bakes the AO onto this slot. This works fine with individual objects. However when I try to boundle it into a batch process, the script returns an error.
import bpy

for obj in bpy.context.selected_objects:
    obj.data.color_attributes.new('AO', 'BYTE_COLOR', 'CORNER')
    bpy.ops.object.bake(type='AO', target='VERTEX_COLORS')

Error:
RuntimeError: Error: Mesh does not have an active color attribute "Object name"

Has someone an idea, how to solve this?
I'm at Blender Version 4.0.1

link
link
link
I see that there was once a lot of discussion regarding this topic. However according to those links it should habe been solved which surprises me.

The workaround that fixed it for me, was to split it up into two segments so I'm first creating the color_attributes for every objekt and the baking starts once every object has its color attribute.


text:
Change parameters like Recursion in ImportHelper window
I am currently trying to have the parameter set to Three Levels by default in an InputHelper window. Unfortunately, I can't access the value.
For example, if I try to access bpy.data.screens[“temp.010”].params like in the picture, I get the error that screens has no params.

Let's say I have this basic code to register a UI Panel and with a click on a button, I'm opening a File Browser Window to Import some files. I now want this window to have Resursions: Three Levels enabled by default.
import bpy
import os
from bpy.types import Operator, Panel
from bpy.props import StringProperty, CollectionProperty
from bpy_extras.io_utils import ImportHelper

class ImportDXF(bpy.types.Operator, ImportHelper):
    bl_idname = "object.import_dxf"
    bl_label = "Import DXF"
    bl_options = {'REGISTER', 'UNDO'}

    filename_ext = ".dxf"

    filter_glob: StringProperty(
        default="*.dxf;",
        options={'HIDDEN'},
    )
    files: CollectionProperty(type=bpy.types.PropertyGroup)

    def execute(self, context):
        folder = os.path.dirname(self.filepath)
        for file in self.files:
            print(f"Importing: {file.name}")

        return {'FINISHED'}

class ImportDXFPanel(Panel):
    bl_label = "Import Panel"
    bl_idname = "OBJECT_PT_import_dxf"
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'UI'
    bl_category = "Import DXF"

    def draw(self, context):
        layout = self.layout
        layout.operator("object.import_dxf", text="Import")

def register():
    bpy.utils.register_class(ImportDXF)
    bpy.utils.register_class(ImportDXFPanel)

def unregister():
    bpy.utils.unregister_class(ImportDXF)
    bpy.utils.unregister_class(ImportDXFPanel)

if __name__ == "__main__":
    register()

can you post some of the relevant code in the question so we can get an idea of the context it's working in?

@Jakemoyo Sure. I have edited my original post. Thanks :)

Yeah, I'm not totally sure, but I don't think that's possible, or if it is it's gonna be fairly complicated. Since you're using the ImportHelper that is basically a wrapper for calling the context.wm.fileselect_add operator which basically opens a modal with some predefined arguments that are hard-coded into the C++/Python API code, as you can see here.

Maybe there's a way to add pass arguments into a modal before calling it's invoke method but I'm not familiar, Someone with a bit more knowledge of addon dev might correct me, but it seems fairly complex IMO.

@Jakemoyo That's unfortunate. Thank you for your help anyway. I'll leave the thread open here and see if anyone else has a solution.
If I could make it so that this option is active by default - regardless of my script, that would also be okay. But unfortunately I can't manage to save it as default


text:
Get the updated Index of a Face as if it had been separated from the main mesh with a group of other faces
Let's say I have a cube in Blender and there are two materials on it. In this example red and blue.
I am looking for the face with the index 10, which is a face with blue material.
If I select all blue faces and separate them from the rest of the mesh, the face gets a new index value as well as the rest of the blue faces. I would like to get this updated face index AND the updated Vertex Points indices of this face through a python script.
Is it possible to get the "re-indexed" value of the face without really going through the seperation and rejoin phase?
I am very grateful for any help!

my guess is the order of faces remain the same, and so all you would need to check is how many faces with a lower index would be separated together with the face of interest.

@markus-von-broady That could be the case. However, I also need the updated vertex point indices that belongs to this face. I forgot to mention that in my post and just added it.
Do you have any ideas on how best to implement this in python?

Probably same story with vertices… But I didn't test it.

Is it acceptable to separate a duplicated mesh with python, fetch the updated vertex indices (given the re-indexed face) and throw that away afterwards? That would make the scripting easier (and potentionally faster).

@taiyo I just checked it and this should be acceptable as long as the duplicated object gets entirely purged afterwards (can't be found in orphan data tab later on)

@Erdorano i posted my version with the necessary purge. I had this feeling of performance differences with a pure python solution versus a solution using Blender's API... so i believe you're still interested in having the option for another method.

Here is another script which relies more on Blender's built-in methods to retrieve the values. This version has the advantage to still run very fast with bigger meshes. For an object with 100000 faces this script takes around 0.5 seconds while @Erdorano's version needs around 25 seconds on my machine.
Usage: select one face of an object and run the script. Doesn't matter if the object is in Edit or Object mode, only needs to be selected.
import bpy

# get the selected object in edit mode
bpy.ops.object.mode_set(mode = 'OBJECT')
bpy.ops.object.editmode_toggle()
obj = bpy.context.active_object

# get face index
old_face_index = -1
for poly in obj.data.polygons:
    if poly.select:
        old_face_index = poly.index
        break

# compute new face index
material_index = obj.data.polygons[old_face_index].material_index
new_face_index = -1
for poly in obj.data.polygons:
    if poly.material_index == material_index:
        new_face_index += 1
        if poly.select:
            break

# create a duplicate
bpy.ops.object.editmode_toggle()
bpy.ops.object.duplicate()
temporary_obj = bpy.context.object
temporary_obj.name = "temporary" # choose a name which does not exist in the scene

# separate all faces with face material
bpy.ops.object.editmode_toggle()
temporary_obj.data.polygons[old_face_index].select = True
bpy.ops.mesh.select_similar(type='MATERIAL')
bpy.ops.mesh.separate(type='SELECTED')

# select the separated mesh
bpy.ops.object.editmode_toggle()
bpy.ops.object.select_all(action='DESELECT')
temporary_obj001 = bpy.data.objects['temporary.001']
temporary_obj001.select_set(True)

# select the same face in the separated mesh and read the vertex data
temporary_obj001.data.polygons[new_face_index].select = True
bpy.ops.object.editmode_toggle()
new_vertex_indices = [ v for v in temporary_obj001.data.polygons[new_face_index].vertices ]

# we got all we want
print(
    '\nselected face index:', old_face_index,
    '\nnew face index:',  new_face_index,
    '\nnew vertex indices:', new_vertex_indices
)

# delete temporary objects
bpy.ops.object.editmode_toggle()
tmp_mesh = temporary_obj.data
tmp_mesh001 = temporary_obj001.data
temporary_obj.select_set(True)
bpy.ops.object.delete(confirm=False) # delete from outliner
bpy.data.meshes.remove(tmp_mesh)     # delete from orphaned data
bpy.data.meshes.remove(tmp_mesh001)  # delete from orphaned data

Thanks for this approach. I think both have their pros and cons. However I'll choose yours as the answer as its much more performant.

I checked with @markus-von-broady idea how the indexes are organized and it looks like he was right. My script attempt gets a face index as input. The vertices of this face are put into a list and it gets checked which material is on this face. Then all the faces in the object with the same material are gone through and the vertices are compared with those of the original face. If the ids are smaller, they are placed in another list. Then the original vertex ids are calculated down using the amount of smaller ids.
In my tests so far, this approach works
import bpy

obj = bpy.context.active_object # Find the object

target_face_index = 567 # Example
material_idx = obj.data.polygons[target_face_index].material_index

face = obj.data.polygons[target_face_index]

target_face_vertex_ids = [vertex_index for vertex_index in face.vertices] # List of vertex IDs that make up the face

smaller_vertex_ids = [] # Empty list in which smaller vertex ids are later stored

# Go through all the faces in the object
for face in obj.data.polygons:
    # Consider only faces with the same material
    if face.material_index == material_idx:
        # Read Vertex Ids from found Face
        for vertex_index in face.vertices:
            # Ensure that Ids are not part of the output Faces
            if vertex_index not in target_face_vertex_ids:
                smaller = any(vertex_index < i for i in target_face_vertex_ids)
                # If Vertex Id is smaller than that of the output face
                if smaller:
                    # Make sure the Id is not already in the list
                    if vertex_index not in smaller_vertex_ids:
                        smaller_vertex_ids.append(vertex_index)

for element in target_face_vertex_ids:
    count = sum(1 for vertex_id in target_face_vertex_ids if vertex_id < element)
    rest = sum(1 for vertex_id in smaller_vertex_ids if vertex_id < element)
    print(count + rest)


text:
The light is being reflected inside the bulb.How to fix it?
I can't seem to find a solution for this problem

Is there any possible fix without affecting how the glass look like?
File:

Please upload your .blend to https://blend-exchange.giantcowfilms.com/

Can you find it now ?

Yes, if no one else does I'll may have a look at it later, although it seems to me that it is expected but unwanted behaviour

The only correct solution is to keep the reflection...

To implement this, you just have to ensure that the light from the filament is not bouncing off or interacting with too many surfaces (in technical terms 'bounces').In our case, if the light from the filament comes through the front of the bulb, it means the emission ray from the filament is converted to transmission ray (at the front portion of bulb) and reaches camera. Which means 2 bounces. But in the case of the additional reflections, the bounces are more.
So all we have to do is, make the rays which have more than 2 bounces invisible. We can get this bounce information from 'Ray depth' of 'Light path' node.

Ray Depth is the Number of times the ray has “bounced”, i.e. been reflected
  or transmitted on interaction with a surface.

In material node editor, Shift+A and Input>Light path. Also, we can get the 'greater than' operation from math node. Shift+A, Converter>Math and change the operation in the drop down menu to 'greater than'.
Check out the following node setup for emission material of the filament.You can do the same for the rest of the materials that are getting reflected.

That's what i was looking for. Thank you so much.

Happy to help :)

You could try this setup, which is very similar to @Teja's but will not restrict the total bounces in the same way. In this scene, the bulb is seen in a mirror.

This says:'I dont want to hear from the element if its asked by a ray whose transmission depth is greater than 2, or it's being asked for a reflection'
Without the fix:

With the fix:

..but it's still not perfect.. if you looked at your bulb through a window, its filament would disappear.

It is Physically Right. Glass always reflect a little bit Reflection, Anyways here's a trick:
Use A Refraction BSDF instead of Glass BSDF.

Here's the Render:

Unrelated: I checked your Metal Shader, you added diffuse to it. Metal is 100% Gloss
Check: Blender Guru Tutorial For Metals

Thank you .I have already tried using the "Refraction BSDF" but its not as good as the glass.

Results are same I think (except Reflection), Anyway That's the Solution.


text:
UV Unwrapping inconvenience
I have come upon a roadblock. I'm studying game development and we began this week with school. I got tasked to make a sort of vase or urn, which was easy enough to model.
This was all fine until I had the grand idea of texturing it, which requires a UV map obviously enough. So I put the seams in place though it may be questionable if I placed them effective…
I unwrapped it using the lightmap pack and follow active quads to get a proper Island in the UV editor. I fiddled around for a while to get the flow properly for the larger part, but the tricky thing is the handles(?). They're, as you can see, shaped in an arch with a couple rings of faces through them which makes it challenging to keep a great flow of the texture. Technically speaking I would need some faces on the same place in the UV editor, but that would be "UV overlapping". Is that allowed anyway?
(Don't mind the upperhalf of the UV map, I wasn't completely done. The bottom is the larger part of the urn and the rest are the handles and the inner part.)

My question to you is; Is there a way to properly unwrap the handles for a proper texture flow?
Thanks for reading in advance and a have a great day!
EDIT: 10-09-2018
I think I have solved it. With the use of cylinder-shaped object I first unwrapped it as a whole and that is just a big mess. So I used the lightmap pack! This makes it all kinds of small islands, but it is still messy! Then I took a decent sized face in the edit mode and made it the active face. As the experience users might guess, Yes! I did use the follow active quads function which still makes a mess, better, but a mess.
I had to do a little tweaking to get the islands properly so I just put on the snap tool and set it on snap to vertex (closest) it worked out eventually. Here's the final UV map!

I still wonder about a better method/workflow for it. It's quite the hassle. checking the correct angle of the faces in the uv and place them properly, Especially with a lot of small islands. If someone knows a better workflow please let me know!

Your unwrapping looks OK. Now texture it. If you now use a texture image you will probably notice the seams, you can either clean that up in texture painting or use texture painting to paint onto the image you have there now. You can setup an image as the texture on a brush.


text:
How to extract beginning part of 3D model files using Blender?
The business purpose is that I allow registered user upload different 3D model files. When other users review the file, he or she does not need to download the whole file (size about several Gbs), he or she could make preview the 3D model files with the biginning a couple of 3D frames. In this way, he or she could know about the 3D file roughtly, then decide to download or not.
Challenge is 3D model formats are hundreds, we already know that the users have different 3D model tools (Aveva for example) to make different 3d format files. Lets make it easier at first, that is to say it could take this preview a couple of minutes or not that real time (seconds for example).
The question with above scenario could we use blender in command line utility to generate all kinds of 3d model files's prview videos or pictures?
====================
second edition
I found following link could help me to make preview of a 3D model. The link has following code snippets.
import bpy
scn = bpy.context.scene

bpy.ops.import_scene.obj(filepath='E:\\sjj\\Blender\demoFile\Demo_274\Ring_27.blend')
target = bpy.context.selected_objects[0]
scn.objects.active = target
# centring the origin gives a better bounding box and rotation point
bpy.ops.object.origin_set(type='ORIGIN_GEOMETRY')

cam_x_pos = max([v[0] for v in target.bound_box]) * 2.5
print('cam_x_pos: {}'.format(cam_x_pos))     //it prints cam_x_pos is 0.0
cam_y_pos = max([v[1] for v in target.bound_box]) * 2.5
print('cam_y_pos is: ',cam_y_pos)            //it prints cam_y_pos is 0.0
cam_z_pos = max([v[2] for v in target.bound_box]) * 2.5
print('cam_z_pos is: ',cam_z_pos)            //it prints cam_z_pos is: 0.0

rot_centre = bpy.data.objects.new('rot_centre', None)
scn.objects.link(rot_centre)
rot_centre.location = target.location

camera = bpy.data.objects.new('camera', bpy.data.cameras.new('camera'))
scn.objects.link(camera)
camera.location = (cam_x_pos, cam_y_pos, cam_z_pos)
camera.parent = rot_centre
m = camera.constraints.new('TRACK_TO')
m.target = target
m.track_axis = 'TRACK_NEGATIVE_Z'
m.up_axis = 'UP_Y'

rot_centre.rotation_euler.z = 0.0
rot_centre.keyframe_insert('rotation_euler', index=2, frame=1)
rot_centre.rotation_euler.z = math.radians(360.0)
rot_centre.keyframe_insert('rotation_euler', index=2, frame=101)
# set linear interpolation for constant rotation speed
for c in rot_centre.animation_data.action.fcurves:
    for k in c.keyframe_points:
        k.interpolation = 'LINEAR'
scn.frame_end = 100

I modified a little bit of original codes,
rot_centre.rotation_euler.z = radians(360.0) =>
rot_centre.rotation_euler.z = math.radians(360.0)

Why cam_x_pos, cam_y_pos,cam_z_pos are printed as 0.0.? And how to let camera take shots/snapshots so that I could get some pictures (jpeg,png,gif)
The file Ring_27.blend looks like:

yes and no. If you are asking how to create a collection of preview images/animations from a library of 3D objects then; the object has to be in a format that Blender can read/import, there is a camera setup or the object is in a known location that a camera can be pointed at, lighting is provided or reliably generated. Best thing at this point is to try it. https://docs.blender.org/manual/en/dev/render/workflows/command_line.html

If the file format is one recognized by blender then you can write a python script to (1) import the obj (2) determine the bounding box and scale it down/up to some standard dimension (3) add camera at a fixed point (4) add track to constraint (5) move the camera and set the key frames at both the points of movement (6) render the video of the frames within the camera movement.

Let's suppose blender know the file format. How to follow the steps, are there detail instructions to tell the steps mentioned above, for example how to import the obj?

I found blend python api could open file and have python api to access objects. step 4, 5,6  seems difficult to me.

official blender has an addon called "turnaround camera", that could help you somehow with step 5. If you feel a single step difficult, try browsing here fore previous similar questions, there may be an answer already. If not, ask a question about a specific step, show what you tried, and someone will help you.

@BlenderDadaist please check my second edition, it makes my question towards goal, that is to take snapshot of a 3D model.

The code is setting target = bpy.context.selected_objects[0]. If it's a non-mesh like camera, its bbox will have co 0 (try printing bpy.context.selected_objects[0].name). You can maybe find the object with bpy.context.selected_objects[0].data.vertices attribute so that you get the mesh object. You can take a snapshot with bpy.data.scenes['Scene'].render.filepath = 'path_to_png' [https://stackoverflow.com/questions/14982836/rendering-and-saving-images-through-blender-python]


text:
Boolean modifier isn't showing the entire shape of the cut in solid view mode or when I render it. Don't know what I'm doing wrong
So this is the shape I want to cut into another "wall" shape. You'll notice the back ridge of the cylinder shape. That is the part that isn't cutting properly
This is where I have positioned the shape inside the "wall" shape

The settings I used and applied for the Boolean modifier
Now this is the result of the Boolean in the solid view. That back ridge doesn't show up at all.
When I use orthographic view I can see it.
But if I use xray mode I can see it.
Again it shows up in the wireframe view when I look into the "wall" shape
But not when I look at it on wireframe view from the outside.
Anyone have any ideas on what's going on?

I think we'll need to see your Blend file. You can share it via https://blend-exchange.com/ following the instructions there to copy the link to it, then edit your question and paste the link into it.

Without boolean - https://blend-exchange.com/b/OLw4aPNs
with boolean - https://blend-exchange.com/b/ndOG5ykr

Because you use just two joined cylinders as the boolean object (can be seen in your sixth screenshot). This is not a valid manifold. You either apply the cylinders separately with two Boolean modifiers or you model one valid manifold and use that.

Interesting, thanks. Is there a reason why two joined meshes aren't valid?

A manifold is valid if it forms a single volume. This can't be the case when you only join two meshes. Even if they would perfectly fit at their (open) borders, you would at least have to merge the overlapping vertices afterwards.


text:
Why is my whole "cube" mesh being cut rather than just the shape of the mesh I selected when using the Boolean modifier?
Here is a link to a video of what I'm doing and what's happening when using the Boolean modifier. It should just cut out the shape of the round mesh I'm using rather than delete the entire "cube" mesh right? I should note that I did use and apply the array modifier on the mesh I'm using to cut.

Hello and welcome. While files, images, and external videos or links may be helpful additions they should not be the only way to obtain information about your issue. Don't make understanding your question rely on downloading a file, watching a video or visiting an external site. Use the builtin tools to upload images or gifs, along with thoroughly explaining the problem in written form so it can be indexed and searched for thus helping future visitors with similar issues.

Hello maybe try the Fast option, it works better sometimes, also under Solver Options you have an option called Hole Tolerant, or please share your file so that we can test: https://blend-exchange.com/


text:
Whenever I add a face then the whole square becomes black

Whenever I add a face then the whole square becomes black.
I already UV the square so that the face matches it, so I don't know what's wrong with it.

Hello, it's hard to understand, could you please precisely describe the steps?

See if this quick tutorial helps.

Please clarify your specific problem or provide additional details to highlight exactly what you need. As it's currently written, it's hard to tell exactly what you're asking.

Hi, maybe connect the alpha from the image to the Principled BSDF alpha?

add rgb node to add color and add mixrgb to mix both image texture and rgb and plug them just like in photo


text:
Boolean not working and I've tried every fix I could find online
so I've been using Blender recently, but every single model I try to work on, I get this weird issue where the bool tools and the modifier just doesn't do what it's supposed to, sometimes it just deletes random models, sometimes it makes cuts in a model but doesn't actually go through with the bool and reconstruction of the mesh, no matter what I do, if I follow tutorials or do new projects, I just keep getting this issue. The only way I can bool is if I just do it with a fresh object with no modifications to it, like any extrusions or subdivisions.
I've tried re-calculating the normals on both objects, I've tried merging the vertices by distance, I checked for non-manifold edges, I can't find any other fixes.

The Fast option seems to work

Yep. Fine with the Fast option here too.

Fast option isn't working for me though, could it be my Blender version that has a bugged boolean or something?


text:
Change FCurve handles from Python
I am currently trying to make an import script that generates an animation on a camera. The animation requires that the values for the left and right keyframe handles be set.
I couldn't find a way to set handle values explicitly, so I have tried to use bpy.ops.graph.select_border to select the keyframe handle that I want to set and then use bpy.ops.transform.translate to set it into place, however when I try to do this from my import operator, I get a RuntimeError saying context is incorrect
Does anyone know if the x and y handle values for an FCurve keyframe can be set from Python?

Recommend reading the API quickstart - http://www.blender.org/documentation/blender_python_api_2_69_release/info_quickstart.html#animation

You will find it here:
action=bpy.data.actions['yourAction']
#or
action=bpy.data.objects['yourObject'].animation_data.action
#
action.fcurves[fcurve_index].keyframe_points[kf_index].left_handle
action.fcurves[fcurve_index].keyframe_points[kf_index].right_handle

You can easily explore blender's data structures with the outliner using the datablocks option and the interactive python console using autocompletion (Ctrl+Space).
If you hover over properties in the editor with python tooltips enabled it often will show you the path to the property.
Hint:
If the object has not been animated yet and thus animation_data is None, use the object's method animation_data_create to create it.
Afterwards assign an existing action to animation_data.action or create a new one:
action=bpy.data.actions.new('Your Name')

Note to the developers of blender:
In this case the path shown in the graph editor is abbreviated bpy.data.objects...left_handle and it is not possible to right click -> copy data path. So the hint shown is kind of useless.

thanks for your answer, the keyframe_point collection was marked as read only in the documentation which is why I assumed setting the keyframes from there won't work


text:
What does the button next to the Pivot Point button do?
In the 3D view port's header, what does the button next to the Pivot Point button do? The button in question has a shortcut of alt ,. It is in the red square in the picture below.

What is it use for and how is it used?

That button  is the manipulate center points option, which allows you to manipulate the origins of objects without affecting the rotation and scale of the objects themselves.
For example, if I scale these objects without it enabled, they are stretched. With it enabled, only the origins are moved (only affecting object location):

Note that with only one object selected, enabling this option will cause scaling or rotating the object to do nothing.

The icon makes sense once you know what it does.

@Neil Wow.. I just noticed that my example gif sort of matches the icon :P That was a complete accident..

It is the pivot point align option, it allows to rotated or scale selected objects relative to the selected pivot point.
In this animated gif the pivot point is set to 3D-Cursor.

Related:

Scale Space Between Multiple Objects


text:
What is the difference between positive and negative rotation?
Say I have a wall piece, one is rotated 180° the other is rotated -180°. Another example is -90° and 270° and 630°. The two respective examples look the same in my scene, is there any difference? Should I go and make all of the rotation values positive? What is the purpose for rotation values above 360°?

The Euler rotation is calculated by a rotation matrix which uses sine and cosine; These functions are periodical, which means it wouldn't make any difference whether you set the value for Φ to Φ+360° or Φ-360°.

image by Udo Brechtel (Wikipedia); the label Einheitskreis means unit circle
Rotating a cube by 90 degrees (or a rectangle by 180°) wouldn't have any effect to the un-textured appearance of the mesh, but it would for materials (think of it like differently textured faces).
As @cegaton already commented, animations rely on the direction of your rotation. An arm could reach the same position by rotating 90° in one or 270° in the opposite direction.
When you increase the rotation by e.g. 720° between two keyframes the object would rotate twice around the keyframed axis. Note that Quaternions behave differently you can't express rotations > 360° with them.

When measuring angles in degrees, you have a range of 0.0 to 360.0 to work with.  Anything outside of that is going to wrap back around to look just like some other value within that 0 to 360 range.  Simply subtract 360 from the angle if it is over 360, or add 360 to the angle if it is under 0.  For example, if you have a rotation of 540 degrees, that's really just a rotation of 180 degrees, because 540-360 = 180.  Likewise, if you have a rotation of say... -810 degrees, that's really just 270 degrees because -810 + 360 = -450... +360 = -90... +360 = 270.
Now like cegaton says, context IS important.  If you're just positioning an object, that's simple, but if you're animating an object, that can complicate things a bit.  See if you Have the rotation animated from 0 to 720 degrees, that's two full rotations even though it will end up right where it started at the end.

IMO the choice of 0, 360 is arbitrary. Take the concept of east and west for example, which uses what is effectively [-180, 180] as a range. +++

In some instances the direction of rotation is important.  For example, calculating motion blur in an animation.
In this situation it would also make sense to use values above 360°, because the motion blur will be incorrect if you rotate all the way back to 0.


text:
Incorrect matrix_world after transformation
This script changes the active object's location, it could also change the rotation or scale, it also prints the object's world matrix before and after changing the location.
import bpy
obj = bpy.context.object
print(obj.matrix_world)
obj.location = 1, 2, 3
print(obj.matrix_world)

The output shows the same matrix as before and after the translation:
<Matrix 4x4 (1.0000, 0.0000, 0.0000, 0.0000)
            (0.0000, 1.0000, 0.0000, 0.0000)
            (0.0000, 0.0000, 1.0000, 0.0000)
            (0.0000, 0.0000, 0.0000, 1.0000)>
<Matrix 4x4 (1.0000, 0.0000, 0.0000, 0.0000)
            (0.0000, 1.0000, 0.0000, 0.0000)
            (0.0000, 0.0000, 1.0000, 0.0000)
            (0.0000, 0.0000, 0.0000, 1.0000)>

However accessing the matrix from the python console, bpy.context.object.matrix_world, shows the correct world matrix with the translation (the last column):
Matrix(((1.0, 0.0, 0.0, 1.0),
        (0.0, 1.0, 0.0, 2.0),
        (0.0, 0.0, 1.0, 3.0),
        (0.0, 0.0, 0.0, 1.0)))

Therefore, what is the correct way to access the modified matrix values after changing an object's
location, rotation, or scale?

Stackoverflow has a similar question and answer on the same issue. The problem is blender is not recalculate the matrix immediately after modifying the transformation.
As mgibsonbr notes, to have the correct values, add scene.update() after the changes to recalculate the matrix.
import bpy
obj = bpy.context.object
print(obj.matrix_world)
obj.location = 1, 2, 3
bpy.context.scene.update()
print(obj.matrix_world)

Which now correctly prints:
<Matrix 4x4 (1.0000, 0.0000, 0.0000, 0.0000)
            (0.0000, 1.0000, 0.0000, 0.0000)
            (0.0000, 0.0000, 1.0000, 0.0000)
            (0.0000, 0.0000, 0.0000, 1.0000)>
<Matrix 4x4 (1.0000, 0.0000, 0.0000, 1.0000)
            (0.0000, 1.0000, 0.0000, 2.0000)
            (0.0000, 0.0000, 1.0000, 3.0000)
            (0.0000, 0.0000, 0.0000, 1.0000)>

what is the equivalent of bpy.context.scene.update() in blender 3.1? EDIT ahhh found it bpy.context.view_layer.update()

Note for those using blender 2.8x: scene.update() has been removed as of 2.80. Use bpy.context.view_layer.update() instead, as per this post.

If in your script the object is moving between frames, you can simply use: scene.frame_set(scene.frame_current) this will update the matrix_world of the objects


text:
Joining 2D tracking markers with an offset
Is there any way to join tracks with an offset (like can be done in After effects)?  I'm looking for a way to create a gap less 2D track. (It will be used only for 2D stabilization)
This is an example showing the situation in the footage.

Here are the two tracked marks that get blocked by a pole at different times.

I want to be able to use the tracking data from the black mark when the red mark is obstructed.

However if I simply join the two tracks there will be a jump in the path.

You can use 2 trackers, one that track forward and another track backward and then select both and join with Ctrl+J

Or before the tracker gets to the obstacle select the tracker with RMB with G button to offset it back and continue tracking untill you can see the tracked area again.

@Denis I can not join the two tracks, because there will be a jump in the resulting motion path when the tracker switches between the red and the black marks.

look in Track properties panel in Merker section, you can set the offset there when your tracking area is blocked or use RMB+G to offset the marker and move it back when you can see the tracked area.

To track areas that are blocked by obstacles or temporary going off-screen. Move the tracking marker before the area is hidden by pressing GG and dragging the marker to another tracking point, or offsetting the marker in Track properties panel in Marker section by changing X and Y offset position. You can then continue tracking the scene under the offset tracking area until the original tracking area is visible again, then move the marker back using the same procedure.

I realise this answer is very old, but can anyone say why this is preferable (if it is) to disabling the tracker and then re-enabling it once the originally tracked point comes back into view/frame?


text:
How would I go about remapping this UV
I've imported a model but the UV has made the mesh have two faces.
What's the best way to fix this or is there a tutorial on fixing imported UVs?

7.png

If you have imported the mesh, then maybe it's just how this UV is supposed to be used.
It looks like the problematic area is where there's supposed to be hairs. My guess is that the texture you're using isn't used on that area.
Then, either it's a matter of different UV sets, in which case you just might check in your object's Data tab if you have several UVs, and unse them accordingly in your material :

Either you just have to select those faces, and assign them to another material :

Or maybe both.

I've just tried what you said and that doesn't appear to have worked, there is also only one UV. I've tried looking closer at the UVs and it kinda looks like the scalp UV is just covering the face as well.  Is there a way to correct that?

Yes, use different materials for the head and the hair area like I explained.

yeah, I just realized my mistake, sorry. I managed to do it wrong. sorry. thank you for your help

you welcome ! ^^


text:
Are there any tips for editing the deform mesh cage?
I've tried a few times with different methods but I can't seem to get the deform cage right.
Is there a way to cover the mesh with the cage.

Sculpting seems to get the best result for me

If it's too hard to deal with only one cage, you could deform your mesh with 2 different cages and 2 different Mesh Deform modifiers:

Select your body mesh, enter in Edit mode and create 2 different vertex groups, one for each leg.
Create 2 different cages, each one will encage one of the 2 legs.
Give your body 2 Mesh Deform modifiers. For each modifier choose one of the cage and in the Vertex Group field, choose the corresponding vertex group you've created for each leg.
Click on the Bind buttons.
Now each cage deform only a part of the mesh.


text:
Blender game glitch or?
so I'm trying to make a game menu, but both buttons that switch to totally different scenes lead to the same one.There are two planes, and one is connected to one scene, while the other is to another scene. but when i play the game, both scenes go to the same one. help.

there you go. See with more information, we know what your problem is and can answer.


text:
I cant render Fire
I have fire in the viewport, but when i enter rendered view or just render the image i only get stuff that looks like dust.

add a picture of the material nodes for the domain.

ok added it hope its useful info

Attributes are case-sensitive. I think you need to use ‘flame’ in place of ‘Flame’. See https://blender.stackexchange.com/a/116632/29586

ok thanks it was the capitalization that was causing the problem


text:
How to make the iris eyes respond to light?

I did a tutorial on modeling a realistic eye:
https://youtu.be/n0r0UnaIK_Y
Unfortunately, I could not adjust the (iris). How to make the eyes of the iris respond to light so that it narrows?
Someone who knows and explains deserves great gratitude!

Hi. The language of the site is English. Please translate your question to English.

Hello, everybody. In one lesson, I repeated the Realistic Eye https://youtu.be/n0r0UnaIK_Y. Can't make the influence of the retina on the light? Who knows, tell me a lot of THANKS!

You should edit your question with the translation.

how to make the retina affect the light

how to make the retina act on the light so that it narrows

It might be hard to get an answer before asking the question. I am afraid in order for you to get a good answer the question needs to be formed in a clear and understandable English language first. You should also clearly define your goals, all relevant context of what you are doing and what fails.

Sorry, I can't Express my question correctly. Translate words in Google

I edited your question as well as I could. I hope I did not change the intended meaning. Note that you can edit it further using the edit link at the bottom of your question if any corrections are needed.

Can you post the .blend file to https://blend-exchange.giantcowfilms.com/ so we can understand what part can be contracted?

Any one else looking to help, the Tutorial has a section called Part 6 Pupil Contract starting at 5:04 in the youtube video.

@MrZak I believe your edit introduces a mistake. Please see: https://en.wikipedia.org/wiki/Retina#/media/File:Human_eye_cross-sectional_view_grayscale.png We should be talking about the pupil or the iris.

@MartinZ I was editing according to text of original question; I didn't take into acocunt physics of the eye. Anyone can edit further

@MrZak What was the reason to change it from the way I edited it then?

@MartinZ adding relevant tags. I decided suggested edit was more or less correct. As I already stated above I was considering orignal text. And from Russian "сетчатка" is "retina" - it is advised to edit according to author's idea, not change what they want to say. But then again - anyone can edit or rollback if suggested edit was wrong

So many problems with such a simple question... I guess we will have to wait for user63045 to clarify what he meant when talking about making retina narrower then.

https://ru.wikipedia.org/wiki/%D0%97%D1%80%D0%B0%D1%87%D0%BE%D0%BA#/media/File:Eye_dilate.gif

here is an example


text:
Change Default Render Output to JPEG with 98% Quality
Whenever I save a render to my disk, I typically save it in JPEG format because the vast majority of the time, JPEG saves faster and smaller than the default format, PNG with RGBA color mode.
Because JPEG is a lossy compression codec, I usually set the quality to 98% instead of the default of 90%, since at 98% there is usually little or no loss of quality, and (as a bonus) it can sometimes reduce noise in cycles renders by a tiny bit.
However, each time I save a render, I have to first change the output format to JPEG, and then change the image quality from 90% to 98%.
Is there any way I can set the default image save format to a JPEG with 98% quality?

Open a new project and change the output format to JPEG 98% quality in the render settings panel:

Then, from the File menu, choose "Save Startup File" (or press CtrlU).  That will make your compression setting the default for all new projects, and for images saved from the UV/Image editor window.

Doesn't affect existing projects, but that's fine with me, since I can just apply this change to them as I go.  I'll note however, that with .blend files containing multiple scenes, it must be applied to each individual scene.

@cegaton Aye, I'm aware of that.  However, it would also revert several other settings, which I don't want.

They really should make that part of the preferences.

Could this answer be updated for blender 3?


text:
Creating a gravity lens effect?
I was thinking of doing some scifi models, and it would involve a kind of gravity lens effect, where light is distorted and warped by a powerful gravity field.
I have attempted to create a gravitational lensing effect with a refraction shader, but the results don't look very good.  Refraction BSDF is a surface shader, and as a consequence the edges of the shader effect are plainly visible as shown in the render below, whereas I would want the edges to fade out more.

I've tried a few things to accomplish the desired effect, such as using a mix shader node with either transparency or a refraction shader with an IOR of 1.  I've tried several variations to accomplish the desired effect, but they all either do nothing or just ruin the shader entirely.
I'm using the cycles engine, and any solutions would be appreciated, especially if they don't require render layers or compositing.

So rather than the question being how to create a 'gravity lens' (which you seem to have already done), is the real question 'How do I fade out refraction at the edge of a mesh?'

Well, this doesn't quite come close to a true gravity lens effect (even with the faded edges), but yeah, pretty much.

@ZauberParacelsus I'm not really sure what you want. Is it possible you could upload a reference image of a gravity lens?

Something like this, though not as extreme:  http://www.cfa.harvard.edu/castles/logo.jpg

Main issue is that right now, it looks like a solid object.  However, what I want may not be doable, since blender does not support volume refraction.

I believe that you would want to mix a Refraction shader with a Transparent one, using the Layer Weight's Facing as the factor; This gives you something similar to fresnel, which, however doesn't depend on surface normals, and can be blended.

Yeah, that's one of the things I had already tried.


text:
How to select last imported object with console?
I'm writing a script for fast importing with CSV file. There's a lot of things, like location, scale and quaternion rotation. Problem with the location I've already solved, but scale and rotation are still. I'm importing FBX files. I can set rotation in while importing but there's XYZ rotation and scale is proportional.
UPD: Successfully solved scale problem by bpy.ops.transform.resize. Now I need to change rotation mode there.

You can edit the location, rotation and scale of objects without operators:
bpy.data.objects['SomeObject'].rotation_euler = (0.1, 0.5, 3.141592/180*50)
bpy.data.objects['SomeObject'].location=(0,0, 0.5)
bpy.data.objects['SomeObject'].scale=(2,2,2)

When you import objects from .FBX file the imported objects are usually selected by the importer so you can get the objects by looping through selection:
import bpy

sel = bpy.context.selected_objects

for obj in sel:
    print(obj.name)

What you mean by last imported object is up to you. I suppose you could sort the selection somehow. This might not be the most elegant way, so someone please correct me, but it could go something like this if you wanted to sort them alphabetically by name:
import bpy

sel = bpy.context.selected_objects

sortedObj = [ [obj.name, obj] for obj in sel]
sortedObj = [obj for name, obj in sorted(sortedObj)]

for obj in sortedObj:
    print(obj.name)

The selected objects is a property that returns a list of the current selected objects, not a reference/. Hence could sort the list in placesort(sel, key=lambda o: o.name).


text:
Massive import with CSV file
I have exported game archive with all objects. I also have CSV file with all their details, such as model name, location, rotation (XYZW). How do I import CSV file, and make blender read it and put all objects on the places?
Ps. Z rotation axis must be multiplied to '-1'.

@batFINGER, Hi. Thanks for the reply. Your code helps me but didn't solve my problem. FBX importing doesn't have a location and rotation, unlike UV spheres in your example. I see axis_forward and axis_up in FBX importing example, but I don't know what it is.

@batFINGER, I practised little more and successfully assigned location to object. But a question about rotation and scale is still teasing me.

so after @batFINGER `s examples, I wrote my example. The code is 'Ugly' but in the other hand, it's working
import bpy
import csv

csvfile = "yourfiledirectory\file.csv"
suffix = '.fbx'
with open(csvfile) as csvfile:
    csvread = csv.reader(csvfile)
    for i, row in enumerate (csvread):
        if i==0: continue
        filename = row[0]
        loc_x = row[1]
        loc_y = row[2]
        loc_z = row[3]
        scale_x  = row[4]
        scale_y  = row[5]
        scale_z  = row[6]
        rot_x = row[7]
        rot_y = row[8]
        rot_z = row[9]
        rot_z = float(rot_z)*-1
        rot_w = row[10]
        dir = "directory where your files are"
        bpy.ops.import_scene.fbx( filepath = dir )
        bpy.ops.transform.translate(value=(float(loc_x), float(loc_y), float(loc_z)))
        bpy.ops.transform.resize(value=(float(scale_x), float(scale_y), float(scale_z)))
        for obj in bpy.context.selected_objects:
            a = obj.name
            print(a)
            bpy.context.scene.objects.active = bpy.data.objects[a]
            bpy.context.object.rotation_mode = 'QUATERNION'
            bpy.context.object.rotation_mode = 'QUATERNION'
            bpy.context.object.rotation_quaternion[0] = float(rot_w)
            bpy.context.object.rotation_quaternion[1] = float(rot_x)
            bpy.context.object.rotation_quaternion[2] = float(rot_y)
            bpy.context.object.rotation_quaternion[3] = float(rot_z)

Instead fo loc_x = row[1] and the next two lines, use something like loc = [float(x) for x in row[1:4]]. Then you can replace the bpy.ops.transform.translate line with bpy.context.object.location = loc.
Also, in your loop you can just directly assign to obj.rotation_mode and obj.rotation_quaternion, there is no need to set the active object.


text:
I pressed alt+f to change the camera view and I do not know how to revert to the original camera MOVEMENT
My camera movement (the viewport camera) in blender has become strange after pressing alt+f (and possibly other keys). When I scroll in with my mouse, the camera moves toward the origin instead of where my viewport is 'pointing'. The camera also rotates around the object that feels different than the original setting. I've already tried moving the cursor to center and pressing (.) on numpad but this hasn't worked. How do I completely reset camera movement?

Just found the solution: Messed up zoom navigation, need help! (somehow I locked the view to the object which can be changed in the panel where you press N to hide and reveal it)


text:
Glitchy Shadow effect
Just interested in why this happens. I'll be modelling and after some time the shadow decides to go horrible. A restart fixes it but I'd rather find a fix.
Windows, Blender 3.6.7 LTS, Ryzen 7 5800x, RX 6900XT
[Video of problem]
https://www.youtube.com/watch?v=0UI1VHGOeKs
Not a z-fight, these are all single entities.
(The answer below about the clipping is correct, I alter it when in edit mode when close up to a vertex and it's (invisible) clipping. I change it so I can see it, but never knew it the result would cause this)
Thanks for the help.

Hello and welcome. While files, images, and external videos or links may be helpful additions they should not be the only way to obtain information about your issue. Don't make understanding your question rely on downloading a file, watching a video or visiting an external site. Use the builtin tools to upload images or gifs, along with thoroughly explaining the problem in written form so it can be indexed and searched for thus helping future visitors with similar issues.

Hello check if you don't have a copy of your object or faces overlapping, or please share your file

+1 moonboots ... looks like z-fight.

I will keep that in mind Duarte, thanks for your input.

I should of made clear it was not a Z-fight. My bad for not clarifying that in the post. I will update.

You can try and increase the Clip Start value or the End value from the View tab on the N-Panel.
Sometimes if the object too small or too big you might encounter these artifacts.


text:
Open Recent Not Showing Recent Projects
Pretty annoying,
I've reinstalled, but still the problem lingers.
Recent files is always empty in blender.
If I go to AppData\Roaming\Blender Foundation\Blender\2.93\config
It is keeping a log of recent files.
How do I fix?

Blender Preferences > Save & Load > Recent Files > 0
No idea why it was at 0... This was annoying.


text:
Is it possible to call Mirror eyedropper tool with a hotkey?
I'm hotkey/macro mad, I like to pie menu a lot of stuff.
I'm not keen on opening mirror window and selecting the eyedropper tool.
Is it possible to call the mirror eyedropper tool via script or custom hotkey, so I don't have to find it through windows and panels ?
Cheers.
Whom ever can sort my problem out, I'd be happy to contact you through email and give ya some money for a coffee :D
Movie magic to show what I'm after:
https://www.youtube.com/watch?v=Ct6_jhEgoyM

All over Blender, the hotkey for the Eyedropper is: (hover over relevant field) E.
Typing the initial letters of the target in the field will give you a progressively refined dropdown.

I seen this before posting, not quite what I'm after. Looking to access the eyedropper without even needing to look at the modifier tab.

@MarcVolkers How would the application know what you were talking about?

How does the program know what it's doing when I click the eyedropper ? It's that little piece of code I'm after :) so I can call that function when I hit a hot key or a pie menu link