text:
Measure tool: different results with/without snap
as you can see in the picture, I'm getting different results when measuring with/without snap.
The last 3 measures do not use snap, while the rest do (either one side snap or two sides snap)
The objects are a small cube (1mm x 1mm) on top of a big cube.
It also happens that when measuring, without holding control, from the left edge of the big cube to the left edge of the small cube, I get 1 mm, but when I hit/hold the control key, it automatically changes to around 1.8 mm. The 0.996638 mm uses no snap.
The 2.3768 mm I get when starting without snap and then the end point with snap. The 2.52483 uses snap on both ends.
The 1.83096 uses no snap
The 1.83705 mm uses snap in both ends.

How can I prevent this? or why is this happening?

Hello and welcome. Your screenshot looks a bit messy and hard to understand and your explanation is also confusing with a bunch of random measurements. Can you share your blend file? https://blend-exchange.com

Your screenshot is not very clear and your explanations what you are snapping to aren't very clear either. The only thing I can see is you are seemingly measuring in Top Orthographic view, but I have no idea how your geometry looks like.
So, I did the same with my own geometry and in the following screenshot the upper length 3.00162 m is measured with snapping, the lower value 2.14531 m is measured without snapping:

Now these values are quite different - how can this be? Well, looking at the measurements in Front Orthographic view makes it quite obvious: the measurement with snapping was measured snapped from a lower edge to a higher edge, while the measurement without snapping was simply measuring straight horizontally at the height of the 3D cursor. Of course the diagonal length is more than the horizontal length:

This is just hypothetical since you don't provide enough information on the geometry you are measuring, but it is a possible explanation of what is happening there.

exactly the scenario that's most likely happening!

@HarryMcKenzie Not the first time that someone is confused about results from the Measure tool. I'm sometimes just wondering why people make the effort to get screenshots and write a question with lengthy explanations but don't bother to take a look from a different perspective at what they are actually measuring. But at least it gives us the opportunity to help with answers :)

Thank you, that makes sense. It's all about 3D...
I'm very new to Blender and have no prior experience with other software, so I see that the "orthographic" view is... a "view" and doesn't actually "flatten" the objects. I even used the "user" view, but flat, and the measures where the same... but when I rotated the view a bit, I could see that the snap tool was actually starting from the bottom edge.
I also just found out that when there's an "x" inside the circle, it seems to pick the bottom one, while when the circle is "empty" it picks the top one... thanks again!

@GordonBrinkmann yeah i actually have answered the same thing on another question with similar scenario here haha https://blender.stackexchange.com/questions/271709/measuring-and-setting-exact-distance-between-two-objects


text:
How does 'Trim Curve' node evaluate the order of splines?
I'm animating trimming of Curves with Geo nodes. My setup looks something like this.
I'm delaying the start of the animation for multiple curves.
I don't know how to control the order in which the paths will be trimmed.
I guess the "Trim paths" node trims these paths according to their Index number (in pink)? If so - can I rearrange this order?
I'd like the paths to be trimmed based on their X position. The ones most to the left should trim first, and the ones most to the right - last. How would you go about that?
Cheers

I guess the "Trim paths" node trims these paths according to their Index number (in pink)?

Yes. If the paths/splines are part of a single curve object, then it is the order in which you created the splines.

If so - can I rearrange this order?

Not easily. One option is to separate the splines into their own curve objects (L and P combo) and then join them (CTRL+J) in the order you want.

I'd like the paths to be trimmed based on their X position. ... How would you go about that?

From Blender 4.1, you can use the Sort Elements node to sort the splines. The sorting weight can be either the start or the end point's X coordinate of each spline, which you get by sampling the splines with factor of 0.0 or 1.0, respectively. You can use different factor if it makes sense for your use case. In edit mode, you can switch direction of individual segments/splines to control the sorting and animation flow.

See the animation results for factors of 0.0 and 1.0 (only difference is the order of splines 2 and 6).

For better control over the splines order, it would be wise to separate the splines into their own objects and put them into a new collection. You can then use the Collection Info and Realize Instances nodes to work with the splines inside the geometry nodes. With the Separate Children flag, the node will sort the splines by their curve object's name, which you can easily control.

source: Stack Exchange

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

sort: votes


text:
Mesh converted to volume looses stored attribute, how to shade it?

Hi,
I have a piece of geometry that I made by extruding a spline (Bezier + 'Curve to Mesh' with a rectangular profile) in Geometry Nodes.
I convert it to a Volume. and now I'd like to apply a gradient to the Emission slot in the Volume.
Im using an attribute caught before extruding. That attribute doesn't work when the geometry is coverted to a volume.
Is there a way to make it work somehow?

This is not currently possible 'as is' for geometry nodes. There are a number of nodes in experimental development  for storing / sampling from volumes, but currently when a mesh is converted to a volume you can't then store additional data on the volume.

I see. Hope this will be possible one day :) Thanks for confirming this @bunchofbradys !
Have a good one.

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


text:
Are these bones correct for a simple model?
I've been making a low-poly model for my game, and I'm not very experienced with 3D modelling. Are these bones near the top of the model in the right place? I spawned the rig using rigify and positioned them the best I could

I also wasn't sure about the "shoulder" bones, since they've been spawned in the clavicle.
Here is the file (and the .blend1) in a zip if it helps https://drive.google.com/file/d/129AjhQ-FKjjefdGwjQMd9sU3vkCcAM9h/view?usp=sharing

I'm not sure why you have several bones for the spine, for the neck or for the hand, the mesh is not subdivided on these parts, so you either need more topology on these parts, or remove the useless bones, depending on if you need them to bend or not. Try to align the bones head to the edges of your mesh. For the shoulder bones, you could stick the head to the top spine bone (and the tail to the arm's head), it should not change anything. Also you'll have to give IK constraints to some of your bones and create their IK controllers, it's easier to move the limbs with IKs.

Though when using rigify, make sure you don't delete bones needed for generating the rig. Check the manual : Rigify — Blender Manual

oh ok i forgot that, i don't know enough about rigify

Also see the Bone Positioning Guide — Blender Manual

Ah, I didn't know that you needed to split the mesh where it needs to bend, I just assumed that it made like artificial topology when the armature bends the mesh, and if IK makes it easier to animate I'll have to try that, thanks.

@L0Lock what does the rig do? I've never used it, I just put the metarigged models straight into unity

I didn't mean split the mesh, just make sure that you have a topology that will be able to bend (a series of edge loops)

Sorry yes I meant that, I worded it poorly

The metarig is a placement tool to generate the actual animation rig, it isn't meant to be used as a rig. I will not make a better job at explaining it than the docs, so feel free to have a look at Rigify — Blender Manual

As a foreword, do understand that the best source to learn Rigify is its manual: Rigify — Blender Manual.
Specifically, if you want to use the metarig correctly, you should follow the Bone Positioning Guide, basically to the letter. If you have troubles following that, I invite you to post a new topic describing the specific issues you encounter then.
About your file specifically:
Character is out of scale
If you look at the dimensions of your character, the rig is already 7.53 meters high. As a comparison, the default rigify metarig is already 1.98m high, which is taller than 99.96% of the average 30 years old male from the United States.

You might not worry about having accurate scales now, but make sure you are in the right scale in Unity at least. Because physics use real dimensions, and so does some parts of the rendering process.
What is the metarig and how to use it
Many users think of the metarig as an actual rig that they can use as is. But it really is just a temporary placement tool to generate the real animation rig with all the functions that makes your life better when animating. As the manual sais:

Rigify stores all the information required to generate complex rig controls and mechanism in more simple armatures called “meta-rigs”.

If for some reason you really do not want the full rig, you do you, but then you should consider other tools that might do a better and simpler job at it, like Mixamo's automatic rigging.
As for the metarig, to be used as a rig, you should edit it heavily. Its bones are not made to perform as a rig to begin with. Depending your model, bones will need to be deleted, dissolved or added.

On the left side is your rig with the original metarig, on the right is a modified metarig where I quickly removed the unnecessary bones, dissolved (⎈ CtrlX in edit mode) the bones in a chain where the character's model didn't have the geometry to support so many points of deformation.
On the left you have 50 bones, on the right you have 24. That means, lighter files, and fewer headaches when skinning or animating.


text:
How to apply rotation for Text in blender?
Target : Trying to use instance for text in circle
Current without text rotation:

After Rotation of text for X (Problem)

Circle Instance Properties:

Required: Align to Vertex Normal

Tried:
Converted to Mesh and then applied rotation.
Disadvantage: It is tedious and cannot edit it later.

You could do this with Geometry Nodes. Would this be an option?


text:
Create curve from Numpy Array using Python
I have looked through previous questions on this and many other boards and I cannot seem to find a previous answer.
I have a largish Numpy generated ndarray that represents a harmonograph output (40000,3) using coords_list=np.column_stack((x,y,z)) of the individual axis outputs. Its all in one plane at the moment but this may change. Snippet shown below.
[[ 9.66087215e-01  1.78218213e-01  0.00000000e+00]
 [ 9.81957877e-01  2.04711827e-01  0.00000000e+00]
 [ 9.97284974e-01  2.31680099e-01  0.00000000e+00]
 ...
 [-5.26862572e-07 -5.59294782e-05  0.00000000e+00]
 [ 4.18313552e-07 -3.48825009e-05  0.00000000e+00]
 [ 5.71013430e-07 -1.62274906e-05  0.00000000e+00]]

Is blender to be able to read this array to create a curve. I've seen a number of questions that are similar but when I replace the list with an array I get errors as a list was expected rather than an array.
For example - ( How to make a curve path from scratch given a list of (x, y, z) points?). Many others seem to casually say that the lists can be replaced by an array but with no examples, I am a bit flummoxed.
I have also looked at using the foreach_set method to extract vertices from the NumPy array. But it's way over my head at the moment.
Do I need to convert my array to another format so they can define a curve?

I have also looked at this. Note the comment regarding the array replacement. link

Create POLY type curve from numpy array
Script below creates a POLY type curve from 4d SplinePoint.co numpy array.

Script result in edit mode
import bpy
import numpy as np

def flatten(*args):
    c = np.empty(sum(arg.size for arg in args))
    l = len(args)
    for i, arg in enumerate(args):
        c[i::l] = arg
    return c

context = bpy.context

# emulate numpy data
x = np.arange(0, 10, 0.1)
y = 2 * np.sin(x)
z = np.cos(4 * x)
w = np.ones(len(x))

cu = bpy.data.curves.new(name="poly", type='CURVE')
cu.dimensions = '3D'

spline = cu.splines.new('POLY') # poly type
# spline is created with one point add more to match data
spline.points.add(x.size - 1)
spline.points.foreach_set("co", flatten(x, y, z, w))

ob = bpy.data.objects.new("Poly", cu)
context.collection.objects.link(ob)

