text:
Emit particles as a cone shaped beam
I am trying to create a beam of particles shaped like a cone.  When I do this from the face of a cube, for example, I get a beam that is normal to that face but I don't know how to make that beam diverge as it travels farther away, sort of like the beam from a flashlight. Thank you!

Did you get this working?

Not yet. Still using a cylindrical beam normal to the emitting face. Do you know how to make the beam diverge? Thanks!

I'll get it going and post up an answer...

(Blend file below)

The emitter is just a section of a standard UV sphere.
Particles are launched evenly from it's faces so the pattern is radial.

The emitter is placed inside 2 solidified but invisible cones that are setup as "collision objects" (physics) so they effectively focus/deflect particles.

If any escape in your version, try increasing the "Particles --> Physics --> Subframe" slider, but be mindful that each increment will labour your computer further.
In this example, (Blender Vers 2.77) the default particle settings were used throughout, apart from the emitter and draw size. (in Display tab)
With this arrangement, force fields or other coersions aren't necessary.  The number and size of the particles plus the renderer used will determine how dense it looks.
-=============-
The circular 'Nav-handle' is a common parent that holds it all together for when the emitter is to be animated,

This worked! Thank you!  A couple of questions, though. Why did you use two cones instead of one? And how and why did you create the Nav-handle to parent? I am using Blender 2.83.

One cone alone couldn't contain the odd determined particle and I was reluctant to increase the subframes, so a 2nd one was wrapped around the 1st.

The Nav-handle is just an empty - a common parent to glue the emitter and cones together so it can be rotated or dragged around at will.  It's not necessary for the emission.  I find when other factors come into things later, such as physics or constraints, it's better to apply them to a parent rather than the model(s) themselves when they're busy doing other things.

As for how -, select the emitter, use SH-S to set the cursor to that location, then ADD an Empty (circle or whatever).  Parent whatever's not parented to something else, to the empty.  Drag the assembly around by the empty, not the models.

Got it! Thanks!


text:
Script is selecting all the objects (unwanted)
Although my script works as it should I'm experiencing a odd behaviour when I run it, all the objects get selected and I have no idea why this is happening.
import bpy
import os
import subprocess
import math
from bpy.props import (
    FloatProperty,
    StringProperty,
)
from bpy_extras.io_utils import ImportHelper
from mathutils import Matrix, Vector
from bpy.types import (
    Header,
    Menu,
    Panel,
)
from math import isclose

class SelectByNameOperator(bpy.types.Operator):
    """Description"""
    bl_idname = "object.selected_by_name_operator"
    bl_label = "Select objects by name"
    bl_options = {'REGISTER', 'UNDO'}

    name = StringProperty(
            name="Object name",
            )

    def execute(self, context):
        for obj in bpy.context.scene.objects:
            if obj.name.startswith(self.name):
                obj.select_set(True)
                bpy.context.view_layer.objects.active = obj
            else:
                obj.select_set(False)

        return {'FINISHED'}

class MyPanel(Panel):
    """Creates a Panel in the Object properties window"""
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'UI'
    bl_category = "Test"
    bl_label = "Test"
    bl_idname = "MyPanel"

    def draw(self, context):
        layout = self.layout

        box = layout.box()
        row = box.column()
        row.operator("object.selected_by_name_operator")

def register():
    bpy.utils.register_class(MyPanel)
    bpy.utils.register_class(SelectByNameOperator)

def unregister():
    bpy.utils.unregister_class(MyPanel)
    bpy.utils.unregister_class(SelectByNameOperator)

if __name__ == "__main__":
    register()

All strings "start with nothing".
Simple test in python console
>>> x = "xxx"
>>> x.startswith("")
True

Similarly with your operator since the default value when not set of a string property is "".
Either test for this, or give it some default.
Note, there is already a similar op, to select all objects that start with "Cube"
>>> bpy.ops.object.select_pattern(pattern="Cube*")
{'FINISHED'}

source: Stack Exchange

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

sort: votes


text:
Use a list for for repetitive tasks
I have a script that is runing fine but I think there is a way to make it more efficient and is by using a list of items, the problem I have is that I'm not sure if I can use the list to perform some operations depending on the items order or names from the list.
In this case I would like to know if I could use the same operator for each item independently or I just have to make a operator for each item (which I think is not efficient at all to write it), since each operator points to a different string.
As you can see in the code, between the lines 122 and 236 there are 3 operators almost exactly the same but changing the string pointer and the class name, imagine now if I have like 20 items do I have to make 20 operators? So I think that having a list I could just add a new item without the need of creating another operator. Hope all this makes sense.
Bear with me, I'm a noob on this coding thingy :)
import bpy

#my_list_that_want_to_use = [
#    {
#        'name': 'WINDOWS'
#    },
#    {
#        'name': 'DOORS'
#    },
#    {
#        'name': 'WALLS'
#    },
#]

class MyProperties(bpy.types.PropertyGroup):
    my_string_windows : bpy.props.StringProperty(name = "Windows", default ="WINDOWS")
    my_string_doors : bpy.props.StringProperty(name = "Doors", default ="DOORS")
    my_string_walls : bpy.props.StringProperty(name = "Walls", default ="WALLS")

class SelectByNameOperator_windows(bpy.types.Operator):
    """Select objects by name"""
    bl_idname = "object.selected_by_name_operator_windows"
    bl_label = "Select by Name"
    bl_options = {'REGISTER', 'UNDO'}

    def execute(self, context):
        bpy.ops.object.select_all(action='DESELECT')
        bpy.data.objects['Light'].select_set(True)
        bpy.context.view_layer.objects.active = bpy.context.selected_objects[0]

        return {'FINISHED'}

class SelectByNameOperator_doors(bpy.types.Operator):
    """Select objects by name"""
    bl_idname = "object.selected_by_name_operator_doors"
    bl_label = "Select by Name"
    bl_options = {'REGISTER', 'UNDO'}

    def execute(self, context):
        bpy.ops.object.select_all(action='DESELECT')
        bpy.data.objects['Camera'].select_set(True)
        bpy.context.view_layer.objects.active = bpy.context.selected_objects[0]

        return {'FINISHED'}

class SelectByNameOperator_walls(bpy.types.Operator):
    """Select objects by name"""
    bl_idname = "object.selected_by_name_operator_walls"
    bl_label = "Select by Name"
    bl_options = {'REGISTER', 'UNDO'}

    def execute(self, context):
        bpy.ops.object.select_all(action='DESELECT')
        bpy.data.objects['Cube'].select_set(True)
        bpy.context.view_layer.objects.active = bpy.context.selected_objects[0]

        return {'FINISHED'}

class ADDONNAME_OT_my_op_windows(bpy.types.Operator):
    bl_label = "Sort"
    bl_idname = "addonname.myop_operator_windows"
    bl_options = {'REGISTER', 'UNDO'}

    def execute(self, context):
        scene = context.scene
        mytool = scene.my_tool

        collectionFound = False

        for myCol in bpy.data.collections:
            #print(myCol.name)
            if myCol.name == mytool.my_string_windows:
                collectionFound = True
                #print ("Collection found in scene")
                break

        # Creates a new collection
        if collectionFound == False:
            myCol = bpy.data.collections.new(mytool.my_string_windows)
            bpy.context.scene.collection.children.link(myCol)

        # Set the new collection as active
        def recurLayerCollection(layerColl, collName):
            found = None
            if (layerColl.name == collName):
                return layerColl
            for layer in layerColl.children:
                found = recurLayerCollection(layer, collName)
                if found:
                    return found

        layer_collection = bpy.context.view_layer.layer_collection
        layerColl = recurLayerCollection(layer_collection, mytool.my_string_windows)
        bpy.context.view_layer.active_layer_collection = layerColl

        # MOVE SELECTED OBJECTS TO ANOTHER COLLECTION ONLY
        objs = bpy.context.selected_objects # List of object references

        coll_target = bpy.context.scene.collection.children.get(mytool.my_string_windows)     # Set target collection to a known collection
        coll_target = bpy.context.collection                                           # Set target collection based on the collection in context (selected)

        if coll_target and objs:                                                       # If target found and object list not empty

            for ob in objs:                                                            # Loop through all objects
                for coll in ob.users_collection:                                       # Loop through all collections the obj is linked to
                    coll.objects.unlink(ob)                                            # Unlink the object

                coll_target.objects.link(ob)                                           # Link each object to the target collection

        bpy.ops.object.select_all(action="DESELECT")

        return {'FINISHED'}

class ADDONNAME_OT_my_op_doors(bpy.types.Operator):
    bl_label = "Sort"
    bl_idname = "addonname.myop_operator_doors"
    bl_options = {'REGISTER', 'UNDO'}

    def execute(self, context):
        scene = context.scene
        mytool = scene.my_tool

        collectionFound = False

        for myCol in bpy.data.collections:
            #print(myCol.name)
            if myCol.name == mytool.my_string_doors:
                collectionFound = True
                #print ("Collection found in scene")
                break

        # Creates a new collection
        if collectionFound == False:
            myCol = bpy.data.collections.new(mytool.my_string_doors)
            bpy.context.scene.collection.children.link(myCol)

        # Set the new collection as active
        def recurLayerCollection(layerColl, collName):
            found = None
            if (layerColl.name == collName):
                return layerColl
            for layer in layerColl.children:
                found = recurLayerCollection(layer, collName)
                if found:
                    return found

        layer_collection = bpy.context.view_layer.layer_collection
        layerColl = recurLayerCollection(layer_collection, mytool.my_string_doors)
        bpy.context.view_layer.active_layer_collection = layerColl

        # MOVE SELECTED OBJECTS TO ANOTHER COLLECTION ONLY
        objs = bpy.context.selected_objects # List of object references

        coll_target = bpy.context.scene.collection.children.get(mytool.my_string_doors)     # Set target collection to a known collection
        coll_target = bpy.context.collection                                           # Set target collection based on the collection in context (selected)

        if coll_target and objs:                                                       # If target found and object list not empty

            for ob in objs:                                                            # Loop through all objects
                for coll in ob.users_collection:                                       # Loop through all collections the obj is linked to
                    coll.objects.unlink(ob)                                            # Unlink the object

                coll_target.objects.link(ob)                                           # Link each object to the target collection

        bpy.ops.object.select_all(action="DESELECT")

        return {'FINISHED'}

class ADDONNAME_OT_my_op_walls(bpy.types.Operator):
    bl_label = "Sort"
    bl_idname = "addonname.myop_operator_walls"
    bl_options = {'REGISTER', 'UNDO'}

    def execute(self, context):
        scene = context.scene
        mytool = scene.my_tool

        collectionFound = False

        for myCol in bpy.data.collections:
            #print(myCol.name)
            if myCol.name == mytool.my_string_walls:
                collectionFound = True
                #print ("Collection found in scene")
                break

        # Creates a new collection
        if collectionFound == False:
            myCol = bpy.data.collections.new(mytool.my_string_walls)
            bpy.context.scene.collection.children.link(myCol)

        # Set the new collection as active
        def recurLayerCollection(layerColl, collName):
            found = None
            if (layerColl.name == collName):
                return layerColl
            for layer in layerColl.children:
                found = recurLayerCollection(layer, collName)
                if found:
                    return found

        layer_collection = bpy.context.view_layer.layer_collection
        layerColl = recurLayerCollection(layer_collection, mytool.my_string_walls)
        bpy.context.view_layer.active_layer_collection = layerColl

        # MOVE SELECTED OBJECTS TO ANOTHER COLLECTION ONLY
        objs = bpy.context.selected_objects # List of object references

        coll_target = bpy.context.scene.collection.children.get(mytool.my_string_walls)     # Set target collection to a known collection
        coll_target = bpy.context.collection                                           # Set target collection based on the collection in context (selected)

        if coll_target and objs:                                                       # If target found and object list not empty

            for ob in objs:                                                            # Loop through all objects
                for coll in ob.users_collection:                                       # Loop through all collections the obj is linked to
                    coll.objects.unlink(ob)                                            # Unlink the object

                coll_target.objects.link(ob)                                           # Link each object to the target collection

        bpy.ops.object.select_all(action="DESELECT")

        return {'FINISHED'}

#################### UI #######################
class ADDONNAME_PT_main_panel(bpy.types.Panel):
    bl_label = "Main Panel"
    bl_idname = "ADDONNAME_PT_main_panel"
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'UI'
    bl_category = "New Tab"

    def draw(self, context):
        layout = self.layout
        scene = context.scene
        mytool = scene.my_tool

        split = layout.split(factor=0.75)
        col_1 = split.column()
        col_2 = split.column()
        col_3 = split.column()

        col_1.prop(mytool, "my_string_windows")
        col_2.operator('object.selected_by_name_operator_windows', text='Select')
        col_3.operator("addonname.myop_operator")

        split = layout.split(factor=0.75)
        col_1 = split.column()
        col_2 = split.column()
        col_3 = split.column()
        col_1.prop(mytool, "my_string_doors")
        col_2.operator('object.selected_by_name_operator_doors', text='Select')
        col_3.operator("addonname.myop_operator_doors")

        split = layout.split(factor=0.75)
        col_1 = split.column()
        col_2 = split.column()
        col_3 = split.column()
        col_1.prop(mytool, "my_string_walls")
        col_2.operator('object.selected_by_name_operator_walls', text='Select')
        col_3.operator("addonname.myop_operator_walls")

classes = [MyProperties,
            ADDONNAME_PT_main_panel,
            ADDONNAME_OT_my_op_windows,
            ADDONNAME_OT_my_op_doors,
            ADDONNAME_OT_my_op_walls,
            SelectByNameOperator_windows,
            SelectByNameOperator_doors,
            SelectByNameOperator_walls,
]

def register():
    for cls in classes:
        bpy.utils.register_class(cls)

        bpy.types.Scene.my_tool = bpy.props.PointerProperty(type= MyProperties)

def unregister():
    for cls in classes:
        bpy.utils.unregister_class(cls)
        del bpy.types.Scene.my_tool

if __name__ == "__main__":
    register()

Would a) make the property group members pointers to a collection instead of stings. https://blender.stackexchange.com/questions/199233/custom-search-data-to-uilayout-prop-search  Can create a dynamic enum for the operator using this data https://blender.stackexchange.com/questions/122589/python-with-blender-using-enumproperty-the-dynamic-way

Hmmm, maybe I'm not following but those suggestions are for selecting from a list existing items, but this case is different since the collections are created by the user with custom names.

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


text:
Custom error message not working
I'm making a blender addon located on the N panel with some custom error messages. On the first button, I get the error message working properly, but in the second button is not working although it seems the structure is the same.
On the second button (the non-working one) if there is nothing selected then my error message should popup but is not working.
What could be causing it?
import bpy

structures_in_window = [
    {
        'name': 'WINDOWS',
        'items': [
            "frame-bnd-[!A-Z]*",
            "glass[!A-Z]*",
        ],
    },
]

class SelectByNameOperator_window(bpy.types.Operator):
    """Select objects by name"""
    bl_idname = "object.selected_by_name_operator_window"
    bl_label = "Select by Name"
    bl_options = {'REGISTER', 'UNDO'}

    def execute(self, context):
        try:
            bpy.ops.object.select_all(action='DESELECT')
            for structure in structures_in_window:

                selection_pattern = bpy.ops.object.select_pattern

                for item in structure['items']:
                    selection_pattern(pattern = item)

                all_in_list = bpy.context.selected_objects.copy()

            bpy.context.view_layer.objects.active = bpy.context.selected_objects[0]

            objects = bpy.context.scene.objects.keys()
            if not 'WINDOW' in objects:
                print('There is no parent yet!!')

            elif 'WINDOW' in objects:

                ob = bpy.context.scene.objects["WINDOW"]
                bpy.context.view_layer.objects.active = ob
                ob.select_set(True)

        except IndexError:
                self.report({'ERROR'}, "Windows not found")

        return {'FINISHED'}

class MYADDON_OT_my_op_move_to_existing_collection(bpy.types.Operator):
    """Move Selected to Existing Collection"""
    bl_label = "Move Selected to Existing Collection"
    bl_idname = "addonname.myop_operator_move_to_existing_collection"
    bl_options = {'REGISTER', 'UNDO'}

    def execute(self, context):
        try:
            bpy.ops.object.move_to_collection('INVOKE_DEFAULT')

        except IndexError:
            if selection is None:
                self.report({'ERROR'}, "Why is not working")

        return {'FINISHED'}

class MYADDON_PT_main_panel(bpy.types.Panel):
    bl_label = "Main Panel"
    bl_idname = "MYADDON_PT_main_panel"
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'UI'
    bl_category = "New Tab"

    def draw(self, context):
        layout = self.layout
        scene = context.scene

        row=layout.row()
        scale_row = row.row()

        scale_row.scale_x = 0.7
        scale_row.label(text="Window", icon="OBJECT_DATA")

        scale_row.scale_x = 2.1
        scale_row.operator('object.selected_by_name_operator_window', text='', icon="RESTRICT_SELECT_OFF")

        row = layout.row()
        row.operator("addonname.myop_operator_move_to_existing_collection", icon="NLA_PUSHDOWN")

classes = [
            SelectByNameOperator_window,
            MYADDON_PT_main_panel,
            MYADDON_OT_my_op_move_to_existing_collection,
]

def register():
    for cls in classes:
        bpy.utils.register_class(cls)

def unregister():
    for cls in classes:
        bpy.utils.unregister_class(cls)
        del bpy.types.Scene.my_tool

if __name__ == "__main__":
    register()

Be explicit if you can and use try, except only if there is no way around it. In this case, you do not need any custom operator, just add row.operator("object.move_to_collection", icon="NLA_PUSHDOWN") to your draw method of the panel, see:  https://blender.stackexchange.com/a/73548/31447 Notice that the context variable is passed to each method, replace bpy.context.X by context.X. Also, the name of the operator class should be something like CATEGORY_OT_selectObject, see: https://wiki.blender.org/wiki/Reference/Release_Notes/2.80/Python_API/Addons

To answer your question: You are trying to catch an IndexError which never being raised because you're not using an index operator like my_list[10] to return a certain entry from a list in your try-block. Recommend take a python course like: https://developers.google.com/edu/python will speed things up, you'll see.

As with your previously closed question  this one treads the line of being more about generic python syntax  than python specific to blender's API. IMO would be simpler to test for an empty list if not context.selected_objects: continue rather than catching an index error  on context.selected_objects[0]    As commented prior would seriously rethink using try-catch.


text:
How to achieve this spline and particle effect?
How to achieve the following effect in Blender?

Source
I tried to apply curves to a deformed surface, but that was a bad idea. the distribution of the curves looks like a magic texture, but working with such didn't work either.
Is this something that can be done with Animation Nodes? Or with a particle system?

maybe it's just a texture which is revealed with a gradient,  the object is deformed, and at the end he has created particles?

https://blender.stackexchange.com/questions/93110/how-to-achieve-this-spline-and-particle-effect


text:
Why when I try to join a low poly tree with icospheres they get distorted
I have created a low poly tree using icospheres as the leaves.
I'm trying to do an Alt +  J to join and get one object and when I do so the icospheres get distorted.
I don't know what is causing it. When I did an Alt +  J (join) on another tree I created (didn't have icoshperes but in the same project), that tree survived the process.
Before join

After join

Any ideas what I'm doing wrong here? (v 2.92.0)

Are there any modifiers in the icospheres/tree? If there is, then the icospheres could be inheriting it.

Looks like an edge split modifier + smooth modifier by the looks of it :)

I fixed it. I think the problem was I applied a skin modifier to the tree trunk/branches and didn't actually "Apply" it. So it was never considered permanent. Once I actually clicked apply  and then did the join, it worked. Probably a newbie mistake but thanks for replying.


text:
FBX shaders messing with materials when importing to Blender
I'm trying to import an FBX model to Blender and when I do, it just completely messes up the materials. I know what shaders the model uses (which are custom) but I want to know if there's a way I can change the shader within Blender/change whatever to stop the materials to look like this.

That color only indicate that Blender cannot find a texture map.

Has been moved to a different location
The connection is lost
If there are more than one texture image if you reload the texture looking in the proper folder, Blender will update the rest of the texture locations.


text:
Why is my animation not correctly keeping location and rotation?
I am sure that I set the keyframes location and rotation correctly, but it doesn't behave in that way. I can't find any solutions in Google nor Youtube.
https://pasteall.org/blend/caceeba41d4940ea8652bccd5ed23271

how to post my blender file?

you can share your file here: https://pasteall.org/blend/ ... but please show some screenshots and give more explanations

https://pasteall.org/blend/caceeba41d4940ea8652bccd5ed23271

I'm not very good at explaining in english so please see the link, I hope you can help me :D @moonboots

Hello and welcome. Please provide some context and explanation about your issue, don't just post, images, videos or links to external sites. See What is the problem with posting an image or link and asking “How do I do this?”

Also there is a question already with the exact same title as yours https://blender.stackexchange.com/questions/96069/why-is-my-animation-not-keeping-location-and-rotation-correctly

The local orientation of the object (called 5 n 1 - ottoman.175) is not aligned with the global orientation, which makes the rotation go crazy (at least in Euler mode as specified by Josh Sanfelici), so apply the rotation before creating animation (CtrlA > Rotation), or, maybe better for later use, apply the rotation, parent 5 n 1 - ottoman.175 to an empty, parent the empty to the main object, and rotate 5 n 1 - ottoman.175. This way, however you rotate the main object, 5 n 1 - ottoman.175 will be able to rotate correctly.

OMG!!! after weeks of finding a right solution to this problem T-T I can now rest in peace <3

Thanks guys!! what a great community <3

This is a perfect example of why we should use Quaternion rotations instead of Euler, when more than 2 axes of rotation are involved in a movement.
To simply solve, you can go to the first frame, switch to quaternions, insert a rot keyframe, turn back to euler, go to the second keyframe, switch to quaternion, insert a rot keyframe. Solved.
For this kind of objects it's better to build an armature or use some empties, make them parents of the objects, and use them to animate, so that those simple movements happen on a single rotation axis, and they get easily edited and automatically avoid theese problems.
Also, you should get the good habit of apply your rot and scale before animating (Ctrl A), and use real world dimensions (now it's 90 meters wide).


text:
How can I make my animation video repeat several times so it is a loop?
My animation video after the rendering is only 4 seconds long tho I want it to repeat several times so I can choose how many seconds the video should have.
My animation video has 120 keyframes it took long to render it with Cycles but unfortunately it only takes 4 seconds and this is too short I would want to have like 20-30 seconds.

hello, use the VSE, import you images, it will create a strip, duplicate the strip, render?

YOU ARE AMAZING BRO!!!! thank you so so much omg it really worked i was searching for lots of days but with your help it worked :)

Open the VSE (Video Sequencer) window, import you images with ShiftA > Image/Sequence, it will create a strip, duplicate the strip with ShiftD, render.

Is it possible to repeat it without duplicate, because duplicate manually is boring.

Here is a similar question here: https://blender.stackexchange.com/questions/76085/how-do-you-make-a-movie-loop-in-the-sequencer it seems like there's no tool to repeat in the VSE, you need a script


text:
Deforming a meshed part after another
I want to be as clear as possible. The red part is the reference here, and I want to deform the gray part in that way that it will look the same as the red one. The ideea is that the red one is deformed because of the injection process and to simulate the structural behaviour I need to transform the gray part.
If you can give me some directions to some specific tutorials, or similar, because I am also new in Blender community. Thank tou very much indeed.[

Hello, do you mean that the grey one will be animated or not?

hello, i don't want to animate nothing, just to deform physically

If the grey one needs to look like the red one, why not duplicate the red one and make it look like what you want with some extrudings etc?

Ok let me be more specific, the part itself(gray) is made by injection process, and after the cooling of the part(red) there are some deformations, contractions of the material and so on. I don't and can't measure the deformations from the red part after it's cooled, so this is why I need. Deform, re-mesh and export the mesh and introduce it to some FEA software

Okay, but injection process, cooling, measuring etc. sounds like real world objects. We are talking here about a virtual 3D model. Deforming inside Blender to the shape of another object only works with another 3D object, not a real object. So when you have the red object in Blender's 3D space and you want the grey to be the same, just duplicate it. If you don't have the red object in 3D space and cannot measure it, how is Blender supposed to deform an object to match the shape?


text:
Not all of the selected model is showing in the UV Editor
I am trying to make a UV map of a MSFS 2020 addon aircraft for the purpose of painting a livery for the aircraft.  I am having an issue with getting my UV map to show completely, which is getting frustrating. The picture below hopefully shows what I mean.  I have selected all of the parts named specifically for this one file, and only a few of them show on the UV.  I can specifically select points on the model, from parts that are missing, and they don't show on the UV.

Hello and welcome, you just need to turn on UV Sync https://imgur.com/a/jsQoBxv

I tried this, but I think the problem is that there is an importing issue.  Your solution unfortunately didn't help.


text:
Cannot pick the object with Eyedropper Data-Block in Curve Modifier
In Blender 3.4.1 (Mac M1) Eyedropper Data-Block cannot picks ANY object as a Curve Object in Curve Modifier. Neither in Object Mode or Edit Mode.

Tried different objects (not only circle) - nothing helps.

Hello, kind of hard to have a definitive answer, please verify that you're actually targetting a curve object, and it looks like you're in edit mode, try in object mode (TAB shortcut)

That’s an object data block field with an eye dropper, not an eye dropper data block.

As I mentioned, I tried in in both modes - and nothing. I took the eyedropper of Curve modifier and tried to put it on Circle - to make a mesh above (active object) something like tire. But eyedropper has no reaction for the circle (or Empty, or Cube, or anything else).

What you need to do is go to your rounded shape that you want to use. Then you right click, and convert to curve.
Then you can use it with the eye dropper.


text:
Customize UV Map of a Noise Texture Node
I'm a newcomer to blender (as you can plainly see from the subject matter in the screenshots)
I'm having an issue with my Noise Texture node which doesn't seem to happen in video tutorials I've watched on the subject. I'm applying a texture to a torus using a UV Texture Coordinate node as the vector input (which is being used as a bump map), but the noise texture seems to get stretched more and more as it travels around the loop (from the picture, the bottom shows correctly, but as you travel counter-clockwise, the stretching becomes worse).

The geometry of the torus is sculpted a bit, but as you can see, the vertices are still fairly regular.

I've tried other texture coordinates, but they look worse, with stretching happening irregularly.

The color of the material is coming in from a square image made with Texture Paint, which might be stretched, but its linear and not noticeable. I was wondering if there is a way to visualize the UV map of the Noise Texture node so I can tweak it, akin to Texture Paint. Or if someone just has a straight up different solution, I'm open to anything.

I think you need to unwrap your model again, it almost looks like it's not unwraped at all

been playing around with the different unwrapping options, sometimes making seams. they all give me a lot of distortion, but they're better than what I had. Wondering what the default UV map was when I instantiated the texture paint image, it seemed like it projected it congruently to a square, somehow. Is there any way to see the noise texture laid out on the UV map?

You must have twisted the original UVs somehow, because by default the UVs of a torus should be straight, but you can still unwrap with the Follow Active Quads option to straighten it


text:
How do i start a particle system in for example frame 80?
I am making a fire extinguisher that spits out fire. and idont want the fire to start at frame 1

When rendering simply choose frame 80 as first frame of the rendered animation.

Particle Properties > Emission > Frame Start / End

Particle Properties > Emission > Frame Start / End Thank you HISEROD

set Frame start and end in particle setting


text:
I installed packages by pip in Blender 2.83, but it is impossible to import them
I'm Japanese and sorry for my poor English.
I'm making an mathematical program which will work on Blender 2.83. Thus, I need to install 3rd party modules to my Blender 2.83 python (e.g. scipy, sympy, etc..).
So, I successfully installed them by pip, following instructions here or using terminal commands below.
C:\Windows\system32> "C:\Program Files\Blender Foundation\Blender 2.83\2.83\python\bin\python.exe" -m pip install --user -U scipy
Collecting scipy
  Downloading scipy-1.6.2-cp37-cp37m-win_amd64.whl (32.6 MB)
   |████████████████████████████████| 32.6 MB 3.3 MB/s
Requirement already satisfied: numpy<1.23.0,>=1.16.5 in c:\program files\blender foundation\blender 2.83\2.83\python\lib\site-packages (from scipy) (1.17.0)
Installing collected packages: scipy
Successfully installed scipy-1.6.2

C:\Windows\system32> "C:\Program Files\Blender Foundation\Blender 2.83\2.83\python\bin\python.exe" -m pip install --user -U sympy
Collecting sympy
  Downloading sympy-1.7.1-py3-none-any.whl (5.9 MB)
   |████████████████████████████████| 5.9 MB 3.3 MB/s
Collecting mpmath>=0.19
  Downloading mpmath-1.2.1-py3-none-any.whl (532 kB)
   |████████████████████████████████| 532 kB 6.8 MB/s
Installing collected packages: mpmath, sympy
  WARNING: The script isympy.exe is installed in 'C:\Users\UserName\AppData\Roaming\Python\Python37\Scripts' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed mpmath-1.2.1 sympy-1.7.1

But, I can't import these modules, in neither python console nor text editor of Blender 2.83.
>>> import scipy
Traceback (most recent call last):
   2.83File "<blender_console>", line 1, in <module>
ModuleNotFoundError: No module named 'scipy'

However, I found that these modules are not installed at

C:\Program Files\Blender Foundation\Blender
2.83\2.83\python\lib\site-packages

, but

C:\Users\UserName\AppData\Roaming\Python\Python37\Scripts

by trying to reinstall these packages.
C:\Windows\system32> "C:\Program Files\Blender Foundation\Blender 2.83\2.83\python\bin\python.exe" -m pip install scipy
Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: scipy in c:\users\UserName\appdata\roaming\python\python37\site-packages (1.6.2)
Requirement already satisfied: numpy<1.23.0,>=1.16.5 in c:\program files\blender foundation\blender 2.83\2.83\python\lib\site-packages (from scipy) (1.17.0)

How do I fix this problem ?


text:
Giving a specific rotation for each instance?
I'm fairly new to blender. Basically, I want to create a bunch of arrows/cones that I can give the rotation of each arrow individually by loading some data. The problem is that I have 5000 data points, and I cannot create 5000 arrows, so I tried instancing; I know the that the idea of instancing is making copies of the same object, but I was wondering if there's a way that I can choose the rotation of each instance individually? So far, I have been able to subdivide a plane and create instances of arrows in each face; however, I cannot rotate these arrows other than randomly.  If there's even a way to do this manually I can figure out a way to script this and extend to 5000 points. I would appreciate it if anyone could nudge me in the right direction. Thank you very much!

For sure, Instance data are independent of Transform data, so you should be able to instance your arrows with rotations dependent on input data points. Could you give an idea of the format of your data-points? Maybe even the file?

I think geometry nodes can help you.
You can position each instance with a math function for example.

Hello Robin, thank you for taking the time. The data itself I can model the way I want. I can transform it into various formats. On my first try, I worked with a numpy file, either a matrix or a flat array. I don't know if my answer helps.. one approach that I tried was using geo nodes to instance cones in a plane; however, I don't know where or how I can give individual rotations for each cone :/. Thank you very much anyways!

Hi, Ismael, I reckon, if you provide an exemplary chunk of data-file, in a format that's practical for you, you may well get an answer that 1: Imports the attributes on to points (location & vector per-point). 2: Uses either more script, or a GN modifier, to instance arrows or anything else on the points, suitably rotated/scaled.


text:
Delete original object after mirroring
I am trying to mirror a bone in Blender so I can compare it to a contralateral bone that is abnormal. I can successfully mirror the bone by applying the mirror modifier, however, the 2 objects are linked so that I cannot delete the original. Is there a way to separate the objects after mirroring them so that I can delete the original? I've seen others asking this type of question but haven't found anything that works yet. thanks

It's one object after applying the modifier. You have to go to Edit mode, select the original bone and delete there.

Wait a minute... Do bones have modifiers in Blender?..

Could you please edit the question and add some screenshots?

@MartynasŽiemys I guess he's talking of a modeled bone like from a skeleton. That would fit the rest of his description of the issue.

@danielnucci As Ffeller said, the mirror modifier doesn't create a new object after applying. It creates a new mesh inside the same object. If you have found other questions but didn't find anything that works, maybe you could point us to the other answers and why they are not working? This would save us from suggesting the obvious solutions...


text:
use "self" in the shader node driver
I want to make a shader with image sequence, which is gonna be controlled by null(empty). So closer the null to an object, the more image offset is gonna be. Image sequence offset is linked to value node using driver, so I can slide image sequence progress. I want to link it to the distance between null and the object itself.
So what I need to get here is distance between object and null. But I don't know how to say to driver to refer to objects' position. Self isn't working here, because, I think, self references to material, not the object. What I wanted to ask, is there a way to say to material driver to refer object that material was applied? I want it to do this automatically, because I will have 50-100 of these objects

I suspect this isn't possible because I think the driver is only evaluated once for each material, then all the objects use the same evaluated material. If you can find a way to do with something you can control with a socket instead of an image sequence it would be easier.

@scurest oh, thats really unfortunate :(
Well, I just started to make simpler version, but I stuck on this moment.
I want to make so if object is in the gradient area, it will turn FULLY to different texture. But I doesn't work as I intended - it becomes different texture only on the edge of gradient, it doesn't turn whole object to different texture. You know what might be solution here?
Can't find a way to insert screenshots, but I hope it is not necessary to understand

You can reference the Object Viewport Color using the "Object Info" node, in the shader editor, allowing you to change the properties in a material per object it's on. And if you split that into RGB, you can make 3 unique values to change in a material by putting a driver on the R, G and B of the viewport color.


text:
Make gradient paint whole object in one color
What I want to do is that I want to have a shader that is gonna be affected by box. If the box is close enough to the object - the whole object is gonna change his color from purple to green. But on the half way it doesn't change the color instantly - it has this half-done color. Is there a way to make whole object change his color INSTANTLY, without this transition?

I don't know if there's a way to do that with just the nodes, but I can think of a loophole. If you go to the UV editors, you can scale the UV to 0.

If you then change your "Texture Coordinate" node to "UV", the color of the object should behave the way you want it to.


text:
Python panel source code
I saw a tutorial where the guy right clicked on any object in the GUI (he chose Transform->Translate) and he got the Python source code for that panel with an indicator for the line where the operator is. That quite a neat trick. Unfortunately it doesn't work for me. I use Blender 2.9 and the video was from 2013.

Enable "Developper Extras" in the preferences, so that you can "Edit source".


text:
Auto-set parameters when panel opens
I would like to set various parameters when I open a panel. By parameter I mean toggling the bounds for an object or changing object.display_type etc. Is there a python way of calling some code (method, script, operator, handle etc.) when I open or close a panel?

I imagine it would be useful to be more specific about the circumstances you’re interested in as “a panel” is quite generic. Do you mean a tool panel? A panel in the tool shelf? A panel in the properties? A panel from an operator (either a custom one (your own or someone else’s?) or a pre-built one). Providing as much detail as possible as to the specific area you’re interested in will drastically improve the chances of someone being able to pick this up and provide an answer.

Thanks for the comment. I didn't really know there are much difference in the panels. I used to put my panels in the properties space, but I changed them to the 3D view tool-tab. They are part of a custom bigger addon I am working on.

Spit data from draw method to a draw call back.

When playing around with draw callbacks noticed that can modify objects, whereas you cannot from a panel draw method.
Here is an example Is automatic "Reload from disk" confirmation in Text Editor possible?
A panel can be registered as default closed. In this case only the poll and draw header method will be called.  When it is expanded we see the content of the draw method. Explained here.
For convenience the drawing class is added to the driver namespace. As explained in How do you remove a draw handler after it's been added?  See also answer to operator error when open a new file re setting up a  on the window manager.
Test script: defines a draw callback class and a panel (default closed). The drawing class has a list being fed from the poll and draw methods of the panel. The list is kept to 5 members. If the panel is being drawn it sees this and sets the active object to 'TEXTURED' else to 'WIRE'.
import bpy
import blf

class DrawingClass:
    def __init__(self, context, prop):
        self.status = [prop]
        self.prop = prop
        self.handle = bpy.types.SpaceView3D.draw_handler_add(
                   self.draw_text_callback,(context,),
                   'WINDOW', 'POST_PIXEL')

    def draw_text_callback(self, context):
        font_id = 0  # XXX, need to find out how best to get this.

        # draw some text
        blf.position(font_id, 15, 50, 0)
        blf.size(font_id, 20, 72)
        blf.draw(font_id, "%s %s" % (context.scene.name, ",".join(self.status)))
        ob = context.object
        if ob:
            ob.display_type = 'TEXTURED' if "Open" in self.status else 'WIRE'

    def remove_handle(self):
        bpy.types.SpaceView3D.draw_handler_remove(self.handle, 'WINDOW')

class HelloWorldPanel(bpy.types.Panel):
    """Creates a Panel in the Object properties window"""
    bl_label = "Hello World Panel"
    bl_idname = "OBJECT_PT_hello"
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'UI'
    bl_options = {'DEFAULT_CLOSED'}

    def __init__(self):
        print("init")

    @classmethod
    def poll(self, context):
        print("poll")

        dc = dns.get("dc")
        if dc:
            while len(dc.status) > 4:
                dc.status.pop()
            dc.status.insert(0, "Closed")

        return True

    def draw(self, context):
        print("draw")
        layout = self.layout
        dc = dns.get("dc")
        if dc:
            dc.status.insert(0, "Open")
        layout.label(text="Open")

def register():
    bpy.utils.register_class(HelloWorldPanel)

def unregister():
    bpy.utils.unregister_class(HelloWorldPanel)

if __name__ == "__main__":
    register()

    context = bpy.context
    dns = bpy.app.driver_namespace
    dc = dns.get("dc")
    if not dc:
        dns["dc"] = DrawingClass(context, "Closed")

Have used similar for a panel "heat" addon, where a counter is added to the panel class for every draw call. After a while "cold" panels, are closed, moved or unregistered.

Notice: You must save the script to __init__.py and put it in a file to zip it.
The file name you can change it for zip.
If you install it without zip, it doesn't work.
import bpy
from bpy.app.handlers import persistent
bl_info = {
    "name" : "Test Call in start",
    "author" : "Public",
    "version" : (1, 0),
    "blender" : (2, 90, 0),
    "location" : "View3d > Tool",
    "category" : "3D View",
}

def get_user_prefs(context):
    if hasattr(context, "user_preferences"):
        return context.user_preferences

    return context.preferences

@persistent
def load_handler(dummy): # you can do something when blender open
    P = get_user_prefs(bpy.context).addons[__package__].preferences
    P.update_panel_category(bpy.context)

class MY_Preferences(bpy.types.AddonPreferences):
    bl_idname = __package__

    def update_panel_category(self, context):
        has_panel = hasattr(bpy.types, My_Panel.bl_idname)
        if has_panel:
            try:
                bpy.utils.unregister_class(My_Panel)
            except:
                pass
        My_Panel.bl_category = self.my_category
        bpy.utils.register_class(My_Panel)

    my_float: bpy.props.FloatProperty(name = "My Float", default = 1.0,)
    my_category: bpy.props.StringProperty(name = "Category", default = "Item",
        update = update_panel_category,
    )
    my_message: bpy.props.StringProperty(name = "message", description = "message", default = '')

class My_Panel(bpy.types.Panel):
    bl_idname = "MY_PT_Panel"
    bl_label = "My Panel"
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'UI'
    bl_category = "Item"

    def draw(self, context):
        layout = self.layout
        P = get_user_prefs(bpy.context).addons[__package__].preferences

        layout.row().operator("message.messagebox", text = "")
        layout.row().prop(P, "my_category")

class MessageBox(bpy.types.Operator):
    bl_idname = "message.messagebox"
    bl_label = ""

    def execute(self, context):
        self.report({'INFO'}, "do something when you press 'ok'")
        return {'FINISHED'}

    def invoke(self, context, event):
        return context.window_manager.invoke_props_dialog(self, width = 400)

    def draw(self, context):
        P = get_user_prefs(bpy.context).addons[__package__].preferences
        layout = self.layout
        layout.label(text="my float")
        layout.prop(P, 'my_float', text="")

classes = (MY_Preferences, My_Panel, MessageBox,)
def register():
    for c in classes:
        bpy.utils.register_class(c)
    bpy.app.handlers.load_post.append(load_handler)
def unregister():
    for c in classes:
        bpy.utils.unregister_class(c)
    bpy.app.handlers.load_post.remove(load_handler)
if __name__ == "__main__":
    register()

Can also look at Panel.is_registered see https://blender.stackexchange.com/a/202896/15543  For a single python file addon would instead call it test_addon.py (or some  such) rather than going thru the rigmarole of zipping and making a zip test_addon.zip to make a folder named test_addon to put a single __init__.py file into.  Do not ever  place an addon named __init__.py directly into any blender  addons folder.

btw not sure that this fits the question remit in that (I assume) OP wants to do something when the panel is expanded as opposed to registered.

@ batFINGER. Exactly right. Both multifile addons and running code on startup are questions I asked priviously. But is not what I meant in this post.

Hmm. I am told that the bounty was auto awarded. I thought that it was given when I accepted the answer. Which I did. Thanks batFINGER!


text:
Bevel with specified radius in python script
I think this is kinda simple. I currently make a Bezier curve and set a circle curve as the bevel object.
R = 0.1

bpy.ops.curve.primitive_bezier_curve_add(align='WORLD', location=(0, 0, 0))
curve = bpy.context.active_object

bpy.ops.curve.primitive_bezier_circle_add(radius=R, align='WORLD', location=(0, 0, 0), scale=(1, 1, 1))
cross_section = bpy.context.active_object

curve.data.bevel_object = cross_section
curve.data.use_fill_caps = True
curve.data.bevel_mode = 'OBJECT'

This is all fine and I can set the circle radius to control the bevel radius. But I would like to make different radii at each end but still specified by a simple parameter:
R_1 = 0.1
R_2 = 0.3

I know this can be done with a taper curve but it not clear how to set the radius with parameters. Is there some simple/obvious/clever way to do this

Assuming you have a bezier curve with only 2 control points and you always want a circle for your shape, you can do this. I think this works, its past my bedtime, but copy paste in the text editor and it should work. Feel free to expand on your wishes.
import bpy

bpy.ops.curve.primitive_bezier_curve_add()
curve = bpy.context.active_object

curve.data.use_fill_caps = True
curve.data.bevel_mode = 'ROUND'     # Gives it a circle shape without needing another object as a profile.
curve.data.bevel_depth = 1          # 1 Meter Radius (NOT DIAMETER)

# These will multipy the curve radius at each control point,
# so best to keep that at 1m and control the taper with these.
start_radius = 0.1  # Radius Multiplier 1
end_radius   = 0.3  # Radius Multiplier 2

# Assuming the curve type is 'BEZIER'
curve_points = curve.data.splines[0].bezier_points

# Assuming your curve only has 2 points.
curve_points[0].radius = start_radius
curve_points[1].radius = end_radius


text:
Convert boolean objects to a single mesh
I have several objects which have boolean relationships to each other. The end object still depends on all sub-objects, so that if I delete one of them it goes away in the end object. Is there a way to convert the end object to a single independent mesh? I tried this but it didn't work:
    end_mesh = end_object.data
    bm_end = bmesh.new()
    bm_end.from_mesh(end_mesh)
    bm_end.to_mesh(end_mesh)
    bm_end.free()

You can also use bpy.ops (to change a little), so it is simply:
import bpy

bpy.ops.object.duplicate()
bpy.ops.object.convert(target='MESH')

This script will add a copy of all selected objects in the scene's main collection with all modifiers applied.
It works with objects that have geometry, not only mesh objects. (Don't select a lamp or camera)
import bpy

context = bpy.context

for obj in context.selected_objects:
    depsgraph = context.evaluated_depsgraph_get()
    m = obj.evaluated_get(depsgraph).to_mesh()
    o = bpy.data.objects.new(obj.name + "_applied", m.copy())
    o.matrix_world = obj.matrix_world.copy()
    # Link the new object to the scene collection if it isn't yet :
    coll = context.scene.collection
    coll.objects.get(o.name, coll.objects.link(o))


text:
Click on mesh coordinates in python API
Is there a way to get the exact coordinates where you click on a mesh in python code? Faces can be big, so the vertices are not really good enough.

when you leftpress somewhere the 3d cursor moves to that place, and it snaps to suface, so you can get the 3d cursor location.

That sounds perfect, but I'm really sure what the "3d curser" is. I can't see it in the view. Do you know how toI access it in python?

in 2.8 it is bpy.context.scene.cursor.location, see documentation for current python api:
https://docs.blender.org/api/current/index.html

related https://blender.stackexchange.com/questions/150267/how-to-move-object-while-tracking-to-mouse-cursor-with-a-modal-operator/150314#150314


text:
General Python UI help
Ok, I've looked all over the place and I'm really stuck. I would like to have a panel with some input variables (like height and radius), which can be typed in. Then I would like a button that, when pushed, executes some python code (like creating a cylinder, moving it, put material on some of the vertices etc.)
But it seems that variables and buttons need to be hooked up to specific operators, so I lose control over the input variables. Maybe I'm thinking too much like Visual Studios forms. I could really use help.

Comments are not for extended discussion; this conversation has been moved to chat.


text:
Constrain point to surface
Is there a way to lock a vertex from object1 to the surface of object2? More specifically I am talking about the end of a spline which should be locked to the surface of a mesh (not only a single face of the mesh).

Use a hook modifier on the control point. Fortunately there is a easy helper operator for that.
Select the control point, CTRL + H > New Object, then go back into object mode, select the empty, add a "Shrinkwrap" constraint and select the target object.

Thaniks. I'll give it a try. But I was hoping that the point stayed on the cube if I tried to transform the point it self, not the cube. So does it work for that as well?

Please be more specific in your question next time. In that case, I'm afraid it won't. The point will get projected on the mesh, but offset by the difference in location between the original position of the control point when you applied the hook modifier, and its final location.


text:
How to rig towing multiple carts / trailers

What is the best way to rig these carts to the pins to allow for realistic towing animation without keyframing every rotation and movement? There should be 2 Z-axis rotation points, one is the yellow pin, and the other is a pin directly behind first cart. Robot already has keyframes that moves it around the scene, and the yellow pin is parented to it. I need the carts to be pulled around wide turns while connected to the pins in a realistic way. I don't care if the cart caster wheels are realistic as well, just need to animate an example of what turning with these carts looks like. Haven't been able to find anything close to this made in the last 5 years.

If you can, I would have the robot run along a curve instead. That way you can use an old curve deform modifier solution. Is that possible?


text:
Make mesh with specific volume material based on real data set
I have a question about visualizing real data. I have a set of points (hundreds of thousands) stored in a CSV file. Each point is defined by a position (X, Y and Z coordinates) and a fourth parameter - the density of the environment (in the range of 0-100 %). The data represent the distribution of a substance (gas) in the space.
I would like to create a 3D model that shows the distribution of the gas. I can import all the points into Blender using Geometry Nodes. However, I don't know how to work with the density parameter. Is there a way to assign a density to each point and then from points create a mesh with volume shader (corresponding to the density of the gas)?
Something like this (the picture shows a render of a cube with volume shader, which represents the variable density):

I tried to use a "Point to volume" Geometry node and then a "Volume to Mesh" Geometry node for my data. But without success.
Thanks for your help!

do you need it to be a mesh? it sounds better to use a volume.  how would the mesh show the Density? I'm confused. would you use a material?


text:
When using Metarig, render result looks swollen

Hello,
I'm trying to use Metarig, which has worked quite well so far.
But in render preview and rendering, the face looks swollen.
I render with Cycles and Nvidia Optix.
If I set the render device to None or HIP, the effect is less visible but still there. With Optix and CUDA, the face looks like a boxer's.
You can also see this clearly on the outliner in the left picture.
Anyone know what could be causing this?
Greetings

OK, found the solution.
the problem was that the image-texture-node for the displacement map was set to non-color and should obviously be set to sRGB instead.


text:
Difficulty seeing through transparency on images as planes
I'm trying to import images as planes to make a diorama in blender, and with Cycles, the images have this strange artifact where you can't see through some of them: The black part in the image below. Right now i have them all as blend mode: Alpha blend, and shadow mode: alpha hashed. Does anybody know what could be going on?

Below is what the same setup looks like in Eevee with a reflection plane, was wanting to use cycles to try to make the reflection they're standing on like water and add some ripples and things. Any idea what could be happening? Thank you!!!

Alpha Blend and Alpha Hashed are only used for Eevee, those settings don't matter for Cycles. Is the above Cycles screenshot showing the Rendered View or is it Material Preview? Because alpha transparency is shown in black in Cycles when you're in Material Preview, it's only transparent in Rendered View. If this is Rendered View then you maybe have to go to Render Settings > Light Paths > Max Bounces and set a higher value for Transparency (or even for Transmission). Then you maybe need to set the Total bounces higher as well.

You got it! The transparency options in the render settings is what did it. Thank you so much!! Blender is great, but there's so many settings that I have no idea where to even start looking when something goes wrong. Thank you so much for your help!!!

I've entered this as an answer with even further explanations. Maybe this will help others as well.

@batFINGER Although that answer has lots of upvotes, the respondent mixes up Transparency and Transmission bounces, especially because he says that from Blender 2.8* upwards you should increase the Transmission bounces. But that's wrong, this wouldn't help in this case. Also he doesn't give hints on the dependencies between Total and Transmission bounces. In his screenshot they both have a value of 12, which is okay. But if 12 wasn't enough, increasing only the Transmission bounces won't make a difference - whereas Transparency (which is what's needed) would work when increased.

Suggest making this comment on potential dupe answer, so Drudge nka  @Ascalon can also make the required  Transmission --> Transparency edit

Yes, I did. I hope this not to be closed as duplicate, because it wasn't clear to me if the screenshot was Material Preview or Rendered View, and there is a different possible solution for the black area if it was only preview as I say in my answer.

Alpha Blend and Alpha Hashed are only used for Eevee, those settings don't matter for Cycles.
In Cycles, Alpha transparency is shown different in Rendered View and Material Preview. Alpha transparency (like from an alpha channel or the Transparent Shader) is shown in black for Alpha = 0 in Material Preview or not shown as transparent at all when Alpha > 0, it's only transparent in Rendered View.
When the transparent parts are shown black in Rendered View then you maybe have to go to Render Settings > Light Paths > Max Bounces and set a higher value for Transparency, this is for materials with transparency set in the Alpha channel of the Principled BSDF for example or where the textures have Alpha maps to mix in with a Transparent Shader or volumes like a Smoke Domain etc. The Transparency Bounces can be set independently without having to change other bounce values.
If you instead have a Glass BSDF or other transmissive material like using the Transmission channel in the Principled BSDF, then you have to set a higher bounce value for Transmission in Light Paths, and maybe even in Total if it's too low. Because unlike Transparency, the Transmission (and other) bounces are dependent on the Total value. Setting Transmission to 16 with a Total set to 4 will result in having Transmission clipped to 4 as well, so the Total value should cover the highest value of the individual bounces (except for Transparency).

PS: I've included the Smoke Domain as example for Transparency bounces because, apart from having a bounce value for Volume here as well, low transparency bounces are what sometimes causes smoke to have ugly black artifacts, which I've seen a lot in smoke tutorials but tutors tend to call it a bug or clipping by the Adaptive Domain.

thank you for all the detail! This is really helpful :)


text:
How to make several objects free fall at different keyframes?
Im strugling at simulating free fall physics interaction. What i want to achieve is resumed in this steps:
1)object 1 falls from certain height
2)object 1 is set to passive at frame (lets say frame=50). When i consider.
3)object 2 is added into scene at frame 50, it free falls and collides with object 1.
3)Repeat
I got everything settled except simulating interaction. I can't make objects fall at certain keyframe and make active/passive transformations at that specific key frame.
I must do it via script, I need to automate the process.
Any ideas?
Thanks so much.

show us what you got so far

Im triying to simulate blind constructiton of Homogeneous Low-crested Structures (HLCS) made of concrete armor units.
I defined serveral functions that I want to call in order,
-cubipod(x,y,z,Dn).concrete armor unit
-HLCS(Dn,a,b,rows,columns,layer)
triangular grid a·b, i·j rows and columns and #layer
-activelayer(layer). Transform #layer
-pasivelayer(layer) Transform #layer
So, my target -> call HLCS layer 1, let it fall, make it passive when all armor units rests, transform everything into passive interaction and call HLCs at layer 2. repeat

Use the bpy.data.objects[“Obj Name”].rigid_body.dynamic or …rigid_body.enabled property


text:
Pen not lifting from canvas
I'm using easycanvas to use the apple pencil as the pen for blender. However, whenever i draw, the pen doesn't lift from the canvas. So after drawing a stroke, i lift the pen up and place it in another location, the last location of the cursor just jumps to the new location and draws an immediate straight line. Any way to fix this ?


text:
Why is my render is a completely different perspective than what I am seeing through the camera view?
Unfortunately I cannot share the file but here is what's up. I am rendering a car model I made. I positioned the camera to render a front 3/4 shot and it worked just fine. Next, I rotated the model 180 degrees to get a rear 3/4 shot. Once I spin the model and hit render, it just starts rendering the front 3/4 view again. I tried moving the camera around and render again, but it just applied the same camera movements but in the front 3/4 view. It's like I am working in 2 different blender files in 1 or something and it is super super confusing! Ideas?? Thank you!

Have you set any keyframes on your model or camera? Hitting ‘Render’ with re-calculate the positions using the keyframes.

A number of things happend when you hit 'Render', prior to actually rendering the frame. One of these actions is to re-evaluate any keyframes. If you have keyframes set on your camera or mesh, these will be re-positioned based on the keyframes - effectively undoing your manual positioning prior to hitting 'Render'. This is a common problem when objects unexpectedly jump back to their positions when rendering or changing frames.


text:
Background plane appears in front on certain angles
So The 2d plane behind appears in front of my other plane that is in front of it at certain angles, like on the photos below.
How can I fix this?

i cannot even see your 2nd plane...!? can you make some arrows to make it clear?

Sounds like alpha blend VS. alpha hashed for blend method in the material settings.


text:
Stretch and skew planes between posts or points on a bezier curve with geometry nodes
I am trying to stretch and skew a series of planes between cube posts on a bezier curve The bezier curve is set to vector to give only straight lines, but in all possible directions.
The plane will need to follow the posts in all directions (xyz) as the bezier curve points are moved or created
I have only been using geometry nodes for a few weeks and I am using Blender 3.4.1

You should update to the current version.

Please be so kind and give feedback if the answer below could help you. If not, please be so kind and share where exactly you need help or what should work differently. Thanks!

You could also, as long as we're only dealing with simple cubic shapes here, use the following setup and build everything with Geometry Nodes:

Here I just convert the curve into a mesh and extrude the edges upwards. Then I split the faces and scale them. First I scale them on the axis that is perpendicular to the normal of the face, and then on the $Z$-axis. This way I get the fence (at least I assume that your example is a fence, because nobody wants to build a wall).
The posts in this example are also instances of a cube created with Geometry Nodes, which I instantiate to the points of the curve and rotate according to the curve points and scale to the desired height.
(Blender 3.2+)

This is exactly what I was looking for, thanks so much


text:
Can we connect to group inputs sockets using python
I was able to create a HSV node and make everything in a group.
Now I want to connect Hue , sat , value to the group input using python.
My job requires to do this for many assets. Hoping that I can make it automate.
Any help will be appreciated

Why are the 3 links red? Is this an error? Shouldn't they be grey? - About your question: yes, this should be doable. Do you want to create the links in the group or outside where the group is used?

Red color is from theme. I want to create link inside group. I am till that point where I can create a group a hsv node with python . But unable to connect socket using code.
Normal node connection is easy maybe group there is something else.


text:
Blender 3.5 Unsupportyed graphics card
Having issues both with meshmixer and blender failing on launch, blender gives me an error regarding a graphics card and drivers not able to support OpenGL 3.3
Currently running a radeon 6600 XT with adrenalin 23.q1.1 as a driver
I've tried reinstalling programs, drivers, and enabling/ reenabling the GPU without success. As far as I'm able to tell, I think this graphics card should be sufficient and previously ran both programs with it several months ago?

Please don't ask two identical questions within minutes of each other!

Hi, Erik, this appears to be a duplicate of https://blender.stackexchange.com/questions/293256/blender-3-5-unsupportyed-graphics-card, so has been deleted for you


text:
Always toggle edit mode off
This one is simple. My operator acts up if the current object is in edit mode. So I would like to make sure to untoggle edit mode if it is the case. The code below works:
bpy.ops.object.mode_set(mode='OBJECT')

But it crashes if no object is active. So something like this:
if not context.active_object:
    bpy.ops.object.mode_set(mode='OBJECT')

Except that this doesn't work, and maybe there is a more elegant way to do it.

if bpy.context.active_object is not None: ?

Thanks. I'm not a python shark... that would be a cool animal, though...


text:
Ray cast explanation
I'm trying to simulate laserbeams going through movable mirrors to see where they end up on some screen depending on the orientation of the mirrors. So I figured that I could use raycast from the laser source to the mirrors and from the location and normal vector of the mirror cast a new ray in the reflected direction an so on.
But I can't get the raycast to work. I have previously used the raycast from 3Dview to objects from the template with success. But I can't find any good explanation or documentation on the basic object.ray_cast() function.
import bpy
import mathutils

source = bpy.data.objects.get('Source')

location  = source.location
direction = mathutils.Vector([0 , -1 , 0])

ray_succes, ray_object, ray_normal = source.ray_cast(location, direction)

But I get this error:

So I lack the basic understanding of how the function works. Any explanation, good answered questions, tutorials, documentation would be really appreciated. I'm open to alternative ways to shine light beams through mirrors which I can then move and rotate with python code.

Object.ray_cast has for a long time returned a tuple of 4 results,as shown in Operator Modal View3D Raycast template, these are  success, location, normal, face_index  The error (please copy & paste  as text from system console in future) displayed is informing you that you only have 3.  Hence Question Closed as dupe..  Somewhat related https://blender.stackexchange.com/a/91019/15543

Hmm. I messed up the three outputs, so @batFINGER helped. But I'm not really sure about why this is a object method when I need to supply a ray-origin as well. And I am confused about local coordinates vs world coordinates.


text:
Multi files to addon
I've spend a lot of time testing several functionalities in Blender and it works great. Each functionality has some operators, methods, custom variables and one panel contained in a separate script. So I need to load each script each time I start Blender or make changes in the code.
This is ok, for testing and POC, but I would like to make it a single addon. I have searched all over the place and it seems that Blender/python is not really too glad of multiple files. I have tried the Blender Development (by Jacque Lucke) extension for VS Code, which has an auto load_and_registre function. But It gets bugged down in some path_scanning_and_modifying-rabbit hole and crashes.
Do any of you have some nice toturial or documentation? Preferably starting at the very start and going all the way to a working addon (with many files)

Probably this is also helpful: https://b3d.interplanety.org/en/creating-multifile-add-on-for-blender/

This was really helpful. Thanks!

Every blender addon is simply a python package with some small differences. if you use multiple files in your addon (package) you should have an __init__.py file in the main folder (and also in every folder in your directory so you can import them  as your local packages). blender recognizes your package as an addon, if you have bl_info (dictionary) and register and unregister functions in your __init__.py file. as described in the manual the simplest example of addons is:
bl_info = {
    "name": "My Test Add-on",
    "blender": (2, 80, 0),
    "category": "Object",
}
def register():
    print("Hello World")
def unregister():
    print("Goodbye World")

relative importing also works because its python but importing is also a little bit different in addons. you should check if bpy module is added before. for example if you have utils and draw package(folders including __init__.py files) or modules(*.py files) you should import them like this:
if "bpy" in locals():
    import importlib
    importlib.reload(utils)
    importlib.reload(draw)
else:
    from . import utils
    from . import draw

the rest is as same as every python package and depends on you!

You can find a list of the referenced text files associated with the project with bpy.data.texts. Access your scripts like this: bpy.data.texts['myScript.py']. You can then extract its content as a string and execute it:
exec(bpy.data.texts['myScript.py'].as_string())

Create a main script and execute all your scripts from this one. For example:
main.py
exec(bpy.data.texts['myScript1.py'].as_string())
exec(bpy.data.texts['myScript2.py'].as_string())

myScript1.py
print("1")

myScript2.py
print("1")

Output:
1
2


text:
Initialize addon
I have an addon with some modules. I would like to execute some code when I install the addon or when Blender starts if the addon is installed. I make a few custom properties, disable a few panels execute some operators etc.
I have the code in one of my modules. I tried just to have the code in the script, I tried to make an operator where the code is in invoke() and I tried to put the code under register(). All of this works when I just run the script in the editor. But none of this worked when I install the zipped package (including an init.py) as an addon.

You need to register a function that has the '@persistent' decoration.

if you want to do something at the time of installing put the code in register function. when you turn on your addon in preferences panel the register function would be called and when you turn that of the unregister function would be called.

Yeah I tried that. But I am calling other operators like: bpy.context.space_data.context = 'SCENE' and I get this confusing error: AttributeError: '_RestrictContext' object has no attribute 'space_data'. Is this because some other Blender stuff (operators) aren't registred yet, or something?

Because bpy.context.space_data really has no attribute context but has attribute type which (I guess) is what you are looking for. this is readonly. this link may help:
https://blender.stackexchange.com/questions/107438/how-to-set-context-to-run-operations


text:
Delete a single vertex from a spline
I want to create a curve with 4 points in python. So i figured that I could subdivide a primitive curve twice and delete one of the points. The code below kinda works by selecting a single point and deleting it. Well, except that by default all points are selected so this simply deletes all the points. I suppose that I can loops through all the points and handles and deselect that way. But you can deselect everything by a single mouseclick (or a single command in object mode), so isn't there a easier/more elegant way to do this?
bpy.ops.curve.primitive_bezier_curve_add(enter_editmode=False, align='WORLD')
my_curve= bpy.context.active_object

bpy.ops.object.editmode_toggle()
bpy.ops.curve.subdivide()
bpy.ops.curve.subdivide()
my_curve.data.splines[0].bezier_points[3].select_control_point = True
bpy.ops.curve.delete(type='VERT')

bpy.ops.object.editmode_toggle()

Actually the looping works fine and isn't so cumbersome. But I'm still interested in a better understanding of manipulating curves, so any answer to my question would still be valued.

What really is the question here?. To create a spline from points would not go anywhere using code above  Dupe of intention:    https://blender.stackexchange.com/questions/120074/how-to-make-a-curve-path-from-scratch-given-a-list-of-x-y-z-points  .  https://blender.stackexchange.com/questions/180148/create-curve-from-numpy-array-using-python

https://blender.stackexchange.com/questions/110177/connecting-two-points-with-a-line-curve-via-python-script  https://blender.stackexchange.com/questions/127603/how-to-specify-nurbs-path-vertices-in-python

Thanks for insightfull feedback. I didn't state clearly that I had to use subdivide when I create the curve and then remove unwanted points

It's becoming clearer. To clarify further is it also a requirement to subdivide twice instead of once with number_cuts = 2. ?

number of cuts?! I didn't know that one. I think that is a lot more what I need. Thanks!


text:
Position, Rotation and Scale blocked when I imported model with animation, any help?
I recently made a polar bear model with an animation that I wanted to import into another Blender file, but when I imported it over using FBX (the animation stayed which was good) it's scale etc. cannot be changed and always returns back to the original imported state.
What am i doing wrong?

You can use File -> Append to add objects (or collections) from one blend file to another blend file.

I faced similar issue once, but It turns out that my position rotation and scale parameters in the Item Transform property panel was locked. U can try unlocking it.
But since this is an animation, I would advice checking your scale in each keyframe to make sure that its not changing.


text:
How do I make this concave shape?
So i have a disk to make for my dad. He wants to buy a 3d printer and i need to make this shape. I have looked every where over the internet and couldn't find a tutorial to make a shape like this one. Can anyone help me?

this is like a cylinder, you need to scale its edges so that it gets thiner towards the bottom, what difficulty have you met?

yeah, show us what you tried so far. This is not a "we do all the work for you"-platform, but a "we help you with what you made so far"-platform.

https://blender.stackexchange.com/questions/111986/simple-way-to-create-a-curved-tunnel-between-two-planes/112004#112004

Sorry I haven't been on the pc for a few days. I was thinking i could make a cylinder to make the base and the make an uv sphere, then i used the boolean modifier but it didn't look like the picture from above

Welcome on the forums, to get you started...
I used a modifier to spiral a curve line
next added a modifier to make it solid
next added 4 cylinders by mirroring one.
next i did a boolean operation to subtract the 4 cylinders.
for visibility i altered the 4 cylinders so you see them as wire frame.

Note you can change this file, the modifiers, or in edit mode change the curve or the cylinders.

nice work!!!!!!

nice work but i tried doing the same thing you did and its looking not even close to what you did.

its probaply because of the settings I used to have more in betweens than the default for the spiral.modifier


text:
Is there a way to freeze/cache nodes so that it doesn't have to reprocess everything?
I'm working on a geometry nodes setup, there is one node which input doesn't change, but this node takes a long time to calculate, and I'm constantly changing things that aren't affecting this node, is there a way I can skip its calculations? Kinda like the freeze icon in Houdini. I guess the answer is no, since I couldn't find anything, but maybe someone knows something cool.

It is no longer true that Blender cannot cache the result of a node in Geometry Nodes.
From Blender 3.6 and onwards, Blender Foundation have added the Simulation Zone nodes to Blender, which can encapsulate a portion of your nodes.
Once you have successfully encapsulated the nodes you wish to cache, move over to the Physics tab within the Properties editor and find the Simulation Nodes section. Note that while this was placed in the physics section, it will cache anything that comes out of the zone, not just physics.
If it is not expanded, expand it. Now you can select the Cache checkbox, and then choose either the Calculate to frame or Bake options to cache the data which you need.
Once this is enabled, you need to delete the data with the little trash can button next to bake to remove the data or click bake again (or both) when you do something that might update the results of the nodes within the simulation zone.
Also note that for versions 4.0+ Blender has another zone type called Repeat Zone, which is distinct, and at the time of writing this does not allow caching for that zone type (unless perhaps if encapsulated in a simulation zone, but I have not tested this to see if it works).
I am hopeful that they will add some smarter built-in caching and detection of which changes in data flow would require updating of caches automatically, but Simulation Zones are what we have for now.

Sadly, at its current state it's a little bit of a "out of a frying pan, into the fire" situation - sure, sometimes you have a complex process generating a light geometry, but if your geometry is complex (basically a lot of vertices), a simulation zone will quickly flood the cache.

For something complex, what I did was limit the number of frames in the timeline editor. That way, you can see the results without the complexity getting out of hand as the frame number increases, since it will start over after just a few frames. It's a workaround. It still isn't ideal, since it would be better to be able to cache the results of Repeat Zones in Blender 4.0+. Repeat Zones let you determine the number of iterations to perform all at once. You could store the results for each iteration by having a separate output for each iteration increment, but that kind-of battles the purpose.

This answer is for Blender versions lower than 3.6, if you are using 3.6+ you can find the solution in the other answer.

No, unfortunately this is definitely not possible in Blender with Geometry Nodes.
...even if I would like to have exactly this possibility as much as you!
Either the nodes are active and create a geometry, or they are not.
A temporary caching of a certain part of a node tree, as it is possible for example in Houdini, is unfortunately not achievable in Blender.
The only alternative you would have would be:
Create the computationally expensive part as a separate node tree, and create a permanent geometry from it each time by applying the modifier. However, this process would then have to be performed again after each modification.


text:
Volume godrays way too noisy
I've been trying to make godrays but they take a lot of samples in my scene. It's an interior and I wanted to have some god rays from the windows, I know volumetrics are expensive, but is there a way to have more samples on the volume instead of spending it in everything else? There used to be the branched path tracing, which would be so so so useful right now, but they removed it. I tried more/less bounces, increasing the step rate and max step rates, and other stuff, but none helped.
Here's an image og the result with 15360 with a noise threshold of 0.005, also tried it with no noise threshold, and it didn't help. Step rate 0.01,  max steps 4096,  volume sampling: multiple importance,  interpolation: linear,  Homogenous

It looks like you are trying to light a dark room with one light source through a window and with a volume shader. Have you tried using portals to help guide the light paths and reduce noise?

@L0Lock, yeah, there are portals in the windows, everything else is decently noise-free, except the volume

I'd like to see the scene and check different things - and I guess I'm not the only one. Could you please go to file > external data > pack all into .blend, then file > save as > open the sidebar and enable compression before saving a copy of your file, send that over Blend-Exchange and share the link here so that we can dig in?


text:
How to change the index of an object inside of a collection
I'm using Geometry nodes to create a voxel like terrain, I have different model for each terrain type (grass, rock...) inside a collection. I also have a setup so that I can change between them through weight painting, which is linked to the instance index of a instance on points. But the order is not customizable it sets it up as dirt, grass, rock, but I want the order to be grass, dirt, rock. I've searched and I couldn't find an answer for this. Is there a way to change the order?

The objects in a collection are read in order.
The first object in a collection has index $0$, the second object has index $1$, and so on.
So the question is: How can I change the order of objects within a collection?.
The answer is:
Start the identifier of an object with a number.
For example, change the names of:

Dirt
Grass
Rock

to:

000_Grass
001_Dirt
002_Rock

Thanks for the answer, at first it didn't work when I tried it, but it turns out you have to reparent it to the collection for it to change. Thank you very much!

@SebastianEspinoza You're welcome! By the way, it should also work if you simply deactivate and reactivate the Geometry Nodes modifier after a change. ...possibly a bug?

Is this still true?  It seems a bit silly to have to resort to this hack.  We need a way to map from Object to Integer.

@SO_fix_the_vote_sorting_bug Yes, this answer is still valid (Blender 4.2), as objects within a collection are still sorted in alphabetical order.


text:
How to orient instances on a curve towards next point and not along tangent with geometry nodes
I'm trying to intance objects along a curve, but every setup I find uses the tangent of the curve, this is what I'm trying to achieve:
.
I've already tried these methods Method 1 Method 2, but both of them make the instance follow the tangent of the curve.
Here's my current setup:

Would this geometry nodes tutorial by Joey Carlino help? https://www.youtube.com/watch?v=T_ZzO86dBIA

Have you already tried this variant? https://blender.stackexchange.com/a/259117/145249

Hey @JohnEason I've tried this after you mentioned it, it uses the vector tangent, so sadly it doesn't work for me

Hey @quellenform, I tried it and it also didn't work

Ok. Worth a try! :^(

This version subtracts the Position at Index of the resampled curve from the Position at Index +1, and uses that vector to align the instance at Index:

The Length of that vector could be used to stretch (Scale) the instances exactly between points, if that's what you wanted.

If you sometimes had to deal with cyclic curves, that would additionally require a Switch on Is Cyclic, to include an instance on the curve's last point.
The stretch and cyclic features are included in the .blend:

Since a new question is redirected here as duplicate - this is similar to how I would have done it, little differences because the other question wants arrows instanced on points pointing in the direction of the previous segment. So @AAAYerus if you come here for the solution: in your case you would have to subtract 1 from the index instead of adding 1, and I would also plug the Index into a Greater Than 0 node for the Selection input of the Instance on Points, because the first point has no predecessor.

@AAAYerus One more thing, the Field at Index node is now called Evaluate at Index and it is actually only necessary to get the Position at Index + 1 (in the answer) or Index - 1 (for your case), because the Position will automatically be evaluated at Index even without an extra node.

Very similar to Fred's answer, just another approach:

Here I simply subdivide the curve with Subdivide Curve, then transfer the tangents of the preceding points back to the points at which an instantiation is to take place, and ultimately use these tangents to create a rotation for the instances.
(Blender 3.2+)

May be another approach will work for you, it's less elegant for sure but any way.
Just resample the curve 2 times, the first is the curve definition you need (d), now resample it a second time by (2*d)-1, it will give you intermediates points in the center of the segment obtain with the first resample. Then use Curve to points. Now you must delete all the points made with the first resample they are odd so you can easily select them with a modulo.

I hope it will help.
Edit: I have change the .blend, now the length of the instances match the length segment, almost...

This one almost works, but the moment you have something that's not the right length it goes wrong.

Ok, I try to edit the blend with the right length this time...


text:
I'm looking to make a volumetric material only show up when Light hits it
I've done this with a Principled BSDF to make a light cycle on my earth scene, and I want to do the same with the volumetric atmosphere, but it doesn't seem to work with volume the same way a material does. Ideas?

Can you illustrate the effect you want to achieve? (Volume scatter will only scatter where there is light, anyway, for example, ... you want some extra special effect?)

@RobinBetts
link
This is somewhat the affect I'm trying to get. I want to capture that halo around my earth, like fresnal.
When I use a volumetric in a sphere then it's visible even if the sun lamp isn't looking at it

I think you may have more luck, here, stating the base problem, maybe illustrated with your picture,  than trying to fix your proposed solution. Your choice, of course. You say: 'like Fresnel'. Maybe explain why Fresnel, itself, is not doing it for you.

@RobinBetts I'm not sure why fresnel doesn't work or I may not be using it correctly, but the thing is, the method I'm using works, just not when I use a Principled volume in the volume outport, I can swap the volume for a BSDF and throw it into the Surface of the material output and it works, But I'm trying to do a volumetric atmosphere. Maybe it's not something I can do I don't know.


text:
Exploded .obj import
I am new to Blender and tried to open a purchased .obj from TurboSquid. The model opens exploded... am I missing a setting during import to keep everything together? Reference to what the model looks like when imported versus what it is supposed to be are attached. Please help!
Jim

"am I missing a setting during import" Yes untick the option Import Exploded. Seriously though, this is obviously an inconsistency between different software storing object relations differently. Try to clear parenting with Alt + P and clearing transforms with Alt + G

try to explain which import options you are using, and if you tried different import settings... (eg: split settings?)  this could be easily due to that specific object you purchased, so I guess we can't try to reproduce...

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


text:
I need a hint to model a modern heater radiator

Doing it in edit mode, start with a plane and then extrude them at all, use booleans..., the main stopper are the curved blades and how to combine them with the central vertical pipe and the cilinders... the image shows two modules, I only need a half module (mirror modifier and array will do the rest) I apologize if i'm asking this in a wrong way.

Depending on the amount of detail you need, it is rather easy to model.
I made this in just a few minutes (took me longer to write this answer).

First break down the object, and think about each part.
There are nine fins (and it looks the same front and back), so use a plane Solidify, Array and Mirror modifiers to make those.
The bottom corner is beveled on all of them, so before applying the array modifier bevel the bottom vertex CtrlShiftB.

Add a plane as a separate object to use as the back.

Back in the original object, now with the mirror modifier applied, start editing the individual fins. Move the center three up. Extrude the bends for the inside ones, and extrude the outside frame.

Just add two cylinders, and bevel the remaining corners, and tweak the shape.
It really pretty easy. Use the modifiers! Solidify and Mirror are a must for this object.

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


text:
Filling space inside cookie cutter
I'm trying to 3D print a cookie cutter but it has a space in it, I want to fill it but I don't know how, I'm a beginner, it has so many triangles that I don't know what's the best approach.
Thank you everyone for any help!

Maybe try this way, select the outer edge, duplicate and move it down:

Fill it with F extrude it:

move the new piece up until it intersects with the object, then Face > Intersect (Boolean) and in the Operator Box choose Union:

Recalculate the normals, clean the topology, etc
In your case, in the file you share, you have overlapping vertices, select all, press M > Merge by Distance. Also, in order to prepare the boolean, select all and X > Limited Dissolve. Fill the edge loop you've created, extrude it, recalculate the normals, move up the extruded mesh, boolean (Union), use the 3D-Print Toolbox addon to check the topology, you'll have some corrections to make.
Final result:

File corrected:

Great idea! I tried it but when I try to fill it it doesn't fill it entirely, here's what happens (sorry I don't know how to upload an image in an answer): https://imgur.com/a/75Gk8DO

what does it give if you press Alt F? or please share your file https://blend-exchange.com/

It's this file

I've edited my answer, after the boolean your object will still need some works in order to make it manifold and printable, I've linked the file once corrected, it should be manifold now


text:
Donut going under plane

Following blender guru tutorial part 6, timestamp 10:15 he adds a plane, however unlike mine his sticks under the donut right away. I probably messed up along the way, but i don't know where exactly.

A new object will appear where you've put the 3D cursor, so maybe you've moved the 3D cursor, or the donut. To put the plane at the center, select it and press Alt G

You can use face snapping to have an object "stick" to another one when moving it.

Just click on the magnet icon and select the square (face) on the dropdown next to it.


text:
Lighting is off
I've been following Donut tutorial part 6, and in terms of light settings, me and Blender Guru are using the same, but seems like my rendered donut is.. you can't even tell that it's a donut. Did i mess up along the way?

Hello, the stregth of your light is pretty low, what does it give if you increase it?

@moonboots it seems fine but the difference is quite big, what bothers me is that 20w seem to be enough for him, but not for me :( I wonder why, when i've been following carefully the tutorial

Is he using a Point lignt? Also, is yours far away from the objects? Please share your file: https://blend-exchange.com/

It would have been great if you included the light object in the screenshot so we could see the distance - maybe even the XYZ values of the location. Andrew moves it all in all about 0.96 m off the world center. That is not very much - where is your light? If I use his settings and place the light where he does, it looks the same on a small torus like in the tutorial. If I leave the point light at its default location from the startup file (that's 7.24 m from the center) and set it to 20.2 W, it looks like your result.

@GordonBrinkmann Thank you! Seems like this was the issue, i moved the light object closer to the donut and it seems like there's proper shadows now, however another problem occurred where the render is really pixelated. What could be the cause?

@Mono That depends on how it looks and how you've set up the render, it can have many different reasons. However the comments section is not for solving multiple problems, better post a proper new question with screenshots of the issue and the render settings.


text:
Shader to RGB node not working with GLOSSY shader in 4.2
So, I basically use Glossy with Shader to Rgb for reflection many times, and I checked blender 4.2 today and the method I uses is not working anymore.
I don't know why (and yes ray tracing is enable and I am still not getting any reflections "with shader to rgb").
please help.

I do not know what kind of 4.0 you have there, but I tested it on my PC with Blender 3.6.9, 4.0.2, 4.1.1 and 4.2, the behaviour is consistent in all versions. As soon as I plug the Shader to RGB node inbetween, the reflection disappears. The only reflections the Shader to RGB node shows is the environment (grey in your case or an HDRI in my case). And this still works in 4.2, so I cannot see any change.

It is a bug: https://projects.blender.org/blender/blender/issues/123017

I forgot to mention I am using a light prob - reflection plane on both side.


text:
Keyboard Shortcuts in Edit Mode gone
I just updated to Blender 4.0 and now the keyboard shortcuts I use the most in Edit Mode are no longer working and I can't find how to get them back.
A to select all, D and del to delete, S for scale, g for grab, r for rotate. 1-vertex select, 2-edge select, 3-face select.
How do I get these shortcuts back?

Hello and welcome. Try to do a factory reset, inside File menu. Also, I'm not sure that D is for delete, but X and "Del" are, you could also rearrange the shortcuts inside Edit >preferences

Yeah, miss report on my part, I meant x for delete.

I was able to get functionality back by loading factory preferences under Edit>Preferences then the Save/Load menu at the bottom left of the window.


text:
some faces not showing material correctly
I have this simple star mesh where 2 faces don't show the texture correctly.  I've unwrapped the UV, deleted the faces and remade them, and made sure the face orientation is correct.

hello could you please pack your image and share your object?

https://www.dropbox.com/t/H5E9kkTTmhg9Oy6m zipped the blend file and image.

Hi! The textures are missing from the blend file, could you please pack your textures and re-upload. File > External Data > Pack Resources, then save.

Sorry, those were just some old links, all the textures actually used are procedural. I did remove the unused textures and then packed the external data here. https://www.dropbox.com/t/H5E9kkTTmhg9Oy6m

it just looks like a lighting problem, if you rotate the object it will display the texture as it should

Thanks, weird I thought I had tried moving lights.

The rest of the star has been assigned the material Gingerbread but these 2 problematic faces have been assigned the material Gingerbread.001. The difference between the 2 materials is that the Gingerbread material is connected to the Texture Coordinate > Object socket and the Voronoi Texture > Scale is set to 5.00, the Gingerbread.001 materials is connected to the UV socket and the Voronoi Texture scale is 30.50 !  To fix, assign the 2 faces the same material as the rest of the star (or set the Voronoi scale value to 5.00).


text:
How To Add Text to Side of Object/Mesh?
This seems like a simple thing to do, but I can't quite figure out how to do it. I want to add a label (text) onto the sides of my object like in this picture:

What is the best way to go about this? For reference, this is what my mesh looks like now:

NOTE: The text should fold over the top and bottom of the cover as shown above; AND I need a method that will work with importing it to Unreal Engine 5.
Thanks for any help!

You have to UV unwrap the object and place the UVs on an image texture accordingly. Maybe you should watch tutorials on UV unwrapping - because if you need this more often, it is worth learning it more in-depth instead of just getting a quick answer only for this specific case.

Select all the cylinder faces, switch to front view and unwrap with the Cylinder Projection option, then select the top and bottom face and simply unwrap: