text:
Solidworks to Blender - keeping assembly structure?
TLDR - How to import a Solidworks assembly into Blender whilst keeping all objects and hierarchy intact
Afternoon Blenderers! Im working on animating a solidworks assembly and eventually developing an AR scene with the model but I'm struggling to get my Solidworks assembly into Blender with the same design tree / Hierarchy and hoping some of you pro's would be able to point me in the right direction.
The process that has got me the furthest so far is to open my Solidworks assembly file in Visualize (Solidworks' rendering software) then exporting as an .FBX to import into Blender...
My issue is, in Visualize, I have the option to 'flatten' or 'retain' the structure but both ways leave something important out...
If I choose structured, when imported into Blender, I have the right design structure and grouping however all of the solid objects are faces alone and need to be manually joined.. which could take days as my model has lots of little parts like screws.
If i choose flatten, all parts come over as their own objects which is brilliant for the animation side but I lose the file structure completely (which I expected) but there is no easy way to restructure without manually grouping the parts I need in each sub-assembly.

If I were just rendering a still image, then the flatten process would work fine for me, however I want to animate and eventually go into developing an AR scene. Do I just bite the bullet and start manually grouping and making the structure within Blender?

Keep the file structure. Then take one object and add a weld modifier and see if that doesn't do the trick. If that works for you then select all objects with the one with the weld modifier last and go into the object menu and link modifiers. That will put a weld modifier on every one of the objects. Next with all of them selected you can again go to the objects menu and under apply choose visual transform to mesh and it should apply all of the weld modifiers and now you have objects that have faces that are all welded together and share vertices.
I think you can also right click on the objects once they are all selected and say convert to mesh and keep the alt key held down as you press that menu item and they will all be converted as well.

When importing to visualize, try selecting layer/appearance. It retains structure and parts are still one file.

Hi, thanks for the post. This site is not a regular forum, answers should be substantial and thoroughly explain the solution and required workflow. One liners and short tips rarely make for a good answer. If you can [edit] your post and provide some more details about the procedure and why it works feel free to restore it, otherwise it may be deleted or converted into a comment. Perhaps add a few images illustrating the workflow and final results. See How do I write a good answer?


text:
Sequencer is Rendering In Eevee Vs Cycles and looks different than Viewport
I camera tracked some footage in my alley to try and composite some models but when I hit render either all my models disappear when rendering from viewport or I get a weird shading when rendering from the Sequencer.
Attached is an image of what I'm seeing.

In Scene Properties -> Post Processing do you have Sequencer checked?  If so, does unchecking it help?

Unchecking it doesn't help. The viewport still renders without my objects.

source: Stack Exchange

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

sort: votes


text:
How to smooth out pixelated meshes
I downloaded a detailed terrain mesh from online. The interior of the mesh looks great, but the outer edge of the model has this rough pixelated look. Now I could try beveling each edge multiple times until it looks better, but I'm wondering if there's a faster solution that can produce a smoother shore line.

I don't know of a fast way to do that. You may have to do it manually.

Maybe the "Smooth Corrective" modifier could help?

You could smooth the vertices using Vertex > Smooth Vertices
Choose an axis to use, in your case x and y.

This seems to get the desired result. Now I just need to figure out how to select all the vertices on the outer edge.

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


text:
Knife tool bugging out in certain areas
I'm using the knife tool to cut out landmass shapes on a simple plane object. Most of the time it works fine, but on certain areas, I get this weird ghosting effect with the cursor rapidly shifting positions. When I click, the new cut vertex gets put wherever the cursor is, so it's really hard to be accurate. It seems random when and where this error occurs, but when it does show up it happens consistently in the same area. The plane I'm using currently has 7,000 vertexes after the cuts I have already made. I'm on blender version Here is a video demonstrating the error. Any advice?
https://www.youtube.com/watch?v=TS6RwSqT0r8

There must be some vertices the knife tool was snapping to?

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

To me it looks like snapping, too. Maybe you could show the wireframe of the plane you are trying to cut as well? If it's not a snapping problem it might be better to upload the file to inspect it further.

Snapping is not enabled in the project, and has never been enabled.

Pretty sure this has to do with floating point imprecision. Your object looks like it's at ~1million meters from the origin.

Blender only has a limited number of bits that it can store vertex locations at.
Say for example, Blender has 8 bits of data to store each vertex location in one axis. That means a vertex location at  1.2m on the X axis in memory "looks" something like this:

1.2000000

While a vertex at location 1 million might look like:

1000000.0

You only have one place after the decimal to clarify the vertex position, vs. 7 in the smaller example.
This is obviously not exactly accurate on a computational level but only serves to illustrate the purpose.
The farther away from the origin you get, the fewer digits you have to store exact vertex locations. Blender has to "round down" in order to stay within the bounds of the bit depth vertices are stored at.
If the location of your object (or more specifically the section you are cutting) is moved closer to 0,0,0 in world space this bug will likely disappear.
Testing to confirm
Simple 2m plane in a blank scene, located at 0,0,0:

Relatively smooth.
The same plane located at 10,000m, 0,0:

Not super noticeable but zoomed in you can definitely see the traces of floating point inaccuracy creeping in.

Oh yeah you're right, this object is way off... didn't take notice of that when looking at the video...

Ah floating point. I've dealt with that issue in Unity quite a bit, but I didn't think of it with Blender. However it doesn't seem to be the issue. I'm using Blender OSM, so the real world scale is quite large, but I scaled down the whole project x100 and moved the center closer to the origin, and the problem still persists. I even upgraded to Blender 3.2 and it's still there.

If you scaled it down by a factor of 100 that means it would still be 10000m wide which is probably still big enough to introduce some amount of floating point errors, and I misspoke, it's not simply the object origin that needs to be at 0,0,0, but the location of the cuts themselves.

I tested this and added my results to the answer, I'm fairly positive the FPI is the cause.

It just feels weird because it only noticeable in a few areas, and the areas where it's the worst are actually the closest to the origin point. There are areas much farther away were the issue doesn't pop up at all. I'm cutting out the shape of the eastern USA, and the orgin point is just off the coast of North Carolina, but North Carolina is the area where the problem appears the most. But working up by Maine is perfectly fine.

I'll definitely trying scaling it down again and see if the problem appears at all.


text:
Preferences: Change time it takes to animate to specific Numpad view
I remember there was a setting in preferences where you can change the time it animates to the selected Numpad view. Like if you press Numpad 7, the camera animates to that view, i believe the default value is 0.5 seconds. Where do i change it? i tried searching it but it seems ungoogleable.

As of the latest version (3.2) this setting is called Smooth view, under Navigation. It's in milliseconds, so the default value is 0.2 seconds. I'm not surprised you didn't find it, the name is... not descriptive.
Note the max value is hardcoded to 1000 ms (1 second) and setting it to 0 disables the animation.

thank you very much for the quick answer! that's exactly what i was looking for!


text:
How is Cursor To Selected calculated in this scenario?
I have four (4) objects and when I select all of them and press tab to go into Edit Mode, I can select the top face of each object. Then when I do Shift+S > Cursor To Selected I would have expected the 3D Cursor to be averaged at the center but alas it didn't. Can anyone explain how the Cursor To Selected is calculated in this scenario?

The 3D cursor usually goes to the Median Point, since this is the default setting for the Transform Pivot Point.
What you need to snap it to is the center of the overall shape which would be the Bounding Box Center as pivot point. Simply change it in the top menu.
Note: for the Cursor to Selected snapping you can only use the Bounding Box Center and Median Point options. All other pivot points set the cursor to the default Median Point. And it's only working in Edit Mode, not Object Mode.

oh yeah i totally forgot we got those options. thanks for the explanation!

@HarryMcKenzie But it only works exclusively in Edit Mode - if you wanted to do that in Object Mode to get the bounding box center of all objects combined, that doesn't work.

I believe it goes to the median point of the coordinates of selected vertices.


text:
What logic does the Curve modifier use when deforming using a Bézier Circle?
I was expecting the Curve Modifier to deform a mesh based on the curve's shape. So when I use a curve with a circular shape, I would expect the mesh (a hexagon mesh with an Array modifier and Subdivision modifier) to deform or wrap around along the circular path without any weird unexpected center stretching. Here on the left image, I'm using a Bézier Circle curve. On the right I'm using a simple Circle (using the NURBS circle curve has the same effect). Why does the Curve Modifier with Bézier Circle as Object handle this deformation differently and what is the logic behind this? I'm using X as Deform Axis in both scenarios and all objects are on the XY plane. When you convert the shape to mesh and then back to a curve then it works like on the right image. I tried adjusting both curves' Object Data Properties but nothing changes this behavior.

Just a guess. Have you scaled your deforming curve in Object Mode, and then applied the scale? That bakes the scaled radius into the control-points, normally desirable for preserving the appearance of a profile, but scaling deformed 2D instances non-uniformly. TLDR; Check the radius.

@RobinBetts ah interesting. I did apply the scale so it should have worked. When I uncheck Radius in the Curve Deform of the Object Data Properties it works. What gives? Why does the radius not change even after applying the scale?

It also works if I don't apply the scale and leave Radius checked. So I'm not allowed to apply the scale but I'm used to apply the scale of any object I resize in Object mode.

I'm used to Apply the scale after scaling an object in Object mode. I didn't realize you cannot apply the scale when you use a curve as deformation in the Curve modifier. In the case when you have already applied the scale which I think is irreversible, unchecking Radius option in Curve Deform fixes the issue. That's the case for every curve object. Always better to resize in Edit Mode.

Applying the scale may be irreversible, but you can set the Radius back to 1 in the curve's N panel in Edit Mode 3D View. You may need to reset other Object Mode transforms.. by the look of your reference, Location, relative to the array. The rule: 'Never scale in Object Mode during modelling' (at least,  without a slight shudder) holds up, IMO :)

@RobinBetts thanks! out of curiousity i tried scaling it back to dimension 2m (1m radius) and then applied but it would look different. not like the original 1m radius it was. but yeah i will keep that in mind not to scale curves in object mode.

I never scale anything in Object Mode during modelling.. except if dimensioning, and then I apply straight away. We could chuck out half the questions on BSE if everybody did that. :)


text:
How to create this procedural texture without using Noise Texture?
Hi is it possible to create this procedural texture shader below without using the Noise Texture node? There is a bug when running blender 3.1 on windows 7 (if you are interested you can see it in the closed thread Procedural Textures Working Perfectly but Bump Map is Pink) so i'm looking for a workaround trying to produce this same texture but without using a noise texture. Is this possible?

Well, because Windows 7 is not supported by the official Blender since version 2.93, you could try 2.90 or below to do that with the noise

yeah i know. but i like the latest version and unfortunately i only have windows 7 XD

You could try and fake it with overlaid, warped wave textures:

EDIT: If you're up for stretching, as moonboots suggested, I would recommend using a Voronoi Texture - Distance output. I would also recommend still warping the vectors slightly with a (non-detailed) distorted (wobbly) wave texture to get that "bent overlap" that is in your example image:

wow cool amazing ! thank you soo much!

Hey, no problem. I'm sure there are simpler ways - that's just what came to me first. If I find anything better, i'll post it here.

that would be awesome :D

You could also use this kind of setup (here with a Musgrave), stretch it on an axis, increase the node's Detail value to make it a bit more chaotic, create several needles in the ColorRamp to have some color variations:


text:
Curved object wrinkled
What can be causing these wrinkles?

Triangle faces. See https://blender.stackexchange.com/questions/6425/keep-sharp-edges-when-using-subdivision-surface

Select all the edges around your pole vertex, Ctrl-E, Subdivide, Select the resulting loop and shrink it so it's quite small and flatten it with the pole.

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


text:
Modeling gas lamp pipes
I am in a bit of a pickle at the moment, as I can't seem to make those tubes look how they should. I tried extruding from the bottom part of the lamp to try and create a curved tube but it just doesn't look right. Any ideas?

Clearer reference:

Cylinder with Proportional Edit.  Curve Modifier.

https://blender.stackexchange.com/questions/87072/how-to-make-screw-spiral-down-into-a-point/87076#87076

Create a profile with a Bezier Curve.In Object Mode > SHIFT + "A"> Curve > Bezier.

Then in the Object Panel > Convert to Mesh from Curve *(Need to be in Object Mode).

Tab into Edit Mode select all of the vertices by pressing "A" then extrude by pressing "E" and then the letter of the axis you want to extrude in. For me it was "X" "Z".

Place your cursor here and press ALT +"R". You can adjust the angle Before you do anything else.

Repeat for the bottom changing the angle to a negative value.

I believe in real life those are tapered. Select the top ring of vertices and go into Proportional Edit Mode and scale to taste. I used Linear Falloff.

Just the little protuding hole
Mesh LoopTools is an Addon which must be installed
Simplified form mesh

Stages of editing left to right top to bottom.  Edit Mode.

Yellow vertex dense cylinder
Blue Partial quad strip extrusion
Yellow Loop Cuts for local vertex density
Blue Two Patches cut out in square on both sides.  Bridge Edge Loops
Yellow Mesh Loop Tool changes rectangle hole to circular hole
Blue Proportional Editing for edge protrusion
Please improve this to suit you needs
Technique only. No artistry focus.

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


text:
Add more wrinkles to cloth
I have some problems getting the tablecloth to be the way it should.
The issues I have are mainly tension and not enough wrinkles.
Since the cloth doesn't have enough tension, the part marked with red is not stretched and does not look like it does in the concept art. I tried decreasing the mass of the cloth so it doesn't pull it down that much but it doesn't really change much.
What the cloth doesn't have as well are enough wrinkles. In the concept art, there are wrinkles across the edge that I can't seem to replicate. Increasing the bending just makes it unnaturally bendy without adding any more wrinkles to it.
How can I make the cloth look more realistic and more like in the concept art?

This generally requires a higher resolution mesh, a better quality simulation, and hence longer baking time. The fabric may also need to be stiffer and require some sort of additional motion that forces the creation of wrinkles.

since it appears you are making a still, you could also apply the cloth simulation and sculpt in the wrinkles you want. nice render.

@ChrisHowe thanks! I've also come to the realization that the concept art might look real, but in a physical simulation the cloth would look much different.


text:
In Sculpt can grab-tool push along normals?
I just found out in ZBrush when sculpting with the grab tool, they can press Alt and it will push along the normals, and wondered if blender could do anything like this?

Okay I think I figured it out.  You press control while dragging.


text:
How to make grease pencil stroke full opacity?
I've been trying to use blender (2.80 - from Ubuntu repositories) for 2d animation. The 2d animation screen I'm presented with guides me towards using the grease pencil for drawing. But now to the problem.
My grease pencil stroke appears to be about half-opacity and I can't find where that gets set. I've found I can change both the stroke and fill properties in the "Materials" pane. When I set them both to solid black, then the fill will appear black as expected, but the stroke will appear grey both in the viewport and in the render output. If I change the color to 100% red, it will appear unsaturated red.
I did find that if I change the world background color to blue and the stroke to red (in materials), then the stroke color will appear purple. And having multiple strokes intersect will increase the opacity. So I'm pretty convinced there is some default opacity (effectively anyway) for strokes (but not fills) somewhere that I haven't found. I suspect it's probably somehow due to the "lines" layer being different from "fills" layer, but I can't find any differences!
I've never really used blender, but I have tried do mess around with it in the past - maybe I changed some ancient setting years ago to make this happen?
I went through all the options I could find on all the default panes in the 2d-animation workspace and disabled any custom colors (or set them to black) and set all the opacities for everything to be 100% (IDK what onion skinning is, or what the viewport display controls) and none of that seemed to work. I searched Google for variations of "blender grease pencil stroke opacity" and only found more complicated issues (eg: a bug from a few years ago with grease pen on top of 3d geometry) - not instructions about this apparently basic behavior. Even in the documentation seems to just talk about how you just set the color to what you want - but not so for me!

I found many other potential causes for this problem:

You have a reference image and it is set to Front, perhaps with some opacity setting. Set it to Back and check the opacity. This is in object mode, camera selected, object data properties for the camera, Background Images, Depth and Opacity.
In the grease pencil's object data properties, there is a section called Layers with its own opacity setting that must be sufficiently visible.
Make sure you're not on a neighboring frame with the onionskin effect active.
The Strength of the stroke is a setting like brush size that controls alpha values and must be set to something visible. It can be found at the top of the editor viewport. In Draw Mode, right clicking somewhere also brings up a menu that allows you to adjust the brush size and this Strength property.

Ugh. So I had been messing with this for an hour. But after posting, I tried to do it from scratch and discovered the "strength" slider.
So the solution is - at the top of the screen, move the "strength" slider from the default 0.6 to 1.0. And you've got full-opacity lines!

and for future reference, if you want to change the strength of an already drawn stroke, you can do that in sculpt mode (???)

And to add to that: to edit the strength of all your keyframes, you can enter the "Multiframe" mode, select all the keyframes you want to affect, and then draw over them with the strength "brush".

I also struggled long time to fix this issue, it is clearly an error that the 2d workspace starts with the stroke opacity setting at 60%. Any idea the reason why this is the default, other than annoy beginners?
The other way I found to solve it, after the stroke has been created, is to select the stroke and then use the Stroke > Normalize Opacity menu, while in Edit Mode


text:
2.8 - Streched texture
im new using blender and I started to make a simple house with pixel art textures, the question is when i place the images appear stretched ¿is there any way to fix it? here some screenshots:

Show us your uv map in the UV Editor window.

The second image.


text:
Artefact in imported Hair
I have wierd bump in hair and i am desperate.
I created a model in VRoid then exported it to blender. Then made clothes and details, exported the whole thing to MMD. In MMD it worked okayish.
After that i wanted to render motion in blender with fancy lighting and physics. Here's where I faced problems. Exporting back to blender using add-on caused problem with hair - physics had a defect and hair followed after head partly. And also has this weird bump artifact.

Add-on makes automatic mash/bones/weights from MMD, therefore there was a problem. I deleted all hair physics, so next desision was to make new rigid bodies. Still I was met with the same problem. This bump..thing is still there. After 1st rigid body in chain the rest follows the head. The 2nd rigid body follows only partially. Weights and normales are okay, baking all physics doesn't solve it. I would gladly appreciate help
not parented: 2
3:
Paranted:

Apologies as I'm kind of new, so I'm unsure how to fix all of your issues, but I assume the bump is an issue with colliders, as a similar thing happened with one of my models.
Try editing the collider for the head by moving it or making it smaller. This should at least partially help with the weird hair lump. I removed the hair in my screenshot to make it more easily visible, but this specific collider seems to give a lot of issues if you go directly to blender.


text:
select all animation AND shader node keyframes
im trying to move the animation in my scene backward in time. for that i need to move all keyframes, but after selecting all objects i realize that the timeline editor only shows their keyframes WITHOUT the corresponding shader node keyframes
i could manually select every object and navigate into the shader editor and select all nodes there but it seems like a tedious task.
so my question: is there a quick way to truly select all keyframes in a scene?

I was really hoping you would have a response by now because I have the same question.


text:
How to round a square face?

Im trying to make eyes for a stick figure model in Blender, so I need to convert some faces from square to round. How do I do that?

https://blender.stackexchange.com/questions/3260/how-to-cut-a-rounded-hole-in-a-sphere


text:
Import Rhino into Blender - problem sculpting
(I'm new to the sculpting and Blender world, and need a bit of help)
I'm currently working in Rhino and hoping to import some Rhino models into Blender for additional sculpting, then put back into Rhino.
I have been importing my Rhino files as FBX into Blender (OBJ will not work for some reason, the geometry does not appear in the file)
The issue I have, is when sculpting the mesh breaks apart into many pieces, particularly when sculpting.
With ZBrush its possible to use Remesh and Project to make a new mesh nearly identical to the original geometry from Rhino, but new so that it can be pushed and pulled with the sculpting tool with no issue.
Even using the Remesh modifier does not help, as the mesh is still breaking apart at the edges (especially when smoothing)
Any thoughts on how to proceed?
Attached is a screenshot showing the breaking.

Firstly, welcome to the Blender world.
Sculpting works on the vertices mainly, means the density of the mesh needs to be high enough, while you also have another problem due to the object import.
I would guess that the object you have is build of split parts, means the caps and the cylinder are not really merged.
To check this you can go in edit mode and select a vertex of the cap, pressing L should then only select the cap. Means the cap is a loose geometry and not connected to the rest.
Solution of the first part needed:

Select the object and go in Edit Mode
Press A to select the entire objects elements
Press Alt+M "by Distance" to merge all vertices that are sharing the same location, essentially merging the caps with the cylinder part.

Now to the sculpting part, you have 2 options:

Using Dyntopo, which will allow you to set a certain density that will be dynamically used to sculpt and change the mesh while you sculpt. Easy to use on low density meshes. The lower "Detail Size" you set, (shown in the picture below) the finer mesh will be generated at the parts you sculpt, causing the mesh to gain a lot more vertices/density.

Increase the density of the mesh manually, either by using a subdivision surface modifier, which can casue problems without control-loops, or by using the "Subdivide" function in the context menu by RMB in edit mode.

I would recommend to try the dyntopo method first to see how it works out, as the other option includes a lot more work to be able to start sculpting.
And finally regarding the back to rhino idea, i do not know if rhino can work with the resulting high density mesh. As far as i can remember back (long time) Rhino was Nurbs based.


text:
Particle Instance Modifier to Inherent Color from Hair Particles
Does anyone know how to inherent the color from hair particles and assign that too a particle instance modifier object, im basically attaching tiny balls to the end of the hair, and the goal is to have the balls be the same color as the hair it is attached too but then have an emissive property, like a glowing colored tip.
I thought it would be through the From Instancer in the texture coordinate node, but that doesnt seem to work.
Thanks for any advice.


text:
Generative Water Rings
Does anybody have a recommendation of how to create generative water rings, non animated, I need to create many variations and simulation seems like an extra step if this effect can be done with geometry nodes.

I think it could be possible if you put water in torus like domain and use physics forces to rotate it so it makes those shapes. Not sure if anyone will have exact tutorial but I think that it is possible

Thanks Miko, that technique will for sure work but I’m looking for a non fluid simulation approach to generate this effect, so done with nodes and randomization.

Hello :). What have you tried so far and where exactly are you stuck? This site isn't meant for full tutorials.

@JachymMichal : ) yes im aware its not for full tutorials, i can get this effect no problem with manta flow simulating in a torus, but because im doing an illustration project im trying to get more control and trying to do take for example a spline and with a round depth and move that into different shapes and use geometry nodes to give it the feeling of water shapes displaced off of the geometry.


text:
Is Blender the right software to make 3D animations of Mechanical components and assembly?
A complete newbie of the field here. Apologies in advance if this is basic question.
I am trying to figure out what software is capable of producing something like this: https://www.youtube.com/watch?v=leosVYDGb-Q
Would Blender be able to do that?
Thanks again,
PG

If you are looking for an actual force driven physics based simulation, Blender can be limited in that area and is probably not adequate for what you are seeking.
Bullet, the physics engine behind Blender is quite capable but not very suited for mechanical workings, and tight fittings and chained interactions like mechanical parts do not work well there and glitch out very easily.
On the other hand, if you don't mind a geometry/maths based solution, then Blender it sounds right for you, and Blender should be perfectly able to do what you see in the video. If you are looking for illustrations of mechanical parts and animations of simulations the constrains system should be quite adequate and easy to set up.
You may want to look into constraints based animations tutorials
See:

Precise Mechanical Rigging (Intuitive method)
How to animate winding a ribbon onto a cylinder?
Rigging an umbrella-like object
Is Blender a sensible environment for making a first-person orrery?


text:
First start with sverchok. looking for feedback and how can i make this more efficient
I just started a project in Sverchok and before I continue, I would like get some feedback and hear how I can do this more efficient. It looks like a mess.
Do I need 3 Viewers, or do I use some list node for combining all parts?
The two faces extrude with the same matrix, but I want the extrusion to be on the same side of the x Axis. So for one of the extruded faces: 8 * -0.5 instead of 8 * 0.5.
I thought about making a mask list, mirror, copying all the vector information, but with each of them I run into more complex beginner problems.
Note that I have no prior programming/node experience.

there are ways to join meshes, but it's not entirely clear to me what the end result is that you're looking for. Maybe you can do a quick 3d model of the result, and add it to the question. you might get answers that show how We (team sverchok) would approach it.

Let me just insert the gist
https://gist.github.com/b846e86e59d5458d0b87abba5205f6b2
This example of some ways to solve issue. I don't know aim of your node tree.
First of all, you can use not only extrude to extrude. loft, copy with uvconnect, matrix tubes, simple pipe node or whatever you need. There are tonns of solutions depend of what you want.
Import json and test.

My aim is to make a parametric building block. Or do you mean something else?

there are many ways, maybe it must have some plane surface or something, that can define better exact way to generate.

I get some errors when importing the gist:
File  “/sv_IO_panel_operators.py", line 203, in execute
import_tree(ng, nodes_json=nodes_json)
File “/sv_IO_panel_tools.py", line 819, in import_tree
generate_layout('', nodes_json)
File “/sv_IO_panel_tools.py", line 792, in generate_layout
place_frames(ng, nodes_json, name_remap)
File “/sv_IO_panel_tools.py", line 709, in place_frames
ng.nodes[finalize(node_name)].parent = ng.nodes[finalize(parent)]
KeyError: 'bpy_prop_collection[key]: key "Pipe (Surface)" not found'
location: :-1

update sverchok and import than

I can't view the second example in te gist, however I the other two helped to get better understanding of what is possible.


text:
Change shader saturation gradually
I've stumbled upon a problem while working on a facade shader. I am pretty sure the solution is quite simple but I just cannot work it out myself. I would like to be able to control the saturation of a certain shader gradually - I am using a wood shader for facade and I want to achieve the worn wood effect - the top parts are still saturated while the lower parts are almost grey. Is there a way to somehow control this values using colour adjustments nodes? Thanks!

There may be many other ways - I mixed the image texture with a desaturated version using a linear gradient node - hope this helps.

this is a starting point (not 100% correct, but you can play with these nodes):

Thanks so much for your quick replies @Justin @Sanbaldo! I could not make each of them work 100% but based on your ideas I came up with something like this and it works perfectly. Thanks so much.


text:
Can't add hair to a rigfy'd body
So hey! What's good?
I just recently made my first attempt on hair (as an OBJECT I mean, you can see it in the picture) and I wanted to add it to my female model who's also working properly with the rigfy addon. Thing is...I can't seem to make the hair stick to the head haha so, basically, everything works, animation is perfect, but my poor lil char is still bald for some reason I can't figure out. Tried parenting, snapping bones to the original rig, weight painting, even making the whole hair again just to make sure I wasn't skipping any points and still..NOTHING. Moreover, I don't think there's a way to parent the loops from rigfy directly into the hair, which makes it worse. Please help this poor fella who can do nothing in Blender but cry.

Did you parent the hair object to the head bone? PS: please not so much emotion.

Yeah, in actuallity it was the first thing I did! It must be something about this add-on that I don't understand...thanks anyway! PS: Oh I forgot about that, you're right: straight to the point, unsensitive robot mode activated


text:
What's the difference between this Mocap and the Mocap+Surface?
I've been trying to use this free model of a dragon (it's an animation of it flying, by the way) and it's pretty realistic and all but...

Whenever I try to open it in blender, all I get is this...flat, plastic like results. I feel like that "Matcap+Surface" has something to do with it, but I'm not sure. I'm sorry if the solution to this is simple, but I just can't get it done. Hey, thanks in advance for anything.

Firstly, your Blender screenshot shows the Material Preview mode, whereas Sketchfab  says "Final Render". The Rendered View in Blender might look different as well. Secondly, it is quite often or mostly normal that materials are created differently in different softwares, depending on their features and render engines etc. so that you usually don't get the same look when switching between software. And finally, this site is about problems in Blender, if you want to know the differences between Sketchfab's "Matcap" and "Matcap + Surface", you might consult a Sketchfab help site.

You're totally right! I'll look into it, maybe coming to Stack Exchange for such confusion was a miss haha, yeah, the rendered view still shows the same, it's probably the software...thanks a lot though, I'll contact the owner of this model right away! If not, Sketchfab's help site or something in those words like you mentioned, cheers!


text:
How to use shortcut 'J' to connect two vertices using shortest path?
I've noticed the following behavior several times and I found it quite annoying. Many times when I select 2 vertices and press J to cut a set of edges through, it's not going through the expected shortest path.

The correct shortest path is the yellow line. What is the logic Blender used to determine it to place the vertex in this position? Since both the start and end vertices have the same Z position, I would find it more logical if it didn't take a "random" z value and just use the same z-value as the selected vertices. How do I configure Blender to make sure it goes through the shortest path?

Out of curiosity I also tried removing one face to see how it behaves in this example:

Anyone any idea?

Interesting question.. what path-finding algorithm is Blender using? It would be nice if someone could look it up.

The correct shortest path might be the yellow line in your example above, but actually I don't know where it is stated that this tool would create the shortest path? At least it is not in the Blender Manual. You have an n-gon there with parallel lines at different lengths as well as non-perpendicular corners. In the same way that a Loop Cut changes from orthogonal to diagonal when getting closer to a diagonal border, the Connect Vertex Path behaves in a similar way, only that it is not limited to work on quads like the Loop Cut tool.

As you can see in the answer by @СергейЛенов the thing here is, that you have an extrusion there. It would not matter if it is inward or outward, the important thing is that the edge to which the vertex in the front belongs to is at an angle. If it was just an inset but flat face (like shown in the answer), the cut would be straight. Even if you made a second inset, as long as the edge angle is 0°, the cut will be straight. I don't know how the edge angle is used for calculation of the cut, but at least I can show examples how this influences the cut.
Here are a few cubes.

#1 has a simple flat inset face, the edges connect to the corner vertex have angles of 0°.
The same goes for #2 with a secondary flat inset face.
#3 has the second inset moved a little outward so that the edges have angles of about 30.2° and 41.7°.
#4 has the second inset moved even further outwards, the angles are now 78.0° / 87.5°.
On #5 the face is only as far out as #3, but the face is larger so that the angles are the same as on #4.
#6 is a simple outward extrusion, the angles are now all 90°.

Now look at the new edges that result from using the Connect Vertex Path tool to the left of the cube.

#1 and #2 where the connected edges have an angle of 0°, the new edge is completely horizontal (which means the shortest path here).
#3 with an angle of 30.2° cuts the border slightly higher.
#4 with a sharper angle of 78.0° is even higher, #5 with different inset size but same angles has the the cut at the same height.
#6 at last with 90° gets an even higher cut - and if you had scaled the extruded face larger so that the angle exceeds 90° it would have gone higher still.

However, this does not provide any solution on how you could avoid that or which calculation is doing this on edge angles different from 0°. I can only tell you, non-flat faces will result in non-straight connecting paths.

thanks for your inputs Gordon!

@HarryMcKenzie As it seems after some experimenting, not only the edge angle has an influence but also the width from the vertex to the border... but I really have no idea how to find out how this is calculated.

As far as I understand, this already works on the principle of the shortest path. Try to repeat all your actions with a 2x2 cube and insert 0.5 m, and you will get the result you need. And if it doesn't work out, then most likely the problem lies somewhere in the grid
Before Hotkey

After Hotkey

PROBLEM

Just now I somehow managed to get the same problem as you and in general
Height = 0.16769 (And should be on the same line with the points we need)
Insert = 0.38736
If you calculate the length of the wrong path and this:
0.16769^2+2^2= 4,02812 > √ 4,02812 = 2,00702 (1 side)
0.16769^2+0,38736^2 = 0.178168 > √ 0,178168 = 0,4221 (2 side)
2,00702 + 0,4221 = 2,42912
Now let's calculate the path of the right path
2 + 0.38736 = 2.38736
That is, for some reason, he began to follow a longer path, although the idea should be the opposite
In the end, I can only say that I solve this problem when I changed the cube and started everything from the beginning

I don't think he really wants to know how to correct this (in the example you could simply edge slide the vertex that's off downwards and snap it to the height of the others) so a redo is not the solution (and maybe not possible sometimes), he asks why it behaves like this and if there is a way to make it behave differently. Like when you are using the Loop Cut tool and press F, you can toggle which edge the cut angle should match. By the way, you "somehow" managed to get the same problem: the reason is the inward extrusion, just in case you are wondering why it behaves differently.

use the knife option then? it doesnt take that long and i think it'll fix it


text:
Cannot set Graph Editor Evaluation Time keyframe handle type to Free
I'm animating the Evaluation Time corresponding to an object constrained-animated on the curve. But I can't find a way to smooth out this keyframe. I tried setting Handle Type to Free or Aligned but nothing happens. I noticed that when I animate another object, you can see a handle type.

if you set interpolation to bezier...this happens: (i hope this is what you wanna have?)

oh ok. i was using interpolation sinusoidal and then wondering why i couldnt use bezier handles XD. so i guess i can use bezier interpolation and then adjust the handles to have the same sinusoidal shape. thank you!

you are welcome

but i wonder why can't it automatically add the bezier handles if i set the interpolation to sinusoidal?

it could, i am sure - ask the developers ;)

Question is, can you describe sinusoidal interpolation as a Bezier? I know you can't describe a circle as a Bezier perfectly... Attempt one by scaling to 0 one of the handles: https://i.imgur.com/tRsSYzw.png Attempt 2, by eyeballing arbitrary handle positions, but I don't know what's the logic: https://i.imgur.com/EaEJKFN.png

@MarkusvonBroady that's interesting. thank you for sharing! i always thought circles can be described perfectly with Bezier. apparently not xd but i guess rough estimations for any interpolation described as bezier will suffice for any animation.

@HarryMcKenzie One more thing, since recently you can use ghost curves for easier manual workflow: https://i.imgur.com/U9osA9X.gif In the past I would take a screenshot, open in a new webbrowser window, use Autohotkey to set the window to be semitransparent and clickthrough and position it on the old spot xD Much easier now.

@MarkusvonBroady wow that was some hardcore tedious work haha but now awesome! very useful thank you for sharing!


text:
why this render in eevee goes white?
hey let me know why this render goes white when i do final render by pressing f12 ?
anyone evert who can solve this matter in 2.81a ?

Hard to tell from a picture, attach the file. Dont you have some hidden object in front of the camera which is visible in render?

https://blender.stackexchange.com/questions/67490/why-does-my-object-not-show-up


text:
Blender 2.82 program won't load but previous version of blender works great
Newest version of Blender 2.82 won't start.
A pop up about AMD drivers quitting appears and Blender shows Not Responding at the top. The screen remains gray.
Using Windows 8 64-bit
Blender 2.79 worked fine.
all windows updates have been installed.
Drivers are all up to date.
Anyone else having this issue? Any ideas?

Your system likely doesn't fulfill the minimum requirements for running Blender 2.8x.

Do you have a dedicated GPU or only the integrated one as shown in your screenshot?

This was already reported for this on the bug tracker in T74100, therefore this can be closed. The cause for the issue is unsupported hardware (AMD GPU with TeraScale architecture).

This is a laptop that I have.


text:
How to select vertices based on their number of edges
I am running the following code to generate vertices with 4 and 8 edges (plus the vertices of the outer loop):
import bpy
import bmesh
bpy.ops.object.select_all(action='SELECT')
bpy.ops.object.delete(use_global=False, confirm=False)

bpy.ops.mesh.primitive_plane_add(size=11.95, enter_editmode=False, location=(0, 0, 0))

bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.subdivide(number_cuts=29)
bpy.ops.mesh.poke()

Now I would like to select all vertices that have 4 edges connected. 'Shift-G - Amount of connected edges' works, but I would like a) get the distribution of vertices with 2/3/4/5/6/... edges, and then to automatically select vertices based on this criterion.

Use bmesh
Strongly suggest ditching bpy.ops.mesh operators for bmesh.
Test script, run in object mode, creates the grid mesh and pokes it.  The return of the poke operator gives the new faces as well as the new "poke" vertices.  For example sake have added to a vertex group named "Poke".

Select the vertex group "Poke" and will see that all newly poked, (linked to 4 edges) verts are in it. Alternatively see edit mode answer below.
Object Mode Script
Create a new mesh, load up the newly created bmesh, add a new object with the mesh and link to scene. No operators, no edit mode toggling, no selecting....
import bpy
import bmesh
context = bpy.context
collection = context.collection

bm = bmesh.new()
bmesh.ops.create_grid(bm,
        size=11.95,
        x_segments=30,
        y_segments=30
        )

ret = bmesh.ops.poke(bm, faces=bm.faces)
verts = [v.index for v in ret['verts']]

me = bpy.data.meshes.new("PokedGrid")
bm.to_mesh(me)
ob = bpy.data.objects.new("PokedGrid", me)
vg = ob.vertex_groups.new(name="Poke")
vg.add(verts, 1.0, 'ADD')
context.collection.objects.link(ob)

Edit mode.
Run this test script in edit mode.  Selects all vertices with 8 linked edges.

import bpy
import bmesh

context = bpy.context
me = context.edit_object.data

bm = bmesh.from_edit_mesh(me)
for v in bm.verts:
    v.select = len(v.link_edges) == 8

bmesh.update_edit_mesh(me)

Lastly on distribution, recommend collections.defaultdict
import bpy
import bmesh
from collections import defaultdict

context = bpy.context
me = context.edit_object.data

bm = bmesh.from_edit_mesh(me)

verts = defaultdict(list)

for v in bm.verts:
    verts[len(v.link_edges)].append(v.index)

print("Total Verts", len(bm.verts))
for k, v in verts.items():
    print(k, "linked edges", len(v))

Output.
Total Verts 1741
3 linked edges 4
5 linked edges 112
8 linked edges 784
4 linked edges 841

This answer was especially helpful with pointing towards bmesh.ops - I have not seen these in any of the tutorials I've been watching. I will keep an eye on this.


text:
Select vertex pattern (not checkered)
I want to select a number of evenly spaced vertices from a mesh. I have tried Checker-Deselect (not been able to find settings that would do), and also made a vertex group first (with the highlighted vertices), and then subsurface modified to increase vertices in between. Problem is, the new vertices are also in the vertex group, so I can't select them.
Here is an image for reference of what I would like to achieve:

Are the vertices supposed to be unevenly spaced? For example you have four unselected verts between each vert going on rows, but in columns you have five or three unselected verts between the selected ones.

@Rekov Evenly spaced would be preferred, but if there is a generic solution with more freedom that would be helpful too!

If a known mesh can use the index
If the mesh is created from a grid via the operator or a bmesh we know the order of the vertex indices, and how many rows and columns.
In the example in question it appears to be a 22 x 22 vertex grid.

For a default grid, as viewed from top, the bottom left hand corner is index 0, up to 21 along bottom row, 22 to 43 the next row up and so on.
Hence we can use these indices to select using div and mod.
Test script for 22 x 22 vert grid, selecting every fifth row, every third column, starting from row 2 column 4
import bpy
import bmesh

context = bpy.context
me = context.edit_object.data

bm = bmesh.from_edit_mesh(me)

#example in question has 22 x 22 vert grid
rows = 22
cols = 22

# choose every 5 rows, 3 columns
r = 5
c = 3
# offset (eg make (2, 4) == (0, 0)
ro = 2
co = 4

for v in bm.verts:
    i = v.index
    row, col = i // cols + ro, i % rows + co
    v.select = not row % r and not col % c

bmesh.update_edit_mesh(me)

Note the order can be changed using sort.
For example to sort along x
bm.verts.sort(key=lamda v: v.co.x)

for a default aligned xy grid will order up the columns.


text:
Node Editor is blank and Inactive, also in new instances
I have probably activated some setting in blender 2.8 that has turned nodes inactive and all options in node editor inactive. They worked fine before but not anymore.
'Use Nodes' is active and issue exists even when adding new materials.
Issue also exists when opening new file.
Please help.

What do you mean by "inactive"? Do you mean that you can see nodes in your object materials, but they are all greyed-out and you can't interact with them or that you simply can't add any node and there's no material output node?

Hello :). You can share your .blend file here, so others can take a look.


text:
Object constrained along curve rotates unexpectedly when scrubbing timeline
I want the ball's rotation to not be affected for testing purposes. I have animated the Evaluation Time of the curve. When I scrub the Evaluation Time part (the field I animated), it works as expected. But if I scrub the timeline, it tilts 30 degrees. I have

I tried straightening the handles which required me to change the tilt to 30 degrees since the curve turns 60 degrees, but not exactly sure. Why are scrubbing these 2 things yielding different results and how do I fix this? I don't want it to rotate. I just want it to follow the path because I will manually animate the rotation.

(Blender 3.5)

You have a rotation animation in the NLA, remove it:

ooooh! i totally forgot about it when i appended it from another file! thank you so much!


text:
How can I add another sub category to File > Export with another list of options?
I can add an item My Item using the script at the bottom.

Currently I only know how to add the item to the same flat list in the Export category like in the script at the bottom, but I would like to know how to group them into another sub category Group of Items. Is this even possible? The list is very long and I don't want it to be part of the flat list with the default types. I would like this:

Or maybe I can add it alongside File > Import and File > Export as type File > Export Group 2 group, but how to do that?

Here's the script:
import bpy

class SimpleExportOperator(bpy.types.Operator):
    bl_idname = "export.simple_operator"
    bl_label = "Simple Export Operator"
    bl_options = {'REGISTER', 'UNDO'}

    def execute(self, context):
        self.report({'INFO'}, "Executing Simple Export Operator")
        return {'FINISHED'}

def menu_func_export_my_item(self, context):
    self.layout.operator(SimpleExportOperator.bl_idname, text="My Item")

def register():
    bpy.utils.register_class(SimpleExportOperator)
    bpy.types.TOPBAR_MT_file_export.append(menu_func_export_my_item)

def unregister():
    bpy.utils.unregister_class(SimpleExportOperator)
    bpy.types.TOPBAR_MT_file_export.remove(menu_func_export_my_item)

if __name__ == "__main__":
    register()

here is an example (it is too much so, but i think you can figure it out) - i was too lazy to delete the superfluous stuff
import bpy

class SimpleExportOperator(bpy.types.Operator):
    bl_idname = "export.simple_operator"
    bl_label = "Simple Export Operator"
    bl_options = {'REGISTER', 'UNDO'}

    def execute(self, context):
        self.report({'INFO'}, "Executing Simple Export Operator")
        return {'FINISHED'}

def menu_func_export_my_item(self, context):

    self.layout.operator(SimpleExportOperator.bl_idname, text="My Item2")

    self.layout.menu(SubMenu2.bl_idname, text="submenu")

def register():
    bpy.utils.register_class(SubMenu2)
    bpy.utils.register_class(SimpleExportOperator)
    bpy.types.TOPBAR_MT_file_export.append(menu_func_export_my_item)

def unregister():
    bpy.utils.unregister_class(SimpleExportOperator)
    bpy.types.TOPBAR_MT_file_export.remove(menu_func_export_my_item)

class SubMenu2(bpy.types.Menu):
    bl_idname = "TOPBAR_MT_select_submenu"
    bl_label = "Select"

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

        layout.operator("object.select_all", text="Select/Deselect All").action = 'TOGGLE'
        layout.operator("object.select_all", text="Inverse").action = 'INVERT'
        layout.operator("object.select_random", text="Random")

        # access this operator as a submenu
        layout.operator_menu_enum("object.select_by_type", "type", text="Select All by Type...")

        layout.separator()

        # expand each operator option into this menu
        layout.operator_enum("object.lamp_add", "type")

        layout.separator()

        # use existing memu
        layout.menu("VIEW3D_MT_transform")

if __name__ == "__main__":
    register()

result:

perfect just what i needed thanks alot chris!

you are welcome!


text:
How to move the Marker's center origin point in Movie Clip Editor?
I have a video with blurry lines in them, so I had to manually fine-adjust a lot of the markers per frame. I've already positioned the corners of a set of markers that use the Affine Motion Model and didn't realize that the center point went off target while I was too much focused on positioning the corners. It would be too tedious if I had to redo all of this. Since I can manually adjust the corners of the marker, I was wondering if it was also possible to manually adjust this marker's origin point encircled in yellow:

This is not currently possible with the current Blender versions


text:
Eyes not following parented rig properly
The eyes are parented to the rig with Automatic Weights.
For this instance I want them to just follow the rotation of the body, but the problem is that each eye is also rotating with the "arms" of the rig independently, making a weird animation.

select the eyes in Edit mode, on the right of the Vertex Groups list, click on the dropdown menu and choose Remove from All Groups, then select the group you want to assign the eyes to and click on the Assign button

I believe that the root of your issue is in the weight painting. Using automatic weights as a base is fine. However, this results in some vertecies being bound to unrelated bones, causing the issue. You will need to edit these weights. You can do this either in edit mode using the vertex groups: , or in weight paint mode, you can follow this tutorial if you need help with that : https://youtu.be/Tl4qTgwQwYw
I hope that you find this helpful.

Thanks this helped a lot to me, I just have each eye connected to the head and "torso" with no problems now.

That's awesome. You should  be able to get rid of the body vertex group on the eyes object, but if your happy, then that's great :)


text:
Viscous fluids not working as intended
I have an animation where a character is sinking into a viscous liquid (simulated with Mantaflow), but the liquid isn't acting as I want it to. I want the liquid to deform concavely around the character. This picture here is a good example of what I'm talking about; notice how the tar around her foot makes a concave shape around it as it sinks in.

In my project, the liquid is doing the opposite; its deforming convexly around the character, almost as if the liquid is crawling up it. You can see this clearly in this picture from my project:

Is there any way to get the liquid to deform the way I want?

do you mean something like this? [1]: https://i.sstatic.net/5hbnY.gif

Yeah exactly like that! How did you do that?

Use viscosity and increase it

Could you screenshot your fluid settings? That's what I was doing before and it wasn't really working


text:
Trouble recreating mud texture from image
I'm very new to PBR textures in blender and experimenting with them. I'm trying to recreating the look of the mud closely engulfing the woman in this picture using PBR but I'm having a lot more trouble than I thought... does anyone have any ideas?

Maybe something close to this?

I've mixed the Texture Coordinate with a Musgrave in order to get twisted noise later. There are 2 levels of noise to get some bumps. I've put a Separate XYZ into the Roughness to get something more glossy into the lower parts as if they were more humid. For the color, a mix of 2 greyish blue. Just before the Output, a Glossy mixed with a Layer Weight as factor in order to have additional glossiness on the surface:

Wow thank you! This looks pretty good, I'll try copying it and I'll play close attention to how each node affects the material


text:
Glitch see-through faces
Help. Most of my faces glitches out when i orbit or move around. The floor grid also disappears if i zoom too far. My normal are facing the right way

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

Not sure about the "glitching", please provide a .blend file using Blend-Exchange.
As for stuff disappearing, I think we can see the culprit on your screenshot:

An extreme range here is a common problem, try right-clicking on Clip Start > "Reset to Default Value" then the same for End. Or create a new Layout workspace and discard the old one.
If this answer helps then this is related: Knife Tool is stuck to the origin of the geometry of the object

Well that works. Thank you

Your problem is that your object is so huge and big , and you may didn't model it in true scale .

Hit tab and go to object mode
select your object and Hit "N" and select "Item" tab
In the "transform" field under "Dimensions" change Z dimension to something more real like 2 meters or less
Under scale Click and drag your mouse on Z scale up to change others scales too (Uniform scaling)
apply scale by hitting "ctrl + a"
also you can smaller your object by hitting "S" but it takes more time:)

the object is smaller than a blender default cube so i don't think that's the problem


text:
If one blender crash, would the other get affected?
I'm currently rendering on Blender. which is taking some time.
I wanted to know, can I open up another blender file and work on that? if this 2nd Blender crashes, will it also crash the other Blender which is currently still rendering?

You can and it won't.

Even though it's true that if one Blender crashes the other won't be affected, you also need to take under consideration that sometimes it could happen that the crash could freezes the computer and you need to either kill the app or reboot the whole system

that's a good shout! @emir. Usually it's just blender for me. so if I could kill off 1 blender and keep the other going, that works with me! Just don't want the render to be effected. especially it normally takes days.

I'm not sure if I explained myself correctly, but basically, there is a 50% chance to affect your render if you put too much stress on your cpu because when you kill an app, you are killing the whole app, no matter how many you have open, they will all be closed

If you use up all your memory (RAM, but sometimes using whole disk space can have similar effects) it's quite possible you will have a cascade of crashes of other programs. So one Blender instance can crash Microsoft Office instance just as likely as another Blender instance. Unless there's some shared resource for Blender instances I don't know about.

@Markus von Broady. That's fine. I was more concerned about plugin/unknown crashes which what I sometimes get in other apps.
I now feel much safer to operate in the other Blender without worrying if it would endanger my other Blender rendering. I never usually have the apps crushed via using all ram since I hardly use up all 32GB. but i do often end up 100% for my 3700X CPU for smoke type simulation cache which results in slow operating system. In that in stance, I wouldn't be able to do much anyway apart from surfing. (GPU render wise , 3090 seems fine for rendering + AAA gaming)


text:
Is it possible to add custom bl_info addon attributes that show up in the Preferences popup?
I have an addon that uses a third party binary and I want to include this information for the user to see. I want to add another type of info to the users in the area marked in yellow but when I add this custom included_binary_version attribute in the bl_info object, it doesn't show up.

This is the bl_info block in the __init__.py file but included_binary_version does not show up in the yellow marked area. I know the supported attributes are in the documentation, but I was wondering if there is a way to make additional attributes show up? Or is this not possible? Or some hack I can use?
bl_info = {
    "name": "Addon Name",
    "description": "",
    "author" : "Harry McKenzie",
    "version": (1, 0, 4),
    "blender": (2, 93, 0),
    "included_binary_version": (1, 2, 5),
    "location": "File >",
    "warning": "",
    "doc_url": "",
    "wiki_url": "",
    "tracker_url": "",
    "support": "COMMUNITY",
    "category": "Import-Export",
}

That UI is drawn by this code, which hardcodes the list of properties that appear there, so the straight-forward answer is "no".

oh no.. so what do you think is the best way i can communicate to the user about the version of the binary included in my addon?

Put it in the description?

right! guess i have no choice haha thank you!


text:
Is it possible to get the property name from a data_path?
I can copy the data path of any property in the user interface with Copy Data Path which is rigid_body.friction in the example screenshot. Is there a way how to get the property name using the copied data path?

name = getPropertyNameFromDataPath("rigid_body.friction")
print(name) # needs to output "Friction"

A big thank you to @Karan for directing me into the right path. I was able to come up with a general solution for any data path (Right click RMB any property in the user interface > Copy Data Path) and then use the function:
def get_property_name(data_path) -> str:
    s = data_path
    i = s.find('.')
    data_path_1 = ""
    data_path_2 = s
    if i > 0:
        ri = s.rindex('.')
        data_path_1 = '.' + s[0:ri]
        data_path_2 = s[ri+1:len(s)]
    data = eval("bpy.context.object" + data_path_1)
    return data.rna_type.properties[data_path_2].name if hasattr(data, data_path_2) else ''

Sample Outputs:
print(get_property_name('rotation_euler'))
print(get_property_name('rigid_body.collision_shape'))
print(get_property_name('modifiers["Bevel"].width'))
print(get_property_name('modifiers["Fluid"].flow_settings.surface_distance'))

# outputs:
#
# Eurler Rotation
# Collision Shape
# Width
# Surface Emission

This will only work on the object's properties

@Karan it works perfectly even modifiers. i added some sample outputs, let me know if you find something that doesn't work :)

@Karan you're right it can only cater to objects and its modifiers. i still need to find a way to make it possible for node trees as well. maybe a hard-coded check for node_tree.nodes in node_tree.nodes["Principled BSDF"].inputs[5].default_value

Why do you need such function?

so that i can auto add a driver to every field in the UI https://blender.stackexchange.com/questions/269433/is-there-a-way-to-make-a-driver-driven-by-a-new-property/269438#269438

import bpy

def get_property_name(data, property) -> str:
    ''' Get the name of a property.

    data (AnyType) - Data from which to take property.
    property (str) - Identifier of property in data.
    return (str) - The name of the property.
    '''
    return data.rna_type.properties[property].name if hasattr(data, property) else ''

name = get_property_name(bpy.context.object.rigid_body, 'friction')

print(name)

it works for friction. but is it possible for a generalized function for all data paths? like it should also work for modifiers["Fluid"].flow_settings.surface_distance or any other property that you right click and Copy Data Path

Yes, it will work on all properties. You have to give the data and property in this case C.object.modifiers['Fluid'].flow_settings is the data and surface_distance is the property.

It will not work from the copied data_path from the interface, you have to specify data and property

thanks so much for your code it helped me find a generalized solution! should i post a new answer or do you want me to edit your answer?

i posted the solution :) thank you so much!

It's sad though it only returns "Default Value" as the name for all the node tree fields,  any idea if there is a way to get node tree field names?

Use Full Data Path instead of Data Path
import bpy

def get_property_name_from_data_path(data_path) -> str:
    ''' Get the name of a property.

    data_path (str) - Data path from which to take data and property.
    return (str) - The name of the property.
    '''
    data = eval('.'.join(data_path.split('.')[:-1]))
    property = data_path.split('.')[-1]
    if property == 'default_value':
        return data.name

    return data.rna_type.properties[property].name if hasattr(data, property) else ''

name = get_property_name_from_data_path('bpy.data.materials["Material"].node_tree.nodes["Principled BSDF"].inputs[2].default_value')

print(name)

thank you very much! this will come in handy! :)


text:
How do you add Skin Modifier with radius 0.1 without using bpy.ops?
How do you add a Skin Modifier with radius of $0.1$ without using the context sensitive function bpy.ops.mesh.customdata_skin_add()?
obj.modifiers.new('MySkinModifier', 'SKIN')

# missing code here to add vertices like bpy.ops.mesh.customdata_skin_add()

for v in obj.data.skin_vertices[0].data:
    v.radius = 0.1, 0.1

The short answer appears to be you don't.
The long answer is that bpy.ops.mesh.customdata_skin_add() in meshdata.c at line 881 calls an internal function BKE_mesh_ensure_skin_customdata() in mesh.c at line 647 and that function is not exposed through the Python API.
The longer answer is that your call to obj.modifiers.new() already invokes bpy.ops.mesh.customdata_skin_add() So your question is really how to fill in obj.data.skin_vertices with new data.  Perhaps you can use the code from BKE_mesh_ensure_skin_customdata() as a starting point? It creates a bmesh, adds a custom layer to it and then iterates through the bmesh filling in the layer.


text:
Why does the Subdivision Modifier leave a Gap between Original and Final Shape?
I found this thread but there is no solution. I have a model and can't prevent it from losing its original dimensions. I simplified the problem with a simple mesh. What is the technical reason for the Subdivision Modifier to leave this gap? I think it should be possible to perfectly inscribe the subdivided surface into the original shape as to prevent further shrinkage or maybe this is a bug. Also, is there a way to set an offset as to avoid a shrinking mesh?

That's how it's supposed to work, otherwise it couldn't smooth the geometry out. You can use the Simple mode to keep the shape though: https://blender.stackexchange.com/questions/254487/how-can-i-subdivide-a-shape-and-keep-its-shape/254490#254490 Is this what you want?

"That's how it's supposed to work, otherwise it couldn't smooth the geometry out." > Yes but at least it should inscribe into the original mesh and not leave that gap. Just imagine increasing the scale of the final shape and it will eventually perfectly inscribe into the original shape. As a developer I don't see a reason why that is not possible and I would like to understand why it's not working as expected.

It works for 1 level subdivision if I turn off Use Limit Surface but once I increase the level to 2, it creates the gap again. I would expect it to also adjust the size to still fit into the original mesh so as to prevent shrinkage.

@HarryMcKenzie Yeah that's what I meant, even if you untick Limit Surface it would have to shrink eventually, I thought that was obvious but maybe I'm ignorant about something since all I ever knew was this behaviour in Blender. If I understand right you want it to scale the mesh up sequentially so it always touches the original bounding box? Is that right?

@Kuboå yes so i don't have to manually rescale it again. i know a workaround is to create a mesh with higher resolution but i want to be able to work with as less polygons as possible and then add subdiv modifier as needed but unfortunately it will shrink my mesh which is problematic for accuracy when 3d printing. would be handy if there was an offset option in the subdiv modifier like the solidify modifier.

Here's a solution I came up with for any mesh: https://blender.stackexchange.com/a/309536/60486

If you want to continuously scale your mesh back up after each level of subdivision so it stays close to the original size, you could use a simple Geometry Nodes setup like this:

Perhaps it's just my ignorance of how subdivision works elsewhere, but I'm not convinced the default Blender behaviour is either unexpected or a bug. Continuously scaling the mesh would be a design choice, and while it can yield natural feeling result like in the gif above, it wouldn't always be possible to have an easily retrievable "correct size" for all shapes. Consider these two:

By its nature, subdivision surface would go in and out of the original area depending on the edge angles etc, so I'm not sure how it would be feasible or even desirable to have a complex scaling behaviour that would always produce good results.

The correct (if pedantic) answer is... that's how Catmull-Clark works. In order to not exhibit this effect, you would need to use a different subdivision algorithm. While there are other algorithms out there, Blender unfortunately does not implement any.
Doo-Sabin might do what you want, if it was implemented.
Why does Blender use Catmull-Clark? Well, when you understand its properties, it does have a number of advantages. For one, it's very popular, which means it's more likely to match the output of other tools. It's well understood, geometrically stable, and relatively easy to implement. In most cases, it gives "pretty good" results, especially when you understand how to use it.
A disadvantage, however, is that it's hard to achieve dimensional accuracy.
Frankly, if you need that, Blender may not be the right tool for you. Blender is good at making things where the visual result is the "primary output". If you need dimensional accuracy, it's tools are much more limited compared to a good NURBS package. (Frankly, modern Blender is inferior to 20-year-old CAD software in that respect.) Depending on your budget and feelings toward open source, you could look at FreeCAD (free in both senses), or there are a variety of commercial, proprietary packages out there.
That said, it's worth noting that NURBS has the same problem to an extent, however most NURBS software has algorithms that figure out how to construct the control mesh so that the final surface intersects target points. I suppose in principle one could do the same thing with Catmull-Clark surfaces, however I'm not aware of any tools that actually do so¹. (Also, with NURBS you have knots, the boundaries tend to be more controlled, and use of multiple patches is common.)
(¹ Actually, Blender sort of does this. If you click the 'triangle with vertices' icon next to the modifier name, it will show you the smoothed surface and allow you to change the final vertex positions directly. However, manipulating those can have an undesired effect on your control mesh. In NURBS modeling, it's typical to define target curves and then form a surface from those, which is what I've not seen done with Catmull-Clark surfaces.)

Dual Mesh node makes it easy to implement Doo Sabin subdivision: https://blender.stackexchange.com/q/277019/60486

Disable "Use limit surface" in the subdivision modifier

Yes I tried that, works for level 1 but not level 2.


text:
Blender curve vertices
I am fairly new to 3d modeling and I am trying to make an array of vertices curved. When I searched how to do this, people suggest I use the bevel tool but nothing is happening when I try to use it.

Is there a way I can do this without manually transforming each vertex?
Context: I am trying to make a watermill wheel.

Hi :). This answer covers a very similar case How to create a curved side in a cylinder

Yes, the bevel tool works well when you have a simple object like a cube or cylinder or a mesh but it's not working on a face. At least I can't get it working

Hi Stan :). Since your edge is already subdivided, you can use proportional editing instead.


text:
Blender command line cli : create a new .blend from a normal 3d model like .obj, .fbx..... [[ FROM .OBJ -->> TO .BLEND ]] without a desktop
CONTEXT : I'm building a website where users can upload many files. [WEB SERVER, no gpu]
WHAT I WANT : that an uploaded .obj => render an image preview as a .png
WHY : to manage a library of multiple files so the image is to have a preview, imagine a multimedia library like google photo, but with videos, audios, photos, 3d files (with their thumbnail), ETC.
I CAN : with aasimp : I can easily convert from .obj, .fbx..... to .glb or .gltf [but aasimp have no solution to render an image from a 3d file]
I ALSO CAN : render 1 frame to png (( but only from a .blend ))
SEE HOW I SUCCESSFULLY INSTALLED BLEND + RENDER .blend TO .PNG ON LINUX : https://almalinux.discourse.group/t/how-to-install-blender-3d-withtout-snap-and-without-a-desktop/526
QUESTION : is it possible to invoke from the command line (linux web server without a desktop...) to create a new .blend and import a .obj or .fbx into that new .blend and than I can do my render?
WHY THE QUESTION : the command "--render-frame" accepts only .blend so the only "missing" stuff I need is to convert a .obj or .fbx from the command line (shell or python script) to convert to .blend
when I TRY this
xvfb-run -a --server-args="-screen 0, 1280x720x24" /opt/blender293/blender pathtoOBJ.obj --render-frame 1 -F PNG -b

I get this
Error: File format is not supported in file 'pathtoOBJ.obj'

when I do the same command with a .blend it's working fine see this. This image was generated from a .blend via a linux COMMAND LINE (shell) without GPU, without desktop

FROM OBJ TO .BLEND
I concocted those (working yay)
•••••• SAVE .blend
Command /usr/bin/xvfb-run -a --server-args="-screen 0, 1280x720x24" /opt/blender293/blender --python /path/objtoblend.py -- /path/sample3.obj /path/95.blend -b
import bpy
import sys
argv = sys.argv

bpy.ops.import_scene.obj(filepath=argv[4])
obj_object = bpy.context.object

bpy.ops.wm.save_as_mainfile(filepath=argv[5])

bpy.ops.wm.quit_blender()

•••••• RENDER .obj only
command /usr/bin/xvfb-run -a --server-args="-screen 0, 1280x720x24" /opt/blender293/blender --python /path/blendobjrenderone.py -- /path/sample3.obj /pathto/render.png -b
import bpy
import sys
argv = sys.argv

bpy.ops.import_scene.obj(filepath=argv[4])
obj_object = bpy.context.object

bpy.context.scene.render.filepath=argv[5]
bpy.context.scene.render.image_settings.file_format='PNG'
bpy.ops.render.render(use_viewport = True, write_still=True)

bpy.ops.wm.quit_blender()

One way would be to write a Python script that reads the Blender command line to find the obj file and then invokes the obj importer, and then creates the render.
You would invoke the script with a command like
blender  [other blender args]  --python YourScript ObjFileName
See the answer to this question for info on how to parse the command line from python.
The command to import a obj file is
bpy.ops.import_scene.obj(filepath="", filter_glo...bal_clamp_size=0, axis_forward='-Z', axis_up='Y')
so you might want your script to parse options to set the forward and up axis.
You will then have to set up the scene by adding lighting and a camera. That will look something like:
light_data = bpy.data.lights.new('light', type='POINT')
light = bpy.data.objects.new('light', light_data)
bpy.context.collections.objects.link(light)

cam_data = bpy.data.cameras.new('camera')
cam = bpy.data.objects.new('camera', cam_data)
bpy.context.collection.objects.link(cam)
scene = bpy.context.scene
scene.camera=cam

Finally you'll have to set up your render and save it with code along these lines
scene = bpy.context.scene
scene.render.image_settings.file_format='PNG'
scene.render.filepath='/tmp/blender.png'
bpy.ops.render.render(write_still=1)

I've left out a lot of detail, like camera and light placement, as well as setting the resolution and there are other things like render.filepath that you might want to take from the command line.  I completely skipped adding materials to your object, by the way.
But it'll point you in the right direction.

Thanks for this good starting point, I'll do some testing and get back with the result.

Hi, I concocted 2 python. 1 to save (.obj to .blend) and an other from your post (.obj to .png) see my answer


text:
Scale material rather than UV
I'm using Blender to render furniture in a room. Each board of the furniture is its own object. When applying material for each board I have to scale UV to match the desired result. I need to scale UV of each board so the texture has the same scale on each board.
Is it possible to somehow remember the scale so I don't have to do it manually? In layman's term: I want to scale the texture not the UV.
However I would like to avoid unwrapping multiple objects at once because:

it's messy
when I add new object afterwards I have to repeat the process.

Thank you.

Usually, to preserve the scale over many different sized objects, you can use the Object output in the Texture Cooordinate node and specify an object which should be used. However this doesn't work with UVs... The only way I see how this could work is join all objects into one, and on unwrapping (depending on the method) check "Correct Aspect" to have all islands have the appropriate size compared to each other - but that's something you want to avoid.

Hi :). You need uniform texel density. There are addons which can set specific density for UVs without repeated unwrapping. Practically indispensable in any archviz project :))

There is a builtin addon called MagicUV that gives you a World Scale UV option.

the settings are remembered between uses so you can apply it again without worrying about them
This will scale your UVs to match the correct texture density.
Unfortunately scaling the texture in material individually is complicated. The simplest implementation of this would be

ajust the scale of each object using Properties:Workspacce:only origins
multiply the object scale with the UV scale for the texture coordinate in the material

so you could quickly manually ajust the texture scaling without messing with UVs

Hi :). Would you mind adding a bit of explanation about what this does? Thanks.

This scales your UV islands in a similar way to 'average island scale', but based on some constant value you can choose. The pivot point will use median.


text:
Reflection in mirror - ingore boolean operator
I'm working on a interior design of a room. To position a camera I have removed one wall of the room using boolean operator. I want a mirror I have in a room to ignore this and reflect the wall not HDRI texture which I used.

As you can see in a mirror (on the right of the window) there is a HDRI in a reflection however the room is closed, there should be only wall.
Sub-question: If above is possible to achieve. On the hidden wall there is also some furniture as you can see on the render from different angle.

Those objects are hidden but is it possible to display them in reflection?
Thank you.

if you're using Cycles, you can select your wall object, go into the Object panel > Visibility, disable Camera?

Just make the wall a separate object and unclick the camera option under the visibility section. The object will became invisible for camera but stays in render.

Here I have a box with mirror and a light inside and camera in font of the wall. As soon as you uncheck the camera in visibility the wall is gone but stays in the mirror reflection. Using cycles render.


text:
How do I make ambient light in building with sky?
I'm creating an abandoned factory/warehouse building, and I've run into a lighting problem.  I've searched a lot on Blender SE for a solution, but none of the questions I found helped. This question is very similar to mine, but the answer is not helpful at all for me, as in my case I have a very bright, direct light shining directly into the building.
For my world's sky, I'm using Background surface with an Environment Texture using an image. Here is the node setup for my world:

A lower-quality version of DSCF6016.JPG (the sky).
Here's a screenshot using Scene World, where the sky looks perfect, but there is absolutely no light inside the building, except where the sun hits the floor:

Turning up the strength for the scene world doesn't really do anything until the strength is extreme (>400), and even then it just turns the floor blue, and does nothing to the walls.
When I uncheck Scene World in the Shading dropdown, and adjust the settings, the interior lighting looks pretty good, but the sky is dull:

If I turn up the strength (where the cursor is), the sky looks better, but then the interior is too bright!
When I switch from using my image to using a sky texture, the building still isn't light.
Since the building is abandoned, there can't be any artificial light in there. Is there a simple way to get the sky like the first image, and the interior like the second one? I'm still getting used to Blender's fine points, so there may have been something obvious I missed, but I've been trying to solve this problem for hours, and I can't seem to get it right. I'm using Blender 3.0.1 on an Ubuntu 20.04. I can provide more screenshots/information if you need.

"Scene lights" and "scene world" toggle between your lighting (the lighting you have set up in the scene including lights and HDRI's), and the lighting and HDRI that is built in to blender's Material Preview scene preset. I would advise you to leave both boxes checked (while in rendered preview mode), so as not to confuse your lighting setup with built in lighting presets. Also, are you using Cycles or EEVEE?

As @ChristopherBennett already asked, are you using Cycles or Eevee? For to light up the interior walls you need light bouncing off the floor, but there is no bounce light in Eevee. The other thing is, you're using a JPEG for the sky which has a very low dynamic range and therefore not much brightness. To properly light the scene you need an HDRI for the background.

By the way, if you would take pictures with a real camera inside a dark warehouse (or almost every time you take pictures inside a room only lit by windows), the exposure is usually so high that when the walls are bright enough, the sky would be blown out overly bright and not look as the sky when you would take a picture outside.

@ChristopherBennett I'm using Evee.

EEVEE doesn't do "bounced lighting" by default like cycles does - this is why light coming through the roof cracks doesn't light up the (indirectly lit parts of the) room. To do this in EEVEE, you need to use an Irradiance Volume. See an answer I posted recently about it here - https://blender.stackexchange.com/a/264928/75504

@ChristopherBennett Yes, that answer worked perfectly! Thank you much! (turns out I've already upvoted it :D) Should this question be closed as a duplicate of that one?

Since the first part of your question is answered by a (somewhat) duplicate question (just using very different words), I will attempt to answer the second part of your Q (although putting two questions in one is technically discouraged here) so as to make it a valid question in it's own right (which is also likely a dupe, I just can't find a link at the moment).
If you want to separate the background (HDRI) image from it's lighting influence, you can use a node setup similar to what is pictured below in the World shader. I used black as an easy example, but you can just as easily use different colors, or even a second HDRI. The reverse works as well - if you want the light from the HDRI, but want to replace the image with something else, just reverse the order of the Mix Shader inputs:


text:
My Blender Model splits in half when imported to spark ar

Hellooo!Im new to blender and trying to make a filter.... (earrings) every time I import my Evee object to Spark ar it splits in half. I reduced the verticals already and don't know what the problem could be... help would be so appreciated.. All the best, Lara

do you have any modifiers that perhaps need to be applied? It's hard to figure out without seeing the panels or the actual mesh in Blender

Thank you! I think the problem is, that I build the model with the mirror modifier? I still haven't solved it tough...

If you used any modifiers in your model you might need to apply it before importing into another application.
As stated in this answer, in Object Mode use Ctrl+A or go to the Modifiers panel, click on the top triangle and select Apply.


text:
World node output to compositing?
I have an image as "World Environmental Equirectangular map".
I also have object meshes in separated Render layers.
How can I have the "World Environmental Equirectangular map" into the compositor so I can apply filter nodes to it, without affecting the other render layers?
(see attached image for better understanding)

TL;DNR: You need to render a View Layer consisting of just the background.
Here's one way I know how to do this is

Create your main scene with all of its collections but put the camera in a separate collection from everything else.   Here's a simple scene with a Suzanne:

Optional: Give your main scene a name.  I called this main.

Create a new View Layer by clicking on the new icon in the scene header:

Give it a name.  I called mine "world only"

Enable the 'only contributes indirectly' column: (t's the last one here.)

In the "world only" view layer click the indirectly box on all collections except the one with the camera:

Render the scene.

Now you can add a Render Layers node in the compositor and set it to select the "world only layer.  Here's an example where I add a blur just to the background:

You may also want to add masks and other details to accomplish the effects you want.

Thank you very much for the suggestion.
It did the trick.
Your suggestion is a real nice solution but I wouldn't mind if the developers could add this "World node output" option by default to the Render Layers node.
Again.. much appreciated.


text:
Mesh disappearing/moving during playback
I rendered the animation, but the human body stays in the same place, this is only happening during object mode. How is it disappearing? Why did the eyes move down when there's no keyframes? I only have keyframes for the blue ball. I've also checked the dope sheet.
I don't know how else to fix this, please help! Thank you!

Could you please show the shaders for the different objects?

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

@BentleyCarpenter is this what you're looking for? (model on left, ball on right) https://imgur.com/a/9YaU4Hj


text:
Surface particles are engulfed when a noise texture, vector displacement is applied. How to fix?

As you can see, i am making a donut with sprinkles but after i applied a vector displacement using noise texture to the icing, the sprinkles are engulfed. Is there any way to fix this by moving the sprinkles to the surface of the icing after the displacement or any other way? Am quite new to blender so sorry if this is a dumb question or if I've got anything wrong.
Thanks in advance.

are you using a Displace modifier, or displacement in the shader.  If you're using a modifier make sure it is before the Particle system in the displacement stack.

I think there is an addon to solve this (I don't know the name), but to avoid this issue with material nodes you would have to bake the displacement to an image texture and use that image in a Displacement modifier.  Then do as Marty Fouts has advised.

This might be a dumb question but where can i find the displacement stack?

That's a typo. Marty Fouts means the modifier stack. The modifiers are used in top-down order. A Displacement modifier must go first, then a Particle System modifier should follow. This order allows the particles to use the modified mesh. Else they use the unmodified mesh which gets moved around after the particles have been placed.

I have done this but i still get the same issue, although it does say something about having the same subdivision surface on the render and viewport which I don't have. Do you think this could be it?

Yes, it could be. The Subdivision Surface levels should be equal else the result can look different in the viewport and in the final render. For better performance, you can lower the levels for the viewport. But keep in mind it can mess up particles. Is the screenshot above the final render (F12)?


text:
Restart Blender each time a Python script is run
I am very new to Blender. I am an advanced Python user. I want to do with Blender something similar as with OpenSCAD, in case somebody here knows it. So basically I want to use Blender fully from Python scripts, the graphical interface only for visualizing the results. This means that each time I run my main.py I want Blender to be restarted and execute that script from scratch, without any memory from previous runs. Is this possible?
Of course one way to achieve this is to open a new project each time I run the script, reload the script and run it. But this is completely unpractical.
Up to now I have only found this which adds two lines
bpy.ops.object.select_all(action="SELECT")
bpy.ops.object.delete(use_global=False)

to select all objects and delete them. But there are many other things like materials, world settings, etc. etc. that would be nice to restart so I can be sure the script is doing all that I want.

You can open a new Blender and run your script with blender -P script.py. Is that what you want?

Have you tried invoking bpy.ops.wm.read_factory_settings() from your script?  That's pretty draconian, so maybe bpy.ops.wm.read_homefile(app_template="") which restarts from your startup file.

@scurest thanks, that is very close to what I am looking for. Please promote your comment to answer so I can accept it.

Related https://blender.stackexchange.com/questions/219235/read-factory-settings-makes-all-other-operators-call-fail-in-a-python-script-ran


text:
How to tell a vertex to have its normal perpendicular to the tangent of its edge?
I have this mesh containing only edges and vertices with checker-selected vertices and wanted to scale them out in a way that is perpendicular to the tangent line intersecting each vertex. I learned that the vertex Normal is by Blender definition pointing away from the Origin. How do I accomplish this or is there a way to set the vertex Normals to be perpendicular to the tangent? I tried all the Transform Pivot Point options to no avail.

Have we all been checking out @moonboots ' answer here ? I had a play, and came to the conclusion his method was better :)

haha yes! i wanted to scale inwards and then do a subdivision surface. i think that would have worked! unfortunately i ran into this normals problem and thought hmm this is interesting to know, looks like GN or custom normal splits is the way i guess +1 btw thanks for the answer il have to check!

You're right. The normal to a faceless mesh-vertex is its normalized position, in object-space. A curve has more information in its control-points.. so you could use the normal of the mesh-converted-to-curve, and convert back again, via Geometry Nodes. GN can make the selection for you, too:

I'll add to this: you can't modify normal, but you can modify custom normal ("Custom Split Normals Data"). Though custom split normals are face corners, right? So not in this case. Also how about just temporarily adding a face?

@MarkusvonBroady Ahh !  That sounds like an answer in its own right !  How would you set the custom normals appropriately, and then use them?

I wouldn't, I was about to also suggest GN :D https://i.imgur.com/Q3QJN6K.gif However it looks like custom split normals have some potential here: https://i.imgur.com/Ddl06gV.png

@MarkusvonBroady agreed! But I don't know how to get at them.


text:
Why does bpy.ops.render.render(animation=True) work but fails when animation is set to False?
I've set my timeline's Start and End frame to $1$. For some reason bpy.ops.render.render(animation=True) works but not when animation=False. Why does it not work? No errors. When I press Run Script it seems to be rendering but there is no output image generated.
def render(image_name):
    scene.frame_current = 1
    scene.frame_set(1)
    scene.render.filepath = f'/path/to/file/{image_name}.png'
    scene.render.image_settings.file_format = 'PNG'
    bpy.ops.render.render(animation=True)

render("myimage")

You need to specify write_still=True.
When the animation argument is set to False, it tells Blender to render a single frame instead of an animation. The write_still=True argument is necessary in this case, as it tells Blender to write the rendered frame to disk. Without this argument, Blender will not save the rendered image. When you set animation=True, the write_still argument is not needed because Blender will save each frame of the animation to disk automatically.
It is also worth noting that you can also use bpy.context.scene.frame_set(frame_num) to set the frame you want to render, before calling bpy.ops.render.render(animation=False, write_still=True)
def render(image_name):
    scene.frame_current = 1
    scene.frame_set(1)
    scene.render.filepath = f'/path/to/file/{image_name}.png'
    scene.render.image_settings.file_format = 'PNG'
    bpy.ops.render.render(animation=False, write_still=True)

render("myimage")


text:
What is the proper way to delete all keyframes for entire timeline including MeshVertex?
I found this thread but it didn't help. The only source i found that clears "all" animation data is
for o in bpy.context.scene.objects:
    o.animation_data_clear()

But this does not remove animation data or keyframes for MeshVertex data

I have a lot of keyframes added throughout the timeline using
for v in o.data.vertices:
    v.keyframe_insert(data_path="co", frame=1)

I think it's wrong and weird if you have to manually loop through all the frames to delete those frames like this, which also causes an error if the other frames have no keyframes.
for o in bpy.context.scene.objects:
    o.animation_data_clear()
    for v in o.data.vertices:
        for f in range(bpy.context.scene.frame_end):
            v.keyframe_delete(data_path="co", frame=f)

Is there no single function that will just clear ALL keyframes at once? Is manual looping the only way?

Since vertices fcurve are not stored in objects, you can access it from bpy.data.actions
import bpy

actions = bpy.data.actions
for a in actions:
    actions.remove(a)

nice this works! thank you so much!


text:
How can I make a specific part of my model follow certain curve without affecting the rest of it?
I have this model and I want the part on the back to be curved, it doesn't have to exactly follow the selected curve that's just the general idea. If I use a curve modifier all the model gets affected and the lattice modifier don't seem to be good to deform with curves. I also would prefer to don't use those modifiers because they turn my model upside down and I can't model it with precision if that happens (moving the axis, rotation and origins don't solve this).

Try playing around with proportional editing (Shortcut key - O). You can also turn it on from the little icon that looks like a target in the top center of your viewport. There is also a dropdown menu next to it with more edit options. When you go to move a vertex (with proportional edit enabled), scroll your mousewheel to change the size of the "circle of influence". Try with different edit options (ex, smooth, sharp, inverse square, etc...) You will need more horizontal loop cuts on the extruded part of the helmet as well, because those long rectangles will never bend the way you want.

That's what I needed, thank you.


text:
Is there a way to block certain vertices in a curve / path from being modified
I have a curve that I'm editing but I only want to modify the bottom half of it, and the other half to remain without changes. But if I subdivide the bottom the top half changes, if I move a vertex too much on the bottom part the top also changes.
Hiding the vertices I don't want to modify don't works. I'm working with a curve using a circle as a bevel to create a tube.

I guess we need more information in which way "the top half changes". What @Chris suggested may have an influence on moving the vertices, but not subdividing the curve. If you say the top changes when you subdivide the bottom, you mean it gets subdivided too? Or does it change its shape? Screenshots would be helpful to explain what problems you have. Or why does hiding the top vertices not help? Usually hiding curve vertices still shows the curve, but keeps the vertices from being modified. Do you have any other modifiers on that curve?

Before subdividing the bottom: https://imgur.com/a/ZcG7Q8v
After subdividing the bottom: https://imgur.com/a/vjQiHV2
The 2 curves are the same object just rotated. Notice how the top curvature changes if I subdivide the 2 vertices on the bottom

Oh, the curvature of the geometry changes... not the curve itself. The vertices and connections inbetween defining the curve all stay the same. Of course the curvature changes - it's a Nurbs curve or something similar if I see it correctly. The curvature is dependent on the underlying segments and just like, for example, the Subdivision Surface modifier changes shape when you add geometry like loop cuts etc., on your curve more segments result in a differently shaped geometry.

You see, the added vertices on the long vertical path force the geometry to go up straight higher, but since the top curve stays the same, the geometry has to bend more to reach the end point while before adding vertices it was "allowed" to bend less sharp.

Hello and welcome. Instead of having users go through links and external sites please use the builtin tools to embed images in your post. See How to upload an image to a post? or GIFs Don't add them in the comments where they are easy to miss, [edit] them into your original post.