For a simple two point NURBS curve from local coordinates  (0, 0, 0) to (1, 1, 1) the coordinates can be defined
NURBS
For NURBS required to define the end_path_u
How to specify Nurbs path vertices in python?
Have introduced for each point having radius of r and setting this as well.
# emulate numpy data
x, y, z, w, r = np.array(
    (
        (0, 0, 0, 1, 0.5),
        (1, 1, 1, 1, 3.0),
    )
).T
cu = bpy.data.curves.new(name="poly", type='CURVE')
cu.dimensions = '3D'

spline = cu.splines.new('NURBS') # poly type
# spline is created with one point add more to match data
spline.points.add(x.size - 1)
spline.points.foreach_set("co", flatten(x, y, z, w))

spline.points.foreach_set("radius", r.ravel())
spline.use_endpoint_u = True
ob = bpy.data.objects.new("Poly", cu)
context.collection.objects.link(ob)
context.view_layer.objects.active = ob
ob.select_set(True)

Notice in the foreach_ methods require us to ravel (or flatten)  the array.  Flattening data as shown in  https://blender.stackexchange.com/a/172973/15543 the stackoverflow link suggests slicing is quickest.


text:
Load images with substring in filename from a given path
i try to load image by part of name, for example image_dir  is a variable folder,
in some different folder i have single image with name "Cat smile.png" or "cat go crazy.jpeg" (note uppercase lowercase Cat , cat) i find glob.glob() but not sure if is right way
image_dir = ###string variable
my_image = "Cat" or "cat"or "caT" or "CAT"

###want to find photo with that part of name if exist

image = os.path.join(bpy.path.abspath("//"),image_dir + os.sep + my_image)

edit: i think is not good way because i think best way to make that is use append image from directory with :
image_dir = ###string variable
directory = os.path.join(bpy.path.abspath("//"),image_dir)
images = []
for fn in os.listdir(directory):
    images.append(fn)

now i can find image name from images because is a list... but I'm not able

Regular expression example.
For the most part this is a generic python question, some answers from stack overflow.
python finding substring inside string
Python glob multiple extensions
Python glob multiple filetypes
For blender specifics, the image file extensions that your blender can open are
>>> bpy.path.extensions_image
frozenset({'.dpx', '.pdd', '.jp2', '.hdr', '.j2c', '.rgb', '.tiff', '.sgi', '.tga', '.rgba', '.png', '.cin', '.jpg', '.exr', '.tif', '.dds', '.psd', '.psb', '.bmp', '.jpeg', '.tx'})

Here is a sample method, that searches for image files that have a substring in their name and an extension suitable to blender. A regular expression search is used in both cases. The searches are case insensitive.
The links above show how to do this using other tools such as glob, pathlib and fnmatch
import bpy

def find_files(substring, path='.', extensions=[]):
    from os import listdir
    from re import search, IGNORECASE
    return [f for f in listdir(path)
            if search(r'%s' % substring, f, IGNORECASE)
            and any(search(r'%s$' % ext, f, IGNORECASE)
                    for ext in extensions)]

def image_files(substring, path="."):
    return find_files(substring, path=path, extensions=bpy.path.extensions_image)

def movie_files(substring, path="."):
    return find_files(substring, path=path, extensions=bpy.path.extensions_movie)

def audio_files(substring, path="."):
    return find_files(substring, path=path, extensions=bpy.path.extensions_audio)

# test call, search for "screenshot" in image folder
# and load images
from os.path import join
image_path = "/home/batfinger/Pictures"
for fp in image_files("screenshot", path=image_path):
    print(fp)
    bpy.data.images.load(join(image_path, fp))

Notes maybe switch extension search to first. For recursive folder search would use something like os.walk instead of os.listdir

I didn't know about bpy.path.extensions_image, great find Mr. Holmes! I don't think that such useful attrib deserve any documentation: https://docs.blender.org/api/current/search.html?q=extensions_image&check_keywords=yes&area=default BTW: awesome post on meta...


text:
How do I remove overlapping faces for this case?

Thanks for your attention!
I imported a svg image, extruded it, did the shortcut 'I' thingy.
Now I have those overlapping faces in corners.
I tried 'remove doubles' but it didn't remove any verticles(tried merge distance as well). Merge didn't do the job properly either.
How may I handle this?
I want to extrude the inner face after organize the border part faces.
It would be lovely to have some advice long or short!
Thank you in advance. Wish you a lucky day :)

You could try extruding instead of inset on the top and bottom faces, so before inset select the top ngon, extrude and scale the resulting face a little bit down. Scale doesn't create overlaps like Inset so it might be enough to get clean rim. Geometry on top and bottom (Ngons) won't be nice but it might not be a problem at all (depends on the purpose of the mesh)

can you share the file

First of all you need to select the inner ring that you created with I. You can use Alt for it. Then deselect everything that is fine with the circle selection tool (C). Then press X and select Edge Collapse. Your problems should now be fixed. For that selection part I made a little picture here:

Just deselect everything which is outside the problem area.

You need to merge the faces at this point in your model.  Select two faces and them press Alt-M.  Select "To Center".
As answered before in the link below.
Getting rid of theses overlapping edges to form a solid shape?


text:
Smart unwrap using script
I am stuck. I am trying to smart unwrap objects individually using script.
I tried this code but it fails. Any help is appreciated
import bpy
import time

for obj in bpy.data.objects:
    if (obj.type == 'MESH'):
        bpy.context.scene.objects.active = obj
        print(obj.name)
        bpy.ops.object.editmode_toggle()
        bpy.context.object.data.uv_textures['LightMap'].active = True
        bpy.ops.uv.smart_project(angle_limit=66, island_margin = 0.02)
        bpy.ops.object.editmode_toggle()

Code Edit for 2.8x, for 2.7x see previous revision.
Some Edits

The collection bpy.data.objects is all objects in a blend file,
whether linked to context scene, another scene or no scene. If not in
the context scene cannot be the context object. Use scene.objects
I put the "convenience variable" context in test scripts, so I can
paste later into panel or operator code where it is passed as a
parameter to most methods, in which case better not to use path addressing from bpy IMO   it gets tedious reading bpy.context.object.data.uv_foo.bar.blah
Add a UV map named "LightMap" if the mesh doesn't already have one.
Blender uses radians not degrees as the native unit of rotation.  This appears to be one of the anomalies.
Remember to select faces to be unwrapped.

Script
import bpy
from math import radians

context = bpy.context
scene = context.scene
vl = context.view_layer
# deselect all to make sure select one at a time
bpy.ops.object.select_all(action='DESELECT')

for obj in scene.objects:
    if (obj.type == 'MESH'):
        vl.objects.active = obj
        obj.select_set(True)
        print(obj.name)
        lm =  obj.data.uv_layers.get("LightMap")
        if not lm:
            lm = obj.data.uv_layers.new(name="LightMap")
        lm.active = True
        bpy.ops.object.editmode_toggle()
        bpy.ops.mesh.select_all(action='SELECT') # for all faces
        bpy.ops.uv.smart_project(angle_limit=66, island_margin = 0.02)
        bpy.ops.object.editmode_toggle()
        obj.select_set(False)

Resultant UVMap "LightMap" on Suzanne, using limit angle radians(66) interpreted as 1.152 degrees
Related
https://blender.stackexchange.com/a/172990/15543

I noticed there's now a bpy.ops.uv.lightmap_pack(), it seems to use more of the texture space by allocating rectangles for each face, would this be the better option to use nowadays?


text:
Rendered Animation Not Working, Stays on Frame 0
Newbie here.
I am trying to render a simple animation but blender is not working. Need help on understanding what are the additional things I need to set up. Whenever I render an MPEG4 video, the details in the view is not moving:  . It just stays on frame 0. I also went to 'Render-View Animation' if there was any animation produced, but it says 'File ..... not found'.
These are my current project state:

OpenCL: AMD Radeon RX 560 Series
Blender: 2.93.9
Frames: 1-100
Output Properties:

Render Properties

Hello and welcome, are you sure that you rendered the animation (CTRL + F12) or just rendered the current frame (F12) ?

I'm with @Emir on this one. It is questionable why it says frame 0 for example, since your animation ranges from 1 to 100. So even if it would only render the first frame, this would be 1, not 0. Rendering frames outside the animation range is only possible with single image rendering F12. So, did you really render the animation with Ctrl+F12?

1 - Ok, check if E/video/ is a real folder without restrictions, go there and create a text file. It excludes the option that blender cant write.
2 - If folder is ok the next problem I would look is video codec, you can try medium quality and good, instead of perceptual lossless and slowest (they could be requesting more memory than the avaliable.
3 - If video codec alone changes nothing the combination of container and video codec could change MPEG-4 + H.264 is very good, but Quicktime + QT is a good test to this problem too.
4 - I really want to reccomend more tecnichal changes, but if you haven't a good reason to use blender version less than 3.00 an update can help too.


text:
How can I position my plugin elements (buttons) not in a separate area, but right next to the blender buttons?
Now i use this code:
class OBJECT_PT_ModifAddPanel(Panel):
bl_label = "Modifier++"
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "modifier"
bl_category = "Modifier++"

What are those buttons? Custom modifiers or what are they doing? The place at the top are not modifiers, but options what to do with modifiers - applying, deleting, changing the visibility and expanding/collapsing the stack. So are your buttons doing something with all modifiers or are they modifiers themselves? If the latter, they don't belong at the top to the other buttons...

The top buttons in the Modifier panel are part of the built-in addon Modifier Tools. When addon is enabled, it adds a draw function to the panel. See space_view3d_modifier_tools.py in BlenderDefault > Blender[Version] > [Version] > scripts > addons - or -
RMB on one of the buttons and click Edit Source (if developer extras enabled in preferences)
If a draw function is added to a panel class (append/prepend) there´s an attribute _draw_funcs in class.draw containing all functions to draw.
print("Class:", bpy.types.DATA_PT_modifiers)
print("Class.draw:" , bpy.types.DATA_PT_modifiers.draw)
print("Class.draw.draw_funcs:", bpy.types.DATA_PT_modifiers.draw._draw_funcs)

This we can use to manipulate the displayed items. In script I have copied the addon operators first to keep functionality, then replaced the old draw function with an extended version. Tested in 2.93.7 and 3.3.2
import bpy

class TESTOPERATOR_OT_Test(bpy.types.Operator):
    bl_idname = 'testoperator.test'
    bl_label = "Test Operator"
    bl_description = "...testing"

    @classmethod
    def poll(cls, context):
        return context.active_object is not None

    def execute(self, context):
        obj = context.active_object

        self.report({'INFO'}, "Testoperator (%s)" % obj.name) # do something

        return {'FINISHED'}

def extended_menu(self, context):
    if (context.active_object):
        if (len(context.active_object.modifiers)):
            col = self.layout.column(align=True)

          # original ops
            row = col.row(align=True)
            row.operator("object.apply_all_modifiers", icon='IMPORT', text="Apply All")
            row.operator("object.delete_all_modifiers", icon='X', text="Delete All")

            row = col.row(align=True)
            row.operator("object.toggle_apply_modifiers_view", icon='RESTRICT_VIEW_OFF', text="Viewport Vis")
            row.operator("wm.toggle_all_show_expanded", icon='FULLSCREEN_ENTER', text="Toggle Stack")

          # custom ops
            row = col.row(align=True)
            row.operator(TESTOPERATOR_OT_Test.bl_idname, icon='SNAP_ON', text="Button 1")
            row.operator(TESTOPERATOR_OT_Test.bl_idname, icon='SHADERFX', text="Button 2")

def register():

    bpy.utils.register_class(TESTOPERATOR_OT_Test)

    # check if addon is enabled
    if 'space_view3d_modifier_tools' in bpy.context.preferences.addons.keys():

        # get panel
        panel_class = eval("bpy.types.DATA_PT_modifiers")

        # check if 'extended_menu' already in draw_funcs to prevent double entries
        if not [f for f in panel_class.draw._draw_funcs if f.__name__ == 'extended_menu']:

            # add extended menu first (with registered original ops)
            panel_class.prepend(extended_menu)

            # remove original menu
            old_menu = [f for f in bpy.types.DATA_PT_modifiers.draw._draw_funcs if f.__name__ == 'menu'][0]
            panel_class.draw._draw_funcs.remove(old_menu)

if __name__ == "__main__":
    register()


text:
What are the common errors that would cause a generated rig to forget one arm?
I seem to be having an issue once I've generated the rig. It applies controls for the left arm with no problem, but nothing for the right arm.
I've tried a new project, I've tried deleting the arms in edit mode and symmetrize-ing, that just generated a rig with zero arm controls.
I'm wondering if there is anything else that might cause this so I don't have to re-do the metarig...or if I've hidden something?
Blender 3.4.1 - Can supply project file if needed.

Select the Metarig, go to pose mode, select the first bone of the arm (upper_arm.R) and check if its "Rigify type" is set to "limbs.arm".
If this doesn't solve the problem, consider that enabling "vertex snapping", which works for bones joints also, snapping a new Metarig onto the old one is a matter of seconds.

Absolutely solved it, thank you so much!


text:
The viewport display/style of my rig has changed, and I can't work out why
Originally the generated rig had the circle/square display. However, it has changed now to orchethedral looking bones. I cannot work out why this has changed, nor how to get it back. Any help would be greatly appreciated!

Can you add an image of the Outliner? - The properties panel on the first image shows that "rig" is selected and the second one shows "rig.05". The "rig" one also has one extra bone layer selected (bottom row, fourth from the right).

Looks like the bone's custom shapes are missing. Usually, there is a collection named "WGTS-rig" in the Outliner that contains them. They are disabled in the viewport and unselectable by default so you cannot delete them accidentally. The widget names all begin with "WGT-...". Are they still there? -- If you select a bone in Pose mode, you can check the custom shape in the Bone Properties tab in the Viewport Display > Custom Shape section.


text:
Remove plane from a glb object
I am trying to remove a plane of my object to have a more accurate bounding box.
Currently I have the following object with its bounding box (calculated by this script)

As you can see, there is an extra point in the plane, so the bounding box is inaccurate.

Is there any way to remove the extra point in the plane? Thanks in advance.

If you mean the point where all the dotted lines meet, I suspect that's the origin point of all the parts of the table (or at least an Empty that the parts are parented to). I'm not familiar with imported Sketchpad models but all those dotted lines are relationship lines.

There's a new YT video by CGDive released today on importing Sketchfab models and using the addon. You might find some useful information there.

What do you mean by “the plane”?

That is not a point in a plane, that is the empty to which all objects that form the table are parented to. It looks like you even show it in the Outliner as Sketchfab_model. If you delete that empty, you may have problems, but you can definitely move the parts of the table closer to it.


text:
attaching a child object to a parent object "error:Select either 1 or 3 vertices"

I wanted to attach that red object to the lip of parent object.
https://www.youtube.com/watch?v=fGwyE1w8iZg&t=353s
I have followed this tutorial
Everything is good until 4:48 seconds, when he asked me to make a vertex the parent of the object.
When I did that, I get this error:
"Select either 1 or 3 vertices to parent to"
I don't know what exactly that error is and how to solve this.
Please can someone help regarding this, or if you know any better way to attach two objects on particular faces or location.
Please do let me know.

This is vertex parenting. It goes:

Select Child object(s)
Select Parent object
With Parent active, go into Edit Mode
Select either exactly 1 or exactly 3 vertices of the Parent mesh.
CtrlP make the vertex, or vertices, the Parent of the child objects.

If 1 vertex, there is no inherited orientation. 3 is the minimum number of vertices to define an orientation to be inherited. At the moment, Blender does not want more. It does not yet seem to want to mess with averaged normals, or whatever it would take to make sense of 4 or more.

thats not working
i selected exactly three verices or faces  and tried to use ctrl p
but stil getting the same error
https://ibb.co/DQrq1VM
added image
near nose added three vertices
im sorry if im using any terms wrong im new to blender

Hi @John! I think you've selected 3 faces, not 3 vertices. Hit Keyboard '1' in Edit Mode, to switch to Vertex Selection, and select 3 of those.

thank you so  much
got sorted


text:
How to fix drag and drop videos from being sped up in blender?
When I drag and drop a video in the video editing software, the audio is fine, but the video is sped up and I don't know how to fix it

I think that the frame rate (fps) of the project (Output Properties) is different from the frame rate that the video was shot (you can check the fps of the video in the Properties of the strip in the Source panel). Suppose, you have shot a video of 1 second at 24 fps and that your project timeline is set at 30 fps. If you drop this video in the timeline, the audio will last 1 second (or displayed as a green audio strip of 30 frames long). The video however has only 24 frames; so the blue video strip will stop at frame 24. Because these 24 frames are really 1 second of footage (and not 0.8  or 24/30 seconds as shown in the sequencer), the strip seems to be sped up.
If this is the case, you can find more info at https://vse-docs.readthedocs.io/video_editing/setup/index.html#project-settings (about the middle of the page).


text:
Hdri mix(light from one hdri, background from another)
Can I use background from one hdri, but light source from another one?
For example, I have one hdri texture that conected to the world output. The only thing I need from this hdri is a light source. But I have another hdri that doesn't connect to world, and from this one I only need background image without any light sources. Can I somehow combine this HDRIs as I want?

You probably want the Input > Light Path node > Is Cameray Ray as factor in a Mix Shader between your 2 HDRIs

Yep, excectly what I need) Thanks!


text:
Adding "Drop shadow" effect for text
I try to find some way of adding "Drop Shadow" effect for text.
Something like on picture which attached.
Something similar to Emission surface but here it need to be some color and I want black color so simple kind of soft shadow.
Maybe some way to add it on post processing?

Maybe I will be more precise cause this is not exactly what I want to achieve. This is exactly kind of effect what I expect:

So very soft shadow.
In addition, on back of text there is no any layer or other object on which shadow will be drop, so shadow in that case is displayed "in air".
Marty Fouts i am not sure if with any of your techniques I can achieve this?

A simple Sun Lamp should suffice.
Use Sun > Angle value to control the softness.

have problem with that solution. i need backdrop to be invisible. When use shadow catcher, it get scene background looks. It is long animation and it needs background to be not transparent and i need to see object behind text. Event if i make transparent background then cannot see through shadow catcher and cannot see object behind

Hi :). I'm kinda confused by that description. Perhaps adding the shadow in compositor would be more suitable ;)

Yes, i also was thinking about compositor. But is is possible to add that kind of effect in compositor?

ok, got what expected with that https://www.youtube.com/watch?v=I7TjigPt1RA :)

You could use this technique from Jachym Michal which has much in its favor.

You could download and use a free Drop Shadow Font. That has the advantage that a font designer was all clever and stuff creating the font.

You could duplicate and offset the text:

place the duplicate slightly behind the original
Give it a black material with no Specular and a roughness of 1.

This has the advantage that you can easily control the "shadow"'s material properties and don't need a specific backdrop.

According to one professor I had in college, 'things come in threes', so that should be all of the useful techniques; but according to another "if you can think of three, someone else will think of a fourth.  I can think of two more, but I'll leave them as an exercise.


text:
how to bake rigid body?
so I have a rigid body simulation but the problem is I don't know exactly how to bake them , I have a plane with kind of explosion on (the plane is a loose part) on edit mode , I have two plane with loose parts on  , I don t know exactly how to explain it but basically I want to bake all the keyframe
the tutorial I have been following : https://www.youtube.com/watch?v=xKiv6dKupoE&t=326s

Are they all animated already? It looks like that to me

i just never bake them? or never press the bake keyframe or something , but they are all running very slow thats why i want to bake them so i can atleast work on animation

What I mean is, are those objects animated already?

oh sorry , yes they are animated already

any suggestion please? best regard

If they are animated already and already have keyframes, you may not have to bake it, though I personally don't work very much with rigid bodies in Blender.


text:
Bool tool is not shown even though it's enabled
I enabled the Bool Tool in my Blender 4.1:

However, the tool is not shown in my View3D>Sidebar>Edit. The hotkey (Ctrl Shift B) also doesn't work. Would I need additional steps to enable it?

Your image shows that you're looking at Blender's main Edit menu.
Hit the N key to show the tools sidebar and then the Edit tab (arrowed) to show the Bool Tools entry (hilighted below).

I imagine that you would also need to have two objects selected in Object mode for the hotkey to display the popup menu but to be honest I've only ever used the Numpad shortcut keys with the Bool Tool here.


text:
Is there a way to delete specific items from Volume Grid?
I used an extension called VDB to transfer the smoke simulation created in Blender to a program called VRED.
This can be checked with OpenVDB in Blender, but the problem is that VRED can only accommodate a maximum of 4 Volume Grids.
So I want to delete unnecessary items in the Grid in Blender.

Those look like the results of sub-simulations in Smoke & Fire. Not sure how to delete them now, but having them turned off to start with when simulating might be a way to not add them.

You are saying to disable that item before exporting the simulation to VDB. So, for example, is there a way for me to disable Color in the Inflow property?

No, you cannot turn off Smoke Color for simulation, @TheLabCat is wrong there. You could stop the generation of smoke completely, but I guess you want smoke.

So there is no way to delete the desired item from that list?

No, the simulation stores those attributes and they are there. Just like if a mesh has vertices, they have position data. You cannot have the vertices without position, even if they were all 0. The simulation might not use some of those attributes or their data might be empty or 0, but the attributes are there. I don't know if there is some kind of VDB editor software somewhere where you can remove certain attributes from the files...

I understood...then I need VDB editor or something...
Thanks for comment! :D


text:
I can’t fix my normal map. I will be really greatful if someone explains me what`s wrong with it
I tried to bake normals from high poly to low poly and it has no resault, only broken normal map.
I watched so many videos about, did the same or tried change Max Ray Distanse/Extrusion and still have troubles.
I added screenshots with high poly, low poly(with normal map) and baking settings
High poly:

Low poly:

Settings:

Normal map:

Link for .blend file:
https://www.dropbox.com/s/rruk0aqj7wdgkek/test.blend?dl=0

Why do you want to bake normals for this model? What problem are you trying to solve with this in the first place?

There is no detail that would require baking normals on the model in your images. Smoothness of the surface can be handled by regular normals. You could use Weighted Normal modifier to have more appropriate shading with low poly bevels, but there is really nothing to bake here.


text:
Rendered Image is not same shape and missing area

Hello, I am just beginning with 3d printing/rendering for my work. I've been trying to understand the nuances of the programs I am using but I'm starting to hit blocks. I've tried looking up and understanding what is happening but with no luck. The picture attached shows what I'm working with. The far left is from Blender, my object. The middle is after I save the rendered image and import into QIDI slicer software. The far right shows the chunk missing from the top of the object.
Why is this happening to my image?
Thanks for any help

What is it supposed to look like? The first image doesn't really show anything apart from a scaled cube. Share your Blend file via https://blend-exchange.com/ following the instructions on that page and upload an image of your complete blender window (Window > Save Screenshot iin Blender.)

https://blend-exchange.com/b/7AYmvezp

You are correct, the object is just a scaled cube. I'm looking to make a 'bolt board'. I've printed the bolts/nuts, now I just need a large rectangle that I'm going to drill and thread the holes.

The only suggestion I have is that you apply the scale to it before you export it from Blender which you can do in Object mode by selecting the cube and then using Ctrl-A > Scale. Apart from that there's nothing in Blender which could be creating the missing chunk so I suggest you investigate problems elsewhere.


text:
Blender python trying to scale the uv
I am trying to enlarge the uv map  using python scripting so more square in my texture. Not sure what is wrong.
bpy.ops.object.select_all(action='DESELECT')
XYZcoord = (0, 0 ,0)
ob = bpy.ops.mesh.primitive_plane_add(location=XYZcoord)
bpy.ops.transform.resize(value=( 20, 20, 20))
bpy.ops.object.mode_set(mode="EDIT")
bpy.ops.mesh.subdivide(number_cuts=10)
bpy.ops.uv.smart_project()
bpy.ops.object.mode_set(mode="OBJECT")
material_image = bpy.data.materials.new(name= "Basic_Texture")
material_image.use_nodes = True
principled_node = material_image.node_tree.nodes.get('Principled BSDF')
principled_node.inputs[7].default_value = 0.08
texImage = material_image.node_tree.nodes.new('ShaderNodeTexImage')
texImage.location = (-300, 400)
texImage.image = bpy.data.images.load("H:\\blender__texture_maps_ao_normal_height_etc\\Wooden_planks_04_2K_Base_Color.png")
material_image.node_tree.links.new(principled_node.inputs['Base Color'], texImage.outputs['Color'])
texImage_rough = material_image.node_tree.nodes.new('ShaderNodeTexImage')
texImage_rough.location = (-300, 0)
texImage_rough.image = bpy.data.images.load("H:\\blender__texture_maps_ao_normal_height_etc\\Wooden_planks_04_2K_Roughness.png")
texImage_rough.image.colorspace_settings.name = 'Non-Color'
material_image.node_tree.links.new(principled_node.inputs['Roughness'], texImage_rough.outputs['Color'])
bpy.ops.object.shade_smooth()
bpy.context.object.active_material = material_image

bpy.ops.object.mode_set(mode='EDIT')
bpy.ops.uv.select_all(action='SELECT')
bpy.ops.mesh.select_mode(type='EDGE')
bpy.context.area.ui_type = 'UV'
bpy.ops.transform.resize(value=(2, 2, 2), orient_type='GLOBAL', orient_matrix=((1, 0, 0), (0, 1, 0), (0, 0, 1)), orient_matrix_type='GLOBAL', mirror=True, use_proportional_edit=False, proportional_edit_falloff='SMOOTH', proportional_size=1, use_proportional_connected=False, use_proportional_projected=False)
bpy.ops.object.mode_set(mode='OBJECT')
print(bpy.context.active_object)

could you add an image of result and expected result?  UV maps 0 to 1 in U to image width and v to height.

Reducing Operators
Currently the question code has 14 operators, most of which can be easily replaced with API methods.
Python performance with Blender operators
Creating the grid.
Replace the add plane, subdivide scale with a single create primitive grid operator.  Could also replace this operator
import bpy

bpy.ops.mesh.primitive_grid_add(
        location=(0, 0, 0),
        x_subdivisions=12,
        y_subdivisions=12,
        size=2,
        )
grid = bpy.context.object
grid.scale *= 20
me = grid.data

or to apply scale, and have unit scale grid
import bpy

bpy.ops.mesh.primitive_grid_add(
        x_subdivisions=12,
        y_subdivisions=12,
        size=40,
        )
grid = bpy.context.object
me = grid.data

The UV is generated with the primitive, so no need to UV project in this instance.

The operator generated UV
Scaling UV with numpy.
In regard to scaling the UV, if we have a mesh with a UV can use something like below, to scale by (scale_u, scale_v) about some UV center point.  This is the same result as @IceSandwich without iterating over the UVs via loops
import bpy
import numpy as np
from mathutils import Matrix
center = (0.5, 0.5)
scale = (2, 2)

ob = bpy.context.object
me = ob.data
uv_layer = me.uv_layers.active

uvs = np.empty((2 * len(uv_layer.data), 1), "f")
uv_layer.data.foreach_get('uv', uvs)
S = Matrix.Diagonal(scale)
scaled_uvs = np.dot(uvs.reshape((-1, 2)) - center, S) + center
uv_layer.data.foreach_set('uv', scaled_uvs.ravel())

will elaborate more if need be after question edit.

Maybe u forget to add 'R' before the file path?
bpy.data.images.load(R"H:\blender__texture_maps_ao_normal_height_etc\Wooden_planks_04_2K_Base_Color.png")
It should raise an error in python but my blender doesn't show any error message. Everything works fine in my blender.
Edit: You can use the following code to scale your uv instead of using bpy.ops.transform.resize
See more information here
me = bpy.context.object.data
uv_layer = me.uv_layers.active.data

scale_factor = 2
for poly in me.polygons:
    for loop_index in range(poly.loop_start, poly.loop_start + poly.loop_total):
        # rearrange uv coordinate from 0~1 to -1~1 and scale it.
        uv_layer[loop_index].uv.x = (uv_layer[loop_index].uv.x - 0.5) * 2 * scale_factor / 2 + 0.5
        uv_layer[loop_index].uv.y = (uv_layer[loop_index].uv.y - 0.5) * 2 * scale_factor / 2 + 0.5

the issue it not the image... it scaling the mesh.


text:
Animate Text bpy.ops.transform.translate
I am trying to find the right code to animate text that follows a bezier curve in python blender api. I can add the keyframes, and they appear to be working when I drag through the timeline, but when I run script it sets just one keyframe. I need to be able to tell it the start keyframe at frame 1 and the end keyframe at frame 249. Here is part of the code I am using:
bpy.context.object.name = "Text"

bpy.ops.object.modifier_add(type='CURVE')
bpy.context.object.modifiers["Curve"].object = bpy.data.objects["Circle.Text"]

bpy.context.object.modifiers["Curve"].deform_axis = 'NEG_X'

bpy.ops.transform.rotate(value=1.5708, axis=(1, 0, 0), constraint_axis=(True, False, False), constraint_orientation='GLOBAL', mirror=False, proportional='DISABLED', proportional_edit_falloff='SMOOTH', proportional_size=1, snap=False, snap_target='CLOSEST', snap_point=(0, 0, 0), snap_align=False, snap_normal=(0, 0, 0), release_confirm=False)

bpy.ops.transform.translate(value=(12.8872, 0, 0), constraint_axis=(True, False, False), constraint_orientation='GLOBAL', mirror=False, proportional='DISABLED', proportional_edit_falloff='SMOOTH', proportional_size=1, snap=False, snap_target='CLOSEST', snap_point=(0, 0, 0), snap_align=False, snap_normal=(0, 0, 0), texture_space=False, release_confirm=True)

bpy.ops.anim.keyframe_insert_menu(type='Location', confirm_success=False, always_prompt=False)

bpy.ops.transform.translate(value=(-11.6886, 0, 0), constraint_axis=(True, False, False), constraint_orientation='GLOBAL', mirror=False, proportional='DISABLED', proportional_edit_falloff='SMOOTH', proportional_size=1, snap=False, snap_target='CLOSEST', snap_point=(0, 0, 0), snap_align=False, snap_normal=(0, 0, 0), texture_space=False, release_confirm=True)
bpy.ops.anim.keyframe_insert_menu(type='Location', confirm_success=False, always_prompt=False)

Thanks in advance if anyone can help.

Ditch the operators

Test run with default text and default bezier circle objects
Below is code which does, what I believe to be, same as above, but without any operators.  For case of example I have used an object named "Text" in scene for text object, and an object named "BezierCircle" for the curve. Change to suit
import bpy
from mathutils import Matrix, Vector
from math import radians

context = bpy.context
scene = context.scene

text = scene.objects.get("Text")
curve = scene.objects.get("BezierCircle")

if text and curve:
    # add modifier
    cm = text.modifiers.new("foo", 'CURVE')
    cm.object = curve
    cm.deform_axis = 'NEG_X'
    # rotate
    R = Matrix.Rotation(radians(90), 4, 'X')
    text.matrix_world @= R # replace @ with * for pre 2.8
    # translation
    text.matrix_world.translation += Vector((12.8872, 0, 0))
    # insert keyframe
    text.keyframe_insert("location", frame=1)
    # and again
    text.matrix_world.translation += Vector((-11.6886, 0, 0))
    text.keyframe_insert("location", frame=249)


text:
expected str, bytes or os.PathLike object, not _PropertyDeferred
I was making a blender addon but I can't seem to fix an error that occurs any time I hit the import button
import bpy
from bpy.props import (

StringProperty,
)
from bpy_extras.io_utils import (
ImportHelper,
ExportHelper,
)
import struct

# Prompt user for file name

class CustomImporter(bpy.types.Operator, ImportHelper):
    bl_idname = "import.custom"
    bl_label = "Convert ANM to FBX"
    filename_ext = ".anm"

    def execute(self, context):
        # Your custom import code here

        # Open .anm file
        with open(self.filepath, "rb") as file:

            print(file)

            # Read header
            signature = file.read(4)
            version = struct.unpack('<i', file.read(4))[0]
            num_bones = struct.unpack('<i', file.read(4))[0]
            num_frames = struct.unpack('<i', file.read(4))[0]

            # Create new armature and animation data
            armature_name = "SpongebobArmature"
            animation_name = "SpongebobAnimation"

            armature = bpy.data.armatures.new(armature_name)
            object = bpy.data.objects.new(armature_name, armature)

            animation_data = bpy.data.actions.new(name=animation_name)

            # Create bones
            bone_names = []
            for i in range(num_bones):
                bone_name = file.read(32).decode('utf-8').strip('\x00')
                bone_names.append(bone_name)
                armature.edit_bones.new(bone_name)

            # Set up keyframes
            for i in range(num_frames):
                for j in range(num_bones):
                    bone_name = bone_names[j]
                    bone = armature.bones[bone_name]

                    # Read position and rotation
                    px, py, pz, rx, ry, rz, rw = struct.unpack('<7f', file.read(28))

                    # Create new keyframe
                    loc_curve = animation_data.fcurves.find('pose.bones["{}"].location'.format(bone_name))
                    loc_curve.keyframe_points.insert(i, (i, px))
                    loc_curve.keyframe_points.insert(i, (i, py))
                    loc_curve.keyframe_points.insert(i, (i, pz))

                    rot_curve = animation_data.fcurves.find('pose.bones["{}"].rotation_quaternion'.format(bone_name))
                    rot_curve.keyframe_points.insert(i, (i, rw))
                    rot_curve.keyframe_points.insert(i, (i, rx))
                    rot_curve.keyframe_points.insert(i, (i, ry))
                    rot_curve.keyframe_points.insert(i, (i, rz))

            # Add armature to scene and set animation
            scene = bpy.context.scene
            scene.collection.objects.link(object)
            scene.view_layer.objects.active = object
            object.select_set(True)

            bpy.ops.object.mode_set(mode='POSE')
            bpy.ops.pose.armature_apply()

            animation_data.use_fake_user = True
            object.animation_data.action = animation_data

            # Export to .fbx file
            fbx_file_name = fbx_file_name = self.filepath.replace('.anm', '.fbx')
            bpy.ops.export_scene.fbx(filepath=fbx_file_name, axis_forward='-Z', axis_up='Y', use_selection=True)

        return {'FINISHED'}

    def menu_func_import(self, context):
      self.layout.operator(CustomImporter.bl_idname, text="Convert AMN to FBX")

def register():
    bpy.utils.register_class(CustomImporter)
    bpy.types.TOPBAR_MT_file_import.append(menu_func_import)

def unregister():
    bpy.utils.unregister_class(CustomImporter)
    bpy.types.TOPBAR_MT_file_import.remove(menu_func_import)

Line 24 in execute: TypeError: expected str, bytes, or os.PathLike object, not _PropertyDiferred

I tried looking it up but nothing comes up, does anyone know how to fix this? Thanks!

put menu_func_import() out of the class.

try str(self.filepath) to cast it to a string


text:
Is there a node that can reverse the masking area in Compositing?
Is there a node that can reverse the masking area in Compositing?
I want the mesh to appear outside of the area, but I don't know how to mask it.
thanks.

Yes. Masks are just greyscale images so Invert node inverts the masking:


text:
how to fix object creating a duplicate of itself during animation?
so, i've worked on making an animation for a game i'm making. however, when i move the player in the animation (for my diving animation) the player's eyes make a static duplicate of themself and the first pair stays on the head, while the second pair creates a kind of "bunny ears" for the player. i've wen't in edit mode and checked if there was a second layer of eyes somehow inside of it, but there wasn't. i attached a screenshot and really would appreciate it if someone showed me how to get rid of them. thank you

Yes you must have duplicated your eyes, maybe go in Edit mode, select all and Merge by Distance?

@moonboots what value?

Select all in Edit mode and press M > Merge by Distance

@moonboots yea, which value do i set the "distance" number to or leave it as default bc default doesnt fix anything

the value is the merge threshold, maybe increase to see if it gives something, if it doesn't fix your problem could you please share your file?

@moonboots how do i share it with u

use https://blend-exchange.com/ (read the instructions) or use a platform like workupload and share the file

@moonboots would mega work? here https://mega.nz/file/cTcXQBgb#bL-42WC3nD400gbpC3EEO5-3PUeLzVRB0jJN53Mn-J4

@moonboots thank you so much! last thing, how do i get the eyes back in the right spot? they are above the head still now. (before that one of the pairs stayed correctly on the face but these don't) oh and couldnt find how to fix upside down character so yea

I've edited my answer to add some precisions, I hope it helps

@moonboots thank you so much! u are amazing <3

You have a duplication of your eye mesh on the other side of your mirror axis, select it with L and delete (by the way your character is upside down):

Now assign the remaining eyes to the good vertex group:

To bring back the armature to its default rotation, rotate it 180° on Y and apply the rotation and scale (CtrlA). To bring back the armature to its rest pose, switch to Pose mode and AltR, AltG, AltS. Also put the Subdivision Surface modifier at the bottom of the modifiers stack, and enable the Preserve Volume option of the Armature modifier.


text:
How to fix blender armature distorting my model?
This might be insanely easy or not possible, but does anyone know how to stop armatures from distorting certain axis' scales when I use rotate? For example, (which is why I'm making this) my player's arm looks more like a sea animal's fin instead of a classic arm when I rotate it. If you know how to make it keep the same scale and other properties but just be turned slightly I would really appreciate it. Thank you!

It looks like you've dcaled your armaure in Object mide, so first thing, apply the scale in Object mode

thank you so much @moonboots !!

It looks like you've scaled your armaure in Object mode, so apply the scale in Object mode.


text:
How to add depth / thickness to edges evenly
Hi is there an easy way to add thickness to a bunch of vertices and edges and do it evenly?
I have this mesh with no faces and I want to thicken it to an even thickness.

I have followed another example where I should convert the mesh to a curve and then tweak the bevel settings in the object data panel and this is what I get which is pretty close to what I want but as you can see the thickness is uneven whereas I want it all to be the same thickness:

I have also tried a wireframe modifier on a mesh with faces but this yields even worse results as the frame is still uneven but also it adds edges where I don't want them and the wireframe is not cylindrical.
Is there a better way to do this?
Thanks

It might be helpful to people trying to help you if you uploaded an example blend file to the site https://blend-exchange.com and add that link in the question.

Maybe try the Skin modifier but you may not like the generated topology

2 possible reasons for uneven thickness. 1: your object may be carrying a non-uniform Scale transform (Ctrl-A, apply scale). 2. 3D Curves don't mitre corners evenly. If your object is intended to be flat, try constructing as a 2D curve (in its Shape settings), before rotating.

Have you tried it with geometry nodes?  You could create the lines then just use geometry nodes to make the round piping.

Thanks for your detailed answer. I've followed the top example but unfortunately it didn't work. I just end up with a small ball in the middle of the mesh.

Interesting..this is where posting the file in the original question would help, something else maybe happening behind the scenes.

It works! I played about with the measurements in Circle Curve and Grid nodes and started to get something.This helped me to understand your second example and it works! Is there a way to cap the ends? They are hollow as there are no outer edges to the geometry unlike your plane and torus examples. Or should I just apply the modifier and do it manually?

@cannon303 Glad to hear it.  In the Curve to Mesh node there's a check box that is marked Fill Caps check that box and see if it fixes that issue.

Great thanks very much.


text:
Help with method to hollow out existing model. Scaled down Boolean modifier and solidifier modifier have not worked
Good morning.
I am trying to figure out how to hollow out an existing model (STL) in blender (model link below).  I'm not asking anyone to do it for me, I am just trying to figure out what keywords I should search in Google to hopefully find a tutorial.  I am basically looking to have the model hollow on the inside, ultimately for 3d printing and hopefully getting some lights in it.  Other models have issues and aren't as well put together as this one, so I am hoping to use it.
I first duplicated the part and then scaled it down to try and use a Boolean modifier but when it scales it is only scaling the overall size.  It doesn't "inset" or reduce the size of the model on each surface evenly.  So this method didn't work.
I tried to use a solidifier modifier but I just ended up with an angry porcupine that exploded.
I know in my CAD software there is a shell command that allows you to basically specify a thickness of the walls and allows you to remove faces.  Is there anything like that in blender that could be used?
Model:
https://www.thingiverse.com/thing:5842553

I stopped the download because it appears to try to download 4 files, and smells of spyware.  I suggest you use the blend-exchange link that people normally use.

I suggest that your include a screen-shot that will draw more attention and clarify what you are seeing.


text:
Why is one of my objects is not visible in the final rendering?
I've been building a low-poly planet but for some reason when I hit render one of my objects is not visible. I have tried everything I can think of but nothing seems to make the object appear in my render.
Tried adding a new camera, tried the 'clear restricted render' but I'm using mac and I can't get the prompt to show - unsure what shortcut/key it is on mac?
If it is somehow relevant after I've clicked render and go to the compositing view I cannot see ANY nodes, completely blank.

Welcome to Blender Stack exchange Community! Can you please upload the blend file?

Which answers you have tried already?

It looks like you have a particle emitter on your object. Have you checked to make sure "Show Emitter" is enabled? See this post and answer below: https://blender.stackexchange.com/questions/129173/how-to-hide-the-object-emitting-particles-in-a-render-in-blender-2-80/139188

I know it has been closed, but don't be scared of sharing the blend file. I have found that there are quite a few little gotchas that whilst not obvious to you, it can quickly be seen by fresh eyes. This is a very generous community and will help if they can.

Looks like you have a particle emitter on the earth object. Go to your particle settings and check to make sure "Show Emitter" is enabled. The screenshot below it's disabled so it wouldn't show in the final render (but it will show in the viewport render), make sure that box is checked.

Couple of options without seeing the file. Check the "disable in Render" filter is not selected. An example is attached where the cross indicates that it will not be rendered

The next check is you mention that you go to the composition workspace. Have you checked the "Use Nodes" option, this is off by default and so nothing is visible.
Alternatively you could instead go to the Rendering workspace or under the Render menu click View Render (F11 in Windows)

Thanks for your response mate, all the camera icons are enabled (even for modifiers), the 'use nodes' trick did work though, so thank you for that, but I'm afraid my object still won't render correctly! =(

you can check if relevant objects are enabled/disabled in render.
I usually prefer to show it in outliner like this:

click on filter icon and activate the button with camera icon

then you can see it in outliner and check if object is enabled/disabled for rendering

and since you are using modifiers you should check if render is enabled for modifier too (it is always the camera icon)

Thanks for your response, the weirdest thing is I have the camera icon enabled and they are all enabled - it's the strangest thing. Even on my modifiers the camera icon is enabled.


text:
How can I create a rope knot animation in Blender that also works in Unity?
I want to make an animation depicting the process of making a rope knot. I tried doing it with curves, with arrays but it only works in blend when exporting to unity it all doesn’t work. I also tried with the alembic file it works perfectly but the textures are missing. Example:

What I have to do in order to make this animation also work for Unity?

look into Array + Curve modifier, see here except in your case it's a 3D object that will follow the curve: https://blender.stackexchange.com/questions/230681/animated-simple-deform-bend/230683#230683

i try this, but is not working in unity

you can use a Curve modifier only, if you move your object it will follow all along the curve, is it possible in Unity?

i still don't get what you mean, but in unity it doesn't pick up any animation only the model, and i tried bake the animation with keyframe but it didn't work

Hello and welcome! Please add one or two screenshots to your question and describe what you have done and what you want to achieve. Your question is basically a link-only question and is not suitable for this site. If your link goes offline then all that readers in the future will know is "animation" and "unity". Edit your question and add details.

And while you are at it, give your question a better descriptive title. Keep in mind that your question is not only for you but should help other users that have a similar problem.

While files, images, and external links may be helpful additions to
questions they should not remain the only way to obtain information
about your issue. Don't make understanding your question rely on
downloading a file or visiting an external site. Use the builtin tools
to upload images or
gifs, besides
thoroughly explaining the problem in written form so it can be
searched for and indexed thus helping future users find it.

I think your issue is related to Unity and not with Blender

i am looking for a suitable solution to do it easily in blender and work well in unity

In both cases (abc and fbx) you'd have to bake your textures or re-create the shader unity: https://blender.stackexchange.com/questions/13508/how-do-i-bake-a-texture-using-cycles-bake If you'd like to use fbx, you'd have to animate the rope using bones or shapekeys, see: https://blender.stackexchange.com/a/133032/31447

Also you should specify in your question how exactly you want to interact with the ropes in unity. If you just want to playback the animation, you do can use a video rendered with blender and play it back at some point in time.

i tried using option 2 but when my model moves to the bend the mesh gets distorted like it's twisted

What is option 2? Part of the confusion here is how you communicate. Consider that 5 guys wrote more text in the comment section than you did in your question. Please take your time, edit your question and explain in detail what you have done and what exactly is not working, upload screenshots and ideally share a blend using https://blend-exchange.com/, also I recommend: https://blender.stackexchange.com/help/how-to-ask


text:
Batch exporting scene collections or selected objects using glTF-Blender-IO
I'm still new with python and scripting. I tried editing the obj exporter that I found. Since I'm exporting tons of object groups, I need each of scene collection or selected objects to be exported as an individual gtlf file:
import bpy
import os

# get the path where the blend file is located
basedir = bpy.path.abspath('//')

# deselect all objects
# bpy.ops.object.select_all(action='DESELECT')

# loop through all the objects in the scene
scene = bpy.context.scene
for ob in scene.objects:
    # make the current object active and select it
    scene.objects.active = ob
    ob.select = True

    # make sure that we only export meshes
    if ob.type == 'MESH':
        # export the currently selected object to its own file based on its name
        bpy.ops.export_scene.gltf(
                filepath=os.path.join(basedir+'gltf-individual', ob.name + '.gltf'),
                use_selection=True,
                )
    # deselect the object and move on to another if any more are left
    ob.select = False

Q: Can someone help me with this?

What error or problem are you seeing when you run this? It's not clear what you're asking sorry. Also note that use_selection will need to be renamed as export_selected until https://github.com/KhronosGroup/glTF-Blender-IO/issues/956 is fixed and released.

@TeeJeyJeytee84 The script above is for version < 2.8.  See https://blender.stackexchange.com/questions/132825/python-selecting-object-by-name-in-2-8 to upgrade to 2.8.  If your question is re above comment .. convert to 2.8 export collection, perhaps ask a new question... or edit the bounty description accordingly (if you can do that, can't remember)

@brockmann this is really clear and cool stuff.
However when I test your "Batch export glTF/glb files" script in Blender 2.83 just warning happen: ret = op_call(self.idname_py(), None, kw) TypeError: Converting py args to operator properties: enum "PNG" not found in ('AUTO', 'JPEG') location: <unknown location>:-1 Some idea to fix it? I am a Python beginner...

Fixed it for 2.83: https://blender.stackexchange.com/posts/175968/revisions

Awesome! Thanks for godspeed.

Approach to export collections using unlink and link methods
You can temporarily .unlink() all collections from the root level, then (re-)link() one by one to the scene level in order to export them and link them all back at the end of the script.
Tested this approach for a huge scene using the alembic export operator and it was pretty fast, surprisingly. For convenience I added a col_level integer to determine how many (sub-)levels of collections are going to be exported to gtlf or glb files:
import bpy

col_levels = 2                          # Levels to export
scn_col = bpy.context.scene.collection  # Root collection

def file_name(s):
    '''Return valid file name from string'''
    return "".join(x for x in s if x.isalnum())

def col_hierarchy(root_col, levels=1):
    '''Read hierarchy of the collections in the scene'''
    level_lookup = {}
    def recurse(root_col, parent, depth):
        if depth > levels:
            return
        if isinstance(parent,  bpy.types.Collection):
            level_lookup.setdefault(parent, []).append(root_col)
        for child in root_col.children:
            recurse(child, root_col,  depth + 1)
    recurse(root_col, root_col.children, 0)
    return level_lookup

# Root objects (in case)
scn_obj = [o for o in scn_col.objects]

# Lookups (Collections per level and Parents)
lkp_col = col_hierarchy(scn_col, levels=col_levels)
prt_col = {i : k for k, v in lkp_col.items() for i in v}

# All collections to export
candidates = [x for v in lkp_col.values() for x in v]

# (1) Unlink all Collections
for c in candidates:
    prt_col.get(c).children.unlink(c)

# (2) Export root objects (optional)
if scn_obj:
    bpy.ops.export_scene.gltf(
        filepath="/tmp/{}.glb".format(file_name(scn_col.name))
    )
    # Unlink objects of master collection
    for o in scn_obj: scn_col.objects.unlink(o)

# (3) (Re-)link collections of choice to root level and export
for c in candidates:
    # (Re-)link collection
    scn_col.children.link(c)
    # Export collection
    bpy.ops.export_scene.gltf(
        filepath="/tmp/{}.glb".format(file_name(c.name))
    )
    # Unlink collection
    scn_col.children.unlink(c)

# (4) Reset all back
for o in scn_obj: scn_col.objects.link(o)
for c in candidates: prt_col.get(c).children.link(c)

Note: The script is an initial proof of concept.

Operator to batch export collections
The core idea can be converted into an add-on using the famous ExportHelper class. Have a look into Templates > Python > Operator File Export in the Text Editor. Following add-on adds a new entry to the File > Export menu. The operator comes with the most important export settings as well as a level integer to export Collections to single gltf/glb files:

# ##### BEGIN GPL LICENSE BLOCK #####
#
#  This program is free software; you can redistribute it and/or
#  modify it under the terms of the GNU General Public License
#  as published by the Free Software Foundation; either version 2
#  of the License, or (at your option) any later version.
#
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with this program; if not, write to the Free Software Foundation,
#  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# ##### END GPL LICENSE BLOCK #####
# <pep8 compliant>

bl_info = {
    "name": "Batch export glTF/glb files",
    "author": "brockmann",
    "version": (0, 2),
    "blender": (2, 91, 0),
    "location": "File > Import-Export",
    "description": "Batch Export Collections to glTF/glb",
    "warning": "",
    "wiki_url": "",
    "tracker_url": "",
    "category": "Import-Export"}

import bpy
import os

from bpy_extras.io_utils import ExportHelper
from bpy.props import (BoolProperty,
                       IntProperty,
                       StringProperty,
                       EnumProperty,
                       CollectionProperty
                       )

def file_name(s):
    """Return valid file name from string"""
    #return "".join(x for x in s if x.isalnum())
    return "".join( x for x in s if (x.isalnum() or x in "._- "))

def col_hierarchy(root_col, levels=1):
    """Read hierarchy of the collections in the scene"""
    level_lookup = {}
    def recurse(root_col, parent, depth):
        if depth > levels:
            return
        if isinstance(parent,  bpy.types.Collection):
            level_lookup.setdefault(parent, []).append(root_col)
        for child in root_col.children:
            recurse(child, root_col,  depth + 1)
    recurse(root_col, root_col.children, 0)
    return level_lookup

class SCENE_OT_batch_gltf(bpy.types.Operator, ExportHelper):
    """Batch export collections to glTF/glb files"""
    bl_idname = "export_scene.batch_gltf"
    bl_label = "Collections to glTF/glb"
    bl_options = {'PRESET', 'UNDO'}

    # ExportHelper mixin class uses this
    filename_ext = ''

    filter_glob: StringProperty(
            default='*.glb;*.gltf',
            options={'HIDDEN'}
    )

    # List of operator properties, the attributes will be assigned
    # to the class instance from the operator setting before calling.
    batch_export_format: EnumProperty(
        name='Format',
        items=(('GLB', 'glTF Binary (.glb)',
                'Exports a single file, with all data packed in binary form. '
                'Most efficient and portable, but more difficult to edit later'),
               ('GLTF_EMBEDDED', 'glTF Embedded (.gltf)',
                'Exports a single file, with all data packed in JSON. '
                'Less efficient than binary, but easier to edit later'),
               ('GLTF_SEPARATE', 'glTF Separate (.gltf + .bin + textures)',
                'Exports multiple files, with separate JSON, binary and texture data. '
                'Easiest to edit later')),
        description=(
            'Output format and embedding options. Binary is most efficient, '
            'but JSON (embedded or separate) may be easier to edit later'
        ),
        default='GLB'
    )

    batch_export_copyright: StringProperty(
        name='Copyright',
        description='Legal rights and conditions for the model',
        default=''
    )

    batch_export_image_format: EnumProperty(
        name='Images',
        items=(('AUTO', 'Automatic',
                'Save PNGs as PNGs and JPEGs as JPEGs.\n'
                'If neither one, use PNG'),
                ('JPEG', 'JPEG Format (.jpg)',
                'Save images as JPEGs. (Images that need alpha are saved as PNGs though.)\n'
                'Be aware of a possible loss in quality'),
               ),
        description=(
            'Output format for images. PNG is lossless and generally preferred, but JPEG might be preferable for web '
            'applications due to the smaller file size'
        ),
        default='AUTO'
    )

    batch_export_levels: IntProperty(
        name='Collection Levels',
        description='Set the levels of collections',
        default=2
    )

    batch_export_materials: EnumProperty(
        name='Materials',
        items=(('EXPORT', 'Export',
        'Export all materials used by included objects'),
        ('PLACEHOLDER', 'Placeholder',
        'Do not export materials, but write multiple primitive groups per mesh, keeping material slot information'),
        ('NONE', 'No export',
        'Do not export materials, and combine mesh primitive groups, losing material slot information')),
        description='Export materials ',
        default='EXPORT'
    )

    batch_export_colors: BoolProperty(
        name='Export Vertex Colors',
        description='Export vertex colors with meshes',
        default=True
    )

    batch_export_cameras: BoolProperty(
        name='Export Cameras',
        description='Export cameras',
        default=False
    )

    batch_export_extras: BoolProperty(
        name='Export Custom Properties',
        description='Export custom properties as glTF extras',
        default=False
    )

    batch_export_apply: BoolProperty(
        name='Export Apply Modifiers',
        description='Apply modifiers (excluding Armatures) to mesh objects -'
                    'WARNING: prevents exporting shape keys',
        default=False
    )

    batch_export_yup: BoolProperty(
        name='+Y Up',
        description='Export using glTF convention, +Y up',
        default=True
    )

    def execute(self, context):

        # Get the folder
        folder_path = os.path.dirname(self.filepath)
        scn_col = context.scene.collection

        # Lookups (Collections per level and Parents)
        lkp_col = col_hierarchy(scn_col, levels=self.batch_export_levels)
        prt_col = {i : k for k, v in lkp_col.items() for i in v}

        scn_obj = [o for o in scn_col.objects]
        candidates = [x for v in lkp_col.values() for x in v]

        if not candidates:
            self.report({'INFO'}, "Nothing to export")
            return {'CANCELLED'}

        # Unlink all Collections and objects
        for c in candidates:
            prt_col.get(c).children.unlink(c)
        for o in scn_obj:
            scn_col.objects.unlink(o)

        # (Re-)link collections of choice to root level and export
        for c in candidates:

            scn_col.children.link(c)

            fname = file_name(c.name)
            fpath = os.path.join(folder_path, fname)

            bpy.ops.export_scene.gltf(
                filepath = fpath,
                export_format = self.batch_export_format,
                export_copyright = self.batch_export_copyright,
                export_image_format = self.batch_export_image_format,
                export_materials = self.batch_export_materials,
                export_colors = self.batch_export_colors,
                export_cameras = self.batch_export_cameras,
                export_extras = self.batch_export_extras,
                export_yup = self.batch_export_yup,
                export_apply = self.batch_export_apply
            )

            scn_col.children.unlink(c)

        # Reset all back
        for o in scn_obj:
            scn_col.objects.link(o)
        for c in candidates:
            prt_col.get(c).children.link(c)

        return {'FINISHED'}

# Only needed if you want to add into a dynamic menu
def menu_func_import(self, context):
    self.layout.operator(SCENE_OT_batch_gltf.bl_idname, text="glTF Batch Export Collection (.glb/gltf)")

def register():
    bpy.utils.register_class(SCENE_OT_batch_gltf)
    bpy.types.TOPBAR_MT_file_export.append(menu_func_import)

def unregister():
    bpy.utils.unregister_class(SCENE_OT_batch_gltf)
    bpy.types.TOPBAR_MT_file_export.remove(menu_func_import)

if __name__ == "__main__":
    register()

    # test call
    #bpy.ops.export_scene.batch_gltf('INVOKE_DEFAULT')

For versions pre 2.91, replace the batch_export_materials property (line 117) using:
    batch_export_materials: BoolProperty(
            name='Export Materials',
            description='Export materials',
            default=True
    )

See the actual revision for 2.83: https://blender.stackexchange.com/revisions/175968/7

would it be possible to allow your tool to save individual objects in the collection as individual glTF files?
thank you!

Yeah, absolutely, same as https://blender.stackexchange.com/a/31852/31447 @viktorpetrovich


text:
How to stop Blender animation render in the middle of the rendering process?
What I mean by "in the middle of the rendering process", let's pretend that I have an animation of 100 frames and when the render process is at frame 50, how can I stop the rendering when the frame 50 is done?
Note: I'm using Cycles for rendering.

Close it or just press ESC.

You should've post this as an answer not a comment! But anyway, thanks.

Pressing ESC will stop the rendering process.
However, if you are saving your render as a video file format your video may not be playable. In this case, I would recommend changing the render output file format to an image sequence like "JPG", "PNG" or "EXR". This will save every single frame as an image. You can then use Blender's video editor (or any other third-party video editor) to add an image sequence and render out the video in the desired format.
Set the end frame.
If you already know beforehand that you only want to render 50 frames it is easier to just set the end frame to 50. That way you don't have to intervene manually.

Thanks Sebastian for the information, I'm using OpenEXR format as an output file format.
Closing the render window or pressing ESC does the job.

You're welcome, Ali! It works the same for OpenEXR. If this answered your question then please mark it as accepted.

Esc will only stop the render. but the denoising cannot be stopped. this is a known bug i think? on blender 3.3.1

You can get something close. If using cycles, set the time or sample limit to something short (e.g. 4 seconds). The setting will apply and the render will finish quickly (the later parts will be low quality, but you were planning on cutting them out anyway so that shouldn't matter much to you).


text:
Coffee clips when rendering image

As you can see here the coffee starts clipping and suddenly becomes invisible. And I don´t really know what to do...

maybe there are faces overlapping, try to scale the liquid a bit?

I'm not sure what you mean.  Could you draw on the image to indicate where you think the coffee is clipping?  It appears to me that there are reflections on the cup that are masking the coffee but I don't know if we're talking about the same part of scene.

you can see clearly the other side of the plate eventhough you should not see it

I have tried scaling the liquid to a bigger size but the problem still occurs

Coffee is there and what you see is caused by glass settings.

The donut tutorial uses a method described here to get a good liquid appearance.
Source: Aversis.be

I think you're running into the problem illustrated by the third wine glass.  Make sure the mesh of your liquid is clipping into the glass at all points.
Be aware, you can also run into a version of this problem if the glass and the liquid have different Subdivision Surface settings, because the interpolated points might fall slightly outside of the glass.


text:
Blender hair simulation fine in viewport, but half of it won't render
I have been creating a 3D character which uses hair simulation. It works fine in the viewport, but when I go to render it, half of it has disappeared. It does work in cycles, but that won't be an option as it takes around 8 minutes to render each frame.
Here is what it looks like in the viewport:

And here is what it looks like rendered (with eevee):

Q: How to get the preview settings for the actual rendering?

please do not edit your question to add [solved] to the title. You may accept your own answer, the community will see that it is "solved".

For others having the same problem: I found that it worked to just use the same settings in a different particle system. I'm not sure what actually happened, but I'm just glad that it works!


text:
Get or display normal vector / coordinates of selected vertex?
I have a .stl file and want to get the normal vector of a selected vertex or face in relation to the origin.
Blender only shows the coordinates of that vertex/face. My blender skills are very limited so after a few hours of trying, I wasn't able to get information about the normal vector displayed.

Q: Is there a way to get the normal vector of the vertex or a face?

Unfortunately i dont know a way to display the normal vector in the viewport.
Here are two options to get the normal  vector. I'd say it depends on what you want to do with the normal vector after getting it...
Option 1 Python:
import bpy

mesh = bpy.context.object.data

bpy.ops.object.mode_set(mode='OBJECT')

selected_verts = [v for v in mesh.vertices if v.select]

for v in selected_verts:
    print(f"Vertex Normal: {v.normal}")

Option 2 Add-On Animation Nodes:

I filtered all the normals with a vertex group I did manually.
additional: here are some answers for modifiing the ui to display normal-information:
Display values of a normal of a selected face

Hi and thankyou for your two options to solve my problem. I tried option 2, had to figure out all about the Animation Node Add-On. By now I dont get any values in the viewers. I made a few vertex groups, do I have to select the vertex group?

Option 1: is working perfectly!


text:
How to copy the full data path of a property to the clipboard?
I right click on the cube Z location, then select "copy data path". When I paste that into the console I find the word location. Why doesn't it paste bpy.data.objects['cube'].location[2]?

Try Ctrl+Shift+Alt+C

Place the cursor over a property and press CtrlShiftAltC to copy the full RNA data path of that property to the clipboard eg. bpy.data.objects["Cube"].location[2].
The hotkey calls bpy.ops.ui.copy_data_path_button(full_path=True) operator:

Somehow related: Add menu entry to generic right-click menu?

Carpal tunnel syndrome alert !


text:
How to install lsystem add-on?
Apologies if this seems very basic, but I am really struggling with how to do this and am not sure where I am going wrong.
I have a found an L-System addon on Github (https://github.com/krljg/lsystem) that I am trying to use in Blender.
I have tried downloading the .zip file and saving within my Blender Installation: C:\Desktop\Blender Foundation\Blender 2.82\2.82\scripts\addons but I cannot find it when I install the file in User Preferences -> addons.
I have tried installing both the .zip folder and extracting it then installing the .init file but nothing shows up in the addons.
Is there something I am missing or doing wrong? Any suggestions would be greatly appreciated.

@ChristopherBennett This is not always true for zip files from Github - it depends on how the folder directory is structured. See: https://blender.stackexchange.com/questions/39745/addons-only-some-zips-will-install

Does this help? https://blender.stackexchange.com/questions/39745/addons-only-some-zips-will-install

As stated in the readme.md, you would have to copy the lsystem folder to your add-on directory:

Copy lsystem directory over to F:\SteamLibrary\steamapps\common\Blender\2.80\scripts\addons or wherever your blender installation is.

Linux: $HOME/.config/blender/<version>/
OSX: /Library/Application Support/Blender/<version>/
Windows: %USERPROFILE%\AppData\Roaming\Blender Foundation\Blender\<version>\

Link to the manual for reference: https://docs.blender.org/manual/en/latest/advanced/blender_directory_layout.html#blender-s-directory-layout

also available via bpy.utils.script_path_user() and / or bpy.utils.script_paths("addons")

Cool, added to: https://blender.stackexchange.com/a/169235/31447 @batFINGER


text:
Bevel goes in wrong direction and creates distortion?
I am trying to bevel the edge of my circle. When I select only one edge it causes the Bevel to be inverted and stretched over the other two edges:

When I try to do it on the half circle:

My first Idea was to change the value of the actual profile but it didn't help either. Using Inset to remove the Ngon I get the following result:

The File:

Q: Why is the bevel operation acting that way in this case and how to bevel the edges properly?

I'd suggest selecting the edge loop around the opening, as the entire circle need to be selected, the pictures indicate that the selection was not the loop needed to get the bevel you want.

Even with the hole circle selected it still produces the wrong result. Added Image on main Post:

Would you mind sharing the file, removing all not related objects to reduce the size is recommended and much appreciated. You can use Blend-Exchange, you will need to copy the address of the question for the service, as it is limited for questions and answers here.

You have huge ngons in your mesh. Bevelling an ngon is practically the same as trying to add a loopcut to an ngon. The outcome is unpredictable. Try to use "Inset" on the big big ngons and then try to bevel again.

Some of the face normals in your mesh are flipped. One method to display the face normals in Blender 2.8x is to use its new "Face Orientation" overlay.

Consistent face normals are very important, not only for the bevelling process. Amongst others they determine in which direction the vertices move when subdividing or bevelling a mesh.
Recalculating normals with Shift-N doesn't always work. It fails most notoriously on meshes with ngons or on non-manifold meshes. In this cases you have to do the clean-up manually.
Switch to Face Select mode (3), then select the inner face of the intrusion, then hit Ctrl and + on your Numbad until all the connected faces are selected. Then use "Operator Search" (F3 or Space, depending on your keymap settings), type "flip normals" and hit enter.

Bevelling your mesh should work now correctly.
Other reasons why bevelling might produce inconsistent results are

Double Vertices
Unapplied Scale
N-gons

Welcome to Blender Stack Exchange!
I just downloaded the file and inset the ngon like in your first image. I got the same results as you did, but recalculating the vertex normals fixed the issue.
This can be done by selecting everything in edit mode and pressing Shift+N

I was going to say, looks like a normals problem.


text:
How to get my two objects move natural (trebuchet)?
so I've been working on two types of trebuchet. Following youtube tutorials got me this far:
1 trebuchet is working with a spoon at the end, but the launching object keep falling of even before it launch. ( I did add collision to the trebuchet and made the object active..
here's a screenshot:
screenshot a few moments later:
The second model is:
How do I get this to work ( the sling has a cloth physics)

Please share your file via https://blend-exchange.giantcowfilms.com

The arms are working tho :)

Related: https://blender.stackexchange.com/questions/101535/cloth-collision-with-an-object

Thanks ! I'll check it out today


text:
Weight Painting Won't Get Rid of Weird Protrusions
I tried adding weight, removing weight and removing doubles. The mesh popping out won't go away.
Any ideas?

Blend File:

To trouble shoot, enable Adjust edit cage to modifier result of the Armature modifier.

Then you can select the problem vertices in edit mode and examine the problem vertices.

This vertice should not be assigned to the chest. It should be mainly assigned to the UpperArm.R, currently it isn't.
To fix this go into weight paint mode, select the upper arm bone and add weight to the vertice.

I don't really understand 'Adjust edit cage modifier', but I edited the weights on the vertices and it's working better now than spraying the weight on was

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


text:
For loop splines amplified ! , why? How can I stop it?

I am creating a for loop to connect pairs of objects by a Splines
To understand better image atoms in a molecule.
It seems that every time I create a new spline is in someway  taking in consideration some parameter of the spline before amplifying the result.
How can i stop it (I tried several things, also moving cursor thinking was some hidden dependence from the universe origin but it is not)  also if I convert the curve to mesh every time... still propagating the error.
def CREATE_BOUNDS_1(df_BND,PLUS_FACTOR):
                   #Manca assegnazione nome a oggetti
                   for index, row in df_BND.iterrows():
                       print('START - CREATE_BOUNDS_1')
                       bound_name = 'BOUND_'+str(int(row['BONDS_1']))+'_' +str(int(row['BONDS_2']))
                       print(bound_name)
                       BNDS_EXTR = [float(row['A1_CD_X'])+PLUS_FACTOR,float(row['A1_CD_Y']), float(row['A1_CD_Z']),float(0.0),float(row['A2_CD_X'])+PLUS_FACTOR,float(row['A2_CD_Y']), float(row['A2_CD_Z']),float(0.0) ]
                       print(BNDS_EXTR)
                       bpy.context.scene.cursor.location = (BNDS_EXTR[0],BNDS_EXTR[1],BNDS_EXTR[2]) #muve cursor
                       bpy.ops.curve.primitive_bezier_curve_add()
                       obj = bpy.context.object
                       obj.data.dimensions  = '3D'
                       obj.data.fill_mode   = 'FULL'
                       obj.data.bevel_depth = 0.1
                       obj.data.bevel_resolution = 0
                       # set first point to centre of sphere1
                       bpy.context.scene.cursor_location = (0.0, 0.0, 0.0)
                       obj.data.splines[0].bezier_points[0].select_left_handle = True
                       obj.data.splines[0].bezier_points[0].co = (BNDS_EXTR[0],BNDS_EXTR[1],BNDS_EXTR[2])
                       obj.data.splines[0].bezier_points[0].handle_left_type = 'VECTOR'
                       # set second point to centre of sphere2
                       obj.data.splines[0].bezier_points[1].select_right_handle = True
                       obj.data.splines[0].bezier_points[1].co = (BNDS_EXTR[4],BNDS_EXTR[5],BNDS_EXTR[6])
                       obj.data.splines[0].bezier_points[1].handle_left_type = 'VECTOR'
                       #obj.data.splines[0].bezier_points[1].handle_right_type = 'VECTOR'
                       obj = bpy.context.selected_objects[-1]
                       obj.name = bound_name
                       CURRENT = bpy.data.objects.get(bound_name)
                       bpy.ops.object.convert(target='MESH', keep_original= False)
                       print(bound_name)
                       print('--------------------------------------------------')
                       bpy.ops.object.select_all(action='DESELECT')
                       #bpy.data.curves.remuve()
                   return ('DONE')

Recommend posting an example of usage.

To give some more detail or example giving a sub-example I woud like to connect this 2 points: poit1 = [101.6645, -2.0291, -0.2209]  point2={ 101.1637, -2.9724, -0.3932]  (they are part of the dataframe I sue in the function .         the problem is thatI would like that the cure I am creating is not only passing by this 2 points ,but also starting and ending from them ....but in the loop , more splines I am creating , more the length grow withount control

I FOUND THE SOLUTION!!!
I resume the problem to be sure to be helpful:
you have a dataframe or 2 list of points , and you need to connect pairs of points. the faster way is to create splines between them but ....
..in my case blender was generating the connection in different position than expected and unexpected lengths ... but not really randomly .
The problem was  bpy.context.scene.cursor.location  that was not in the center of the world origin
The solution is to reset at every loop the position of the cursor in the center of the world origin.


text:
Finger Nail and Brush Animation
I am particularly interested in making a short animationin blender which consists of a detailed view of a finger nail, finger tissue, nail brush, layer of nail polisher, etc. the image shows exactly what I am aiming to create.
I would be very grateful if you could direct me in finding a source of skills and material or perhaps share the steps you would take in approach this particular scenario. I am also willing to pay for explanation and guidance.

What is the green stuff there? Wait, I don't want to know. For a brush animation, you can use hair particles How to make toothbrush Bristle animation. If you want to keep the point of view in cross-section view, you could model a nail and fake the layers with a displacement modifier/bump map. For the layer of nail polisher you can use simple Shape Keys... (or Dynamic Paint?).


text:
How to control light spread in a volume?
Quick question, is there any possibility to control the Area light somehow? I want to achieve a similar effect as you can see in the following image. Basically I need a higher contrast and would like to get the light more "sharp".

How to achieve that? Any suggestions?

Thank you @JachymMichal! That's close, but not exactly what I meant. Because you are using a spot light, the rays are not as parallel as I'd like having them. Basically I'd like to get a pretty harsh contrast and sharp shadow without the soft transitions. Tried to visualize it here:

Any other solution?

You'll be better off with a Spot or Sun lamp.
Sharper shadows can be achieved by decreasing Volumetrics density.
Spot lamp

for straight rays decrease the spot shape Angle value
for harder shadows increase power and Blend value

Sun lamp

keeps rays perfectly straight
for harder shadows increase strength and decrease angle

Example of a Spot light with a narrow cone (8°).

Example of a sun lamp with perfectly parallel rays.


text:
Shortcut for operator context panel (redo panel) in 2.8?

Is there a shortcut or a plugin that helps expands this context menu automatically? This extra mouse maneuver and click is quite exhausting in a bigger project when compared to before 2.8. Thanks.

Hello :). Once you expand it, it should stay that way for all new objects. Doesn't it?

Yes! Just press F9 or go to Edit > Adjust Last Operation, which displays the Redo Panel a.k.a. Operator Panel as a simple pop-up window after using any operator:

Quoting from the Manual:

After an operation is complete you can tweak the parameters of the operation afterwards. In editors that support it, there is a “head-up display” panel in the bottom left based on the last performed operation; dependent on mode and context. Alternatively, you can create a pop-up with F9 which does the same thing.


text:
Texture showing in preview render, but not in finished render
I added a plane, UV-unwrapped it, and added a Checkerboard image texture. It shows perfectly fine in the render preview, but when I render it, it doesn't show /:
I checked the nodes, etc. I'm using Blender Cycles (:

Hello, welcome to BSE, adding more details will help you get more accurate answers, are you using BI, Cycles..? Attaching your .blend file and attaching images will even be better.

hey (: Thank you for your time! What's the best way to upload my .blend file?

You can upload your .blend here http://blend-exchange.giantcowfilms.com/

Could you look at my .blend-file? (:

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


text:
Can't add hair to particle system
At the moment I am trying to make a mustache because I thought a hairy ball was to simple. I created a model in a "mustache shape" and added the hair. Now I have the problem that I can't add any hair by using the "Add" brush. I tied to change different values a bit but nothing seams to make it work.
Because I probably explained it poorly here is a video of the problem: https://youtu.be/1DHYQZPMXbc

I hope I made the problem I am having clear and that someone can help me with it.

I checked your file and found nothing...You can add another particle system and work on it or start again. Your particle system seems broken. Can't help you more

Click on "Free Edit" and change the "Emit From:" setting in the Emission panel from Volume to Faces.

Can you elaborate on why will Faces method of emitting particles allow adding new particles with Add brush as opposed to Volume method? Note also that pressing Free Edit button will erase all the particles changes done in Particle Edit mode

The volume selection "emits hair particles from the volume of an enclosed mesh." OPs mesh isn't enclosed so there's no actual volume to emit from. I'm surprised that it emitted any hair at all. There were good mesh faces and that fixed the problem. The Free edit option was necessary and, given that no more hair was going to be added under the settings as they were, keeping the particle changes was pointless.

I can't see your baking settings in the video, but this behavior can be caused if your particles aren't baked, or if they are baked to a Disk Cache.
From the Manual:

Only Frames Baked to Memory are Editable!
If you cannot edit the particles, check that you are not baking to a Disk Cache.

To change this, uncheck "Disk Cache" in your cache settings.

I am working with a particle system without physics so I'm unable to use/see the cache settings. The main problem I have is that I can't use the add brush in the particle edit mode. When I try to add hair with this brush nothing happens/ it doesn't add hair.

I had a similar problem. In my case, the solution was to select Particle in the Editing Type dropdown of the Tool Options.