text:
What's the fastest and / or craziest way to model an arrow in Blender?
I'm curious about all the ways you can come up with a solution. I'm searching for the way with the least clicks and maybe the two runner ups. I made up some rules on how to count them:

A default installation should be used.
Changes in the UI don't count, so you can zoom or pan without adding steps. Changing the pivot point or similar actions count.
Every press of a mouse button or key counts.
Combos like ctrlLMB or shiftD count as one.
The arrow has to be symmetrical. Proportions don't matter, right angles do. The backside of the arrowhead has to be parallel.
to broaden the field a bit: extra verts are OK as long as they don't distort the shape.
Addons belong in the realm of the second question.
In case two answers have the same score, the one posted first gets the checkbox.

The second and more creative question: what's the craziest, least practical and goldbergish way to do it? Feel free to contribute. Any fun solution in between the extremes is probably interesting, too.
So, who manages the least clicks and how?

Especially since time is money in the professional world.

Perhaps we could have a new tag to indicate this kind of thing. Perhaps ‘Challenge’ or something similar. I don’t know what conventions (if any) are in place for other SE sites. Maybe a question for meta.

Nice idea, although for try utility it would be nice to have the ends map to a curve object for continuous editing. Perhaps made as an array with a head object?

The extra curve objects addon that is part of a standard blender install , includes an arrow.

What actually made this question have 8k views when other questions have a 100 in the same time?

Does anyone have a suggestion for how to make a parametrically adjustable arrow?  So I can animate the length of the tail or the arrow head size & shape for example?  Would have thought Geometry Nodes would be a great solution, but I don't think anyone has made one?

Hooks and constraints or an Armature would do the trick.

So I thought to myself: These answers are so amazing, but they're hard. Even I have trouble recreating them. I have to do something. I need to provide a simple and effortless answer and after a while, I found it.
Step 1: Create a seven sided Cylinder.

Step 2: Build this ordinary and straightforward armature (shouldn't take long) and connect it to the circle.

Step 3: Push the Bone that has the shape of a modeled arrow (khm) up a bit.

I mean, it doesn't get much easier than pushing a bone up a bit.
To explain:
The orange and red ones are simple 2 bone IK-chains pointing to the mover arrow.
The green ones are parented to the orange ones and move with them. They are not necessary but it's a bit clearer that way. You could parent dark blue directly to orange with offset.
Dark blue is parented to green.
The blue ones are again simple 2 bone IK chains pointing to the light blue targets.
The yellow circle bones sit in the middle of the dark blue bones and are the only ones having deform enabled.
The tricky bit is to find the right lengths for red and orange so that a single bone moves all the green bones just the right amount.
James Watt has discovered this green/dark blue/light blue lever for his steam engines. It's called Watt's linkage. It enables the yellow circles to move pretty much in a straight line. It's still used in trains to keep the wheels from moving back and forth.
The orientation and length of the blue bones isn't just random. I simply put the tips on the arrow verts and the roots on the circle verts. Then I duplicated and rotated them 90 degrees to get the linkage with it's required right angles. Yes, simple rotation of a bone with start and end on a circle would have been enough, but meh...

Argh why didn't I think of this, its so simple!

Once you see it, you can't unsee it. But you can beat it.

you are a god amongst men

I fail to see the simplicity in creating such an armature, however the usage is ridiculously simple. Am I missing something?

"Am I missing something?"
@SylvesterKruin Just all the humor, just the humor.

I'll take your word for it ;-). Actually, my comment could be part of it.

@SylvesterKruin I'm old, my ears are bent, my legs are blind and my eyes are deaf. I miss a lot of things. But it's true. One day I have to make an even simpler version.

Unicode font
Copy the solid right arrow    from unicode arrows
Add a font, edit mode, select text, select font, paste arrow, extrude.

I thought about something similar, but really it seemed too crazy :DDD

@ m.ardito With this question, there is no such thing as 'too crazy'. I eagerly await the first truly convoluted solutions.

Note: make sure the font has a license you can use for personal/commercial use

@lat good thing to check. The font linked by the page linked by the answer is open source, so that seems to be satisfied.

Fewest clicks? Bah. Here's how you do it without even editing the default cube, the only solution for the truly lazy:

Conforms to Default Cubism rules.

I learned a useful alternative use for the Screw modifier from this, and I think it fixes an issue I had with the solidify modifier (and how it doesn't work well with single edges).  Thanks!

Here's a fairly crazy method.... create it mathematically using the Add Mesh: Extra Objects addon.

Enable the addon (Extra Objects)
Add a Mesh/Maths Function/Z Surface
Enter the equation as

(((x*x)**0.5)<0.25-(y-0.5))*(y>0)+(y<0)*(x<0.5)*(x>-0.5)

Optionally increase the step sizes for better resolution
This should produce something like this :

To explain the equation a little, it consists of two sections - one for the 'head' of the arrow (where y>0) and the other for the 'stem' of the arrow (where y<0) - and these conditionals are multiplied together to act as logical 'and' operations. For the stem, the equation
(x<0.5)*(x>-0.5)

gives a high point whenever X is greater than -0.5 and also less than 0.5. For the head, we calculate the distance of the X coordinate from the axis
((x*x)**0.5)

(ie, sqrt(x ^ 2) - which is effectively the same as an 'abs(...)' function) and combine this with the Y coordinate to create the diagonal.
If you really wanted to you could use a Boolean modifier with a cube to chop off the excess around the base of the arrow where Z=0.

Taking this further, here's a 3d version using the XYZ Function Surface in place of the Z Surface :

The key here is the equation :
(v>-2)*(v<0)*0.5+(v>=0)*(1-v)

which creates the profile of the arrow from the 'v' coordinate. This is then multiplied by cos(u) and sin(u) for the X and Z coordinates to rotate the profile around the Y axis. Y is generated directly from v to give the arrow length. Note that U ranges from 0 to 2*pi for a full rotation and V ranges from -2 (the back of the arrow) to 1.0 (the tip of the arrow) matching the constants in the equation (-2 = the back of the arrow, 0.5 the thickness of the 'tail', 1 the tip of the arrow, with the back of the head at zero. The 'v>-2' closes the back of the arrow by collapsing down to 0 for v = -2.

One (final) edit - using a helper function to simplify the repeated equation and adjusting to produce a more traditional 'extruded'-shaped arrow, but using a step size of 4, adjusting the start/end values, and adding a conditional to the X Equation (note the specific settings in the left-hand panel).

Might save that one as a preset.  IMO definitely the craziest so far. Do you find  code markup doesn't work after a numbered list? Had that hassle yesterday.

Thanks! Yeah - having no end of trouble with the markup there. It's still not quite right but it will have to do.

https://meta.stackexchange.com/a/99637/305735

@batFINGER Thanks - that's a good one to know. Thanks for the edit.

Apart from the most efficient version, stuff like that is exactly what I was looking forward to. Cool!

Also note you can use the ternary operator   sin(u) if u < 3 else cos(u)  in your expressions.

You can do this in 8 steps, or 7 steps if the arrow tip may be squished. 11 or 9 if drag counts as two atomic operations.

tab - switch to edit mode
Select mode: edge select
altctrlright click - select all edges oriented along the X axis
ctrlI - invert selection
subdivide from the tool shelf
ctrl drag edge from (0, 1, 1) to (0, 0, 2)
ctrl drag edge from (0, 1, -1) to (0, 0, -2)

Last step is only needed if the tip has to have a right angle

ctrl drag edge from (0, 1, 0) to (0, 2, 0)

Cylinder "triangular prism" approach.
Add a cylinder with 3 vertices

Edit mode, face select,  select y axis normal face, loop cut 2, drops us back into edge select mode with new edges selected.
shortcut for Loop cut slideCtrlR2EnterEnter

go back to face select mode, select middle face and extrude in y direction.
EY drag.

Another way:
start with a standard cube

scale on x

make a loop cut at x center

select top/bottom front edges

and scale on Z 0 (to merge them)

then select center loop top/bottom edges and use "rip fill"

then scale on Z

here is an even faster way to do the same thing: lasso select, extrude, scale to zero, rip fill.

Rip Fill, another one of all the science fiction I have missed catching. Thanks

Adding a separate answer as it is a completely different/crazy way: knife tool (with ZC modifers) comes to rescue, here:

Steps:

add a simple plane
enter edit mode
press K to enter knife tool, then press ZC to activate "cut through" and "cut staight" knife mode
start cutting the diagonal, then cut three more lines to shape the arrow 'base'
press enter to finalize the cut
now press C and select 4 edges to be deleted
delete the edges pressing X
select all and extrude on Z

and an even different one, where simpler tools are used

Steps:

add a simple plane
in edit mode, select all and duplicate with shiftD
X1 to shift the duplicated face to 1BU right
press R45 to rotate it 45°
now select the undesired vertex and press X then select "dissolve vertices" (now you have a quad face next to a tri face)
now select all and extrude on Z

as for the crazyest, you could cut the shape from a cube with booleans, or draw an arrow shape with GP tools, then convert to mesh and extrude...

Sigh, So many tools I never use and the gif makes it look so easy lol.

my poor 64kbit internet and the gifs of bandwidth death have a strained relationship ( :

@Haunt_House I've added detailed steps, to make it more clear. If not enough I'll add step-by-step images, it'll just take longer - sorry for you 64kbit net :((

Install curve galore addon
Shift+A Add curve -> Curve profile -> Arrow

Press F6 for detail
Press Alt+C convert to mesh
Press Del Limited Dissolve
Select all the faces Press E to extude

Pretty sure this is the shortest method here yet. Thanks to batFINGER it is down to only five three steps!

copy the code below
(in blender) press ShiftF4
paste in the code

Perfect arrow with nice clean topology (no double vertices or edges), and its easier and faster then any other method.
verts = [(-0.305, -0.305, -0.183),
 (-0.305, -0.305,  0.183),
 (-0.305,  0.305, -0.183),
 (-0.305,  0.305,  0.183),
 ( 0.305, -0.305, -0.183),
 ( 0.305, -0.305,  0.183),
 ( 0.305,  0.305, -0.183),
 ( 0.305,  0.305,  0.183),
 (-0.496,  0.305, -0.183),
 (-0.496,  0.305,  0.183),
 ( 0.496,  0.305, -0.183),
 ( 0.496,  0.305,  0.183),
 ( 0,     0.861, -0.183),
 ( 0,     0.861,  0.183)]

faces = [[1, 3, 2, 0],
[7, 5, 4, 6],
[5, 1, 0, 4],
[2, 8, 12, 10, 6, 4, 0],
[7, 6, 10, 11],
[3, 9, 8, 2],
[11, 10, 12, 13],
[9, 13, 12, 8],
[7, 11, 13, 9, 3, 1, 5]]

mesh_data = bpy.data.meshes.new("Arrow")
mesh_data.from_pydata(verts, [], faces)
mesh_data.update()

obj = bpy.data.objects.new("Arrow", mesh_data)

scene = bpy.context.scene
scene.objects.link(obj)
for ob in bpy.context.selected_objects:
    ob.select = False

obj.select = True
bpy.context.scene.objects.active = obj
#end script

Yes the ending comment does something. (It saves a press of Enter)

Or shift F3 paste into console. Removes steps 3 and step 5

@batFINGER I tried that but could not get the multi line to work.

Does each character of the script count as a keypress/step? We need @Haunt_House to check the rulebook ;-)

Yeah, the point about addons actually was meant to incluse any scripts. In the end, the contest isn't half as interesting as the wealth of approaches that arrives here. And it's much cleaner mesh creation than what I usually hack together. I like it.

There aren't any answer with curves yet (besides the Curve Galore add-on), so let's do it with curves!

Add a Bezier Curve (Shift + A)
Go in to Edit Mode (Tab)
Straighten the curve (S + Y + 0 + Enter)
Set Pivot Point to Individual Origins (. with Pie Menus)
Collapse handles to points (S + 0 + Enter )
Select 1 point (Box select with B)
Extrude (E + Enter)
In the N panel, set the Radius to 4
Extrude again, this time moving the point further along the x-axis
Set the Radius for the new point to 4.
In the Curve panel of the Properties editor, set the Fill to Full
Set the Bevel Depth to 0.2
Set the Radius Interpolation to Ease

You can optionally increase the Resolution for a smoother arrow.
Gif:

Let's go simpler. Nowhere in the question's rules does it state that the arrow must be a single object. That is an assumption, and doing away with that assumption will allow us to refine our approach.
With that in consideration, here is what I believe to be the solution with the fewest steps:

Of course, you can add complexity if you wish. You can Join the two objects into a single mesh, or Boolean them together. But those steps are not required to satisfy the problem. :-)

Clever. I do mean a single mesh, but since it's indistinguishible...

and because you are setting all the parameters in the add cylinder operator, you could (maybe) count this as one step. Nice one. I'd count this as 4 steps.

Here's a method modelling from a plane and adding a solidify modifier. Technically I think this is 13 steps - although you might rule some of them as combined (eg, Merge/At Centre - does that count as 2 or only 1?) :

Create plane (Add/Mesh/Plane)
Edit mode (Tab)
Click Subdivide in tool shelf
Increase subdivision to 2
Select none (A)
Choose 'Edge' mode
Select two opposite corner edges (for arrow stem) - using Ctrl-Drag to lasso select
Delete Vertices
Shift+Alt-Right-Click to select the 'front' edge
Merge (Alt+M)
At Centre
Object Mode
Add Modifier/Solidify

Technically that's it, although the thickness might not be immediately apparent. Increase the Thickness of the Solidify modifier as desired.

Adding another weird one, since I read that proportion does not matter much, just different from any else above

ie:

having vertex snap activated,
add a 7-circle (preset as default),
edit mode, then fill its face with F
then grab 2 vertices
X-scale to align with base ones
Y-translate to align with top arrow ends
select all, Z-extrude

another one

either start from a basic plane, and subdivide 3 times, or from a grid with 5/5 subdivisions (faster if a default preset)
select 6 top left/right vertices with a single C drag gesture
press X and dissolve vertices
select 4 bottom left/right vertices
press X and delete vertices

forgive me adding third (fourth and fifth method) answer, yesterday I just got fired after 17 years... I need some kind of fun... and thinking something else...

OK, few things. I had the first solution (7point circle) already on my screen and it's a good one since it's so minimalistic (only selection and scaling is needed) and yes, it meets all criteria. If it helps you clear your head, just create more. Ideally in separate answers, maybe. If you are interested in getting pointers to what is necessary to build your own busines as risk free as possible, I can give you some pointers that do not seem to be common knowledge although they're obvious. I'll help if I can.

Results first:

It's an arrow! No, it's not perfect, yes it's transparent, no I don't care.
There's some caveats:

It's not actually a mesh, only a displacement map. This means it'll
only be visible in (viewport) render and doesn't even work in Eevee.
Since it's a heightmap, it also doesn't have a bottom plane.
Edges aren't vertical; the straighter these are, the more artifacting
you get.

Shader node setup:

A quick summary:
Multiple shapes generated from vectors are intersected using Math Minimum/Maximum nodes; these eventually form a triangle part and a stem part. The stem part is subtracted from the triangle part which results in a (flat) arrow. This is then passed through a displacement node that gives the arrow its height. I'm using adaptive subdivision (experimental setting) to get a nicely smooth arrow.
Do note that my Mapping nodes are using the Texture vector type; the difference is that these create smooth white/black transitions. Initially I was using Point vectors; the instant value transition caused a lot of artifacting.
The group nodes simply contain a Mapping node and Separate XYZ node, which then outputs X and Y values.

The first part of the shape I'm building is the base of the stem, so the arrow is positioned in the center of the plane and doesn't stick to the edge.
For the sake of visibility I've bypassed the clamp node on the right; this just reduces the value range to flatten surfaces.

The next two node groups create a square in the bottom corners of the plane. Top one handles the left square, bottom one handles the right square. In the Maximum node that follows these are combined; this yields a plane with white squares in both bottom corners.

Both shape parts are now added together to create a mask for the stem.
Afterwards, these are inverted so they can be subtracted from the triangle part.

Speaking of which, the triangle part consists of two angled vector inputs (note the rotation on the Z axis in the node group), one as shown and the other flipped along the Y axis (or, actually rotated 90 degrees and size inverted! in hindsight this could've been done in a better way)
These two triangles are then merged into a single triangle arrow part.

We've now got the required masks to form an arrow shape:

The Minimum node intersects these images:

Finally, there's a bunch of nodes that invert the mask we just made and change the shader of it to either diffuse white or transparent based on the mask color. Black is made transparent, white stays white.
The output from the Minimum node is also fed through a Displacement node which generates a displacement vector which is plugged into the material output. The material is set up so that displacement is on (Material > Settings > Displacement > Displacement Only).

Probably the least efficient way of actually modeling an arrow since it's not even a mesh yet (only a displaced subdivided plane) and it took about 3 hours and multiple iterations to get it working.

what is this black magic..

delightfully perverse! :)

Here's an alternative solution using a Skin modifier. Essentially, create a line of vertices and set the radius on each to create the arrow.

Starting with the default cube, got into Edit mode (Tab) and select Merge/At Centre to create a single vertex.
Extrude the single vertex in the required direction - E5Enter (this will default to the 'X' direction)
Select all (shift-rightclick the other vertex or press A twice), click Subdivide, and change number of cuts to 2

Add Skin modifier (optionally switch to wireframe mode - although this isn't strictly necessary))
Adjust Mean Radius X to set the 'depth' of the arrow
Select the 'front' vertex. Set Mean Radius Y to zero

Select the next vertex. Set Mean Radius Y to the maximum width of the 'head'.

Select the next vertex. Set Mean Radius Y to the width of the stem. Grab the vertex and move it very close to to the previous vertex (to make as close to 90 degrees as possible) - as close as possible to length/numedges, so for an arrow of length 5 with 4 evenly spaced vertices (from the subdivide) = 5/(4-1) = 5/3 = 1.66666, so, say, GX1.65Enter

Select the last vertex and set the Mean Radius Y to the width of the stem.

Throw four Modifiers on the default Cube and add an Empty.

Inspired by the numerous cool examples (John's in particular), here's two attempts of my own.
First I tried this:
1 SHIFTA Add Cube.

2 TAB for Editmode
3 & 4 W1 to subdivide it

5 CTRLSHIFTLMBLasso-Deselect all but the right corner verts

6 G and CTRL to move them one unit to the left

7 SY(RETURN) to scale them up a bit

After that, I thought... this can go the other way, too:
5 Lasso Deselect ONLY the corner verts

6 G and CTRL to move them one unit to the right

7 SY(RETURN) to scale them down a bit

If I obeyed my own rules, I think there would be more keypresses to count. But I don't count my answers anyway. I just wanna add to the variety with a bit of Lasso Select.

That’s pretty neat!

It's simply old. I'm not sure but it might just work even in 2.12 if you substitute lasso select with circle select, B B back then.

Nobody has mentioned starting with with Nurbs Surfaces yet, so just for fun, here's another way starting a surface wedge (does require extra curves addon):

Convert to mesh Ctrl+C
Fill both empty faces with F (two steps I guess)
Scale on Y axis to desired size and rotate 90 degrees
Add two loop cuts with Ctrl+R to create the base
Extrude loop cuts with E to desired amount to create the base of the arrow
Recalculate normals with Ctrl+N
Turn on auto smooth

Here's one more that's all quads just for fun, add mesh -extra objects addon should be enabled for the triangle object.

Add a triangle Add mesh>math funtion>triangle and change the face to 6 sided quads
Extrude the base of the arrow
Select all and extrude downward to prevent flipped normals

Here's yet another way to do it, moderately efficiently.

insert 7-sided cylinder
apply Mirror modifier with Axis=X, Bisect=X (this is Blender 2.90)
Tab to go into Edit mode
select rightmost vertical edge
in orthogonal top view (7) use G to move edge to $$x = 0.43388, y = 0.62349$$
$$x = \sin(\pi/7), y = \cos(2\pi/7)$$

Done


text:
Cut audio into pieces automatically
I have an audio-file with 1000s of single words, a history of abusing Blender for anything possible and I want to end up with a few 1000 single wav-files containing one word each. I kinda know Python and I'll be able to manage shell-scripts on Linux.
It's not too hard to find the silent gaps with Python automatically and therefore determine start and end of each word but is it possible to export them in one go?

Maybe ffmpeg is a better solution?
https://superuser.com/questions/931533/ffmpeg-split-a-video-using-silencedetect

But that'd be cheating o_O

source: Stack Exchange

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

sort: votes


text:
Blender VSE Driver deleted when strip is copied or duplicated
I need some insight or solution. In Blender VSE I have some transform strips with driver linked with another strip. Now I need to duplicate the transform strip with the driver. When I duplicate it, the driver is gone. How to resolve it or what is actually causing it? Is there any script or addon to deal with it?
Thanks in advance!
Observation: It creates new object and not instance while duplicating.

Yeah IIRC the VSE does not allow to instance strips any more as it was causing issues with shared F-curves. Duplicate only, which means that drivers go bye bye. Perhaps you can write a script that would copy drivers from one to another, not sure if the Sequencer Extras addon has such feature? https://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/Sequencer/Extra_Sequencer_Actions#Copy_Properties There is a Copy Properties function though

Sorry that addon is deprecated, you can grab a new one at Kino Raw tools for Blender. But it doesn't help. See my answer below.

The driver is not copied as the f-curve would have to be copied and the devs don't like to duplicate f-curves (as that gets quite messy).
Instead simply hover over the driver value in the first strip, right click and select "copy driver".
Go to the same value in the copied strip and right click then select "paste driver".
Remember that to see drivers update in the VSE you must either hit play or the button labeled "Update Sequencer" in the VSE timeline.

I wonder if it is because the strip driver belongs to the scene.  If you do a scene full copy the driver will be on the dupe strip.  (it would be one ugly workaround lol)... oh and do the debs have a ball?

Damn my autocorrect. IIRC Campbell said the data blocks got messy with f-curve dupes

TBH a "copy driver > paste to many strips" script seems like an easy solution?

Thanks for the info. I created one copy>paste driver for VSE Optical flare. If something like this is not there yet, will fork it. Seems easy if we can select the object and then active objects. Will give it a look.

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


text:
What will reduce my rendertime?
What would reduce the render time? Should I get a better GPU or more RAM?

It really depends on what you're going for. both have their advantages and disadvantages.
My suggestion is: get both, but do not heavily invest in either one if you're not sure yet what you need.
Basic recomended requirements can be found here:
https://www.blender.org/download/requirements/

This guide is great for speeding up cycles.

Actually There Is Many Things ..
I Don't Know All Of Them But,

I Know A Video Tutorial From Blender Guru That Can Be Usefull :

Here Is The Video Youtube Link

Here Is A Summary About The Whole Video:
 - I Hope You Find This Usefull -

Without knowing your system specs, this answer will be a bit of a shot in the dark however, generally speaking, given a decent system with a modern architecture, your best bang for the buck will come with a "more better" graphics card. GPU rendering is an order of magnitude faster than CPU.
On my particular system, GPU rendering is 4 times faster than CPU rendering.
Think of it this way, a \$200 graphics card will likely get you better performance than \$200 in combined CPU and RAM upgrades.
There are also a dozen things you can do in Blender, not the least of which is play with the tile size (Render > Performance > Tile Size). This is just trial and error--so pick a frame, change tiles to 32x32, render, check the render time in the upper left corner. Change tiles to 256x256, repeat. Pick the faster one and try a couple values on either side -- if 32x32 was faster, compare 16x16 and 64x64. Values should be increments of base 2 (so; 2, 4, 8, 16, 32, 64, 128, 256, 512...).

To start, there are two ways of rendering: CPU and GPU. CPU rendering has been supported since the project began, and is the default method of rendering, using your CPU and RAM to render the scene.
GPU rendering can only be done using the cycles render engine, which was added later on. GPU rendering has the potential to be much faster, as long as you are using a good graphics card. This is because of the highly parallel architecture of GPUs.
Roughly speaking, you can usually get more performance per dollar if you purchase a good GPU over a good CPU. If you already have a good CPU, then more RAM will only increase the size of the scene that you can render, not the speed at which it is rendered. Similarly, on the GPU side, you need enough RAM on the GPU to render your scene.
In summary, if you already have a good CPU, getting more RAM will not help the speed. Getting a GPU at around or above the price point of your CPU should give you increased render performance. If you are looking to get a new GPU, you might want to get an NVIDIA based GPU, simply because they have been supported for longer and are thus more likely to be stable.

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


text:
How to edit normal direction
I am trying to point the face normals to another direction than the face is facing. I want the face to be about 45 degrees and the normal pointing straight up. But no matter what I use, normal edit, as seen in this screenshot

http://prntscr.com/md9u8w
I am trying to get the normals to point straight up. I had luck making trees on a similar kind of geometry (where it's only planes with normals pointing straight out, torwards a sphere instead of the direction of the face). But for some reason, now the same thing, done the exact same way, in the exact same scene, with exact same objects used to data transfer or normal edit modifiers, it just won't work, no matter what setting I change or object I use.

Are you trying to achieve something comparable to Custom Vertex Normals, like this guy demonstrates here: https://www.youtube.com/watch?v=oAGEGBulzSU

If you need all the normals to point upwards it's quite simple.

Create a new plane.
Enable Auto-Smooth on your main object.

Add a Data Transfer Modifier to your main object.
Set the Plane as source Object and check Face Corner Data and enable
Custom Normals. Your object will now copy the normals from the Plane.

If you want different normals to point in different directions you can do the same using Vertex Groups.

Create a new plane and angle it to the direction you want your normals to point. Create a new plane for every direction you need. Name them accordingly.

Create a Vertex group for each direction. Name them accordingly. Assign the vertices  you need to their desired vertex group.

Enable Auto-Smooth
Add a Data Transfer Modifier for each Vertex group. Set the desired Plane as source Object along with its Vertex group. Check Face Corner Data and enable Custom Normals.

To point normals in a specific direction there is the Normal Edit Modifier.
Also works with vertex groups for multiple directions.

Place Object in direction Normals shoud face
Add Normal Edit Modifier
Enable Autosmooth in Object settings if nessesary (step missing in GIF)

You can manually edit the normal direction with the Blend4Web Add-on.
Download it here: https://www.blend4web.com/en/downloads/

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


text:
Weight paint doesn't work in weight paint mode
I can't get the weight paint to work?

http://prntscr.com/mpmq13
i am in weight paint,i have the bone selected, and it doesnt let me paint. am i doing something wrong with the vertex groups?

Does this happen for all the brushes? Does the add brush work?

could you please share your file, or at least the part you're trying to paint? https://blend-exchange.giantcowfilms.com/

I was having this same issue. I realized I was trying to paint onto a mirrored section without having actually "applied" the mirror modifier. I am very new at Blender, but thought I'd share in case anyone else falls in the same hole.

If you look at the image you posted, at the top left corner, on the tools panel, you have weight set at zero.  It has to be above zero to be able to weight paint.

If you just happened to have it at that setting when you took the screenshot, then never mind; I will delete my answer.

Well for starters your weight is set to zero. That is the amount of influence you want your mesh to have. So it would bring down the values to zero. However, if you want to lower the value then you are on the right on.
However I think your main issue is that you don't have the correct object in weight paint mode. It seems the ears are in weight paint mode but ont the rest of the mesh. Make sure to either make them part of the same object by sellecting both and hitting "CTRL+J" or, parent the body to the armature by sellecting the mesh THEN the armature an hitting "Shift+P."

The bone wont be connected to the mesh that you are attempting to paint - that's why. otherwise it would work, or perhaps it isn't connected in the correct fashion.
if it moves: it's connected.
( it probably is )
attempt the same thing on other meshes, delete the bone - re-add it. try things that would usually fix a computer:
Turn it on + off ( delete it and re-add it )
Try on other meshes.


text:
Control points on a curve node with drivers?
I want to control a point on a curve within an RGB curves node with a driver. Is there any way to get the RNA path for it's X and Y fields?

@batFINGER I see you edited the question for clarification, but probably the OP meant the cycles RGB curves node, not the compositor one.

Possibly related: http://blender.stackexchange.com/questions/9045/is-there-a-way-of-keyframing-rgb-curves


text:
When I join two objects with logic, the logic from one is lost
In Blender Game Engine (BGE):
I am new to the blender game engine.  I was making a small game of a ball moving and jumping.
Two Balls(Spheres) are the main objects. One is controlled by the keyboard  the other by joystick

I Was expecting that when the two spheres are joined together the controls will be added together also., so there will be one ball  controlled by both the keyboard And Joystick.  When I Join the balls I  get one control only.
Can anyone tell me how to join the two sphere without losing the logic on the other ball?

When you "merge two spheres" I assume you are pressing Ctrl+J which is the meshe join operator, which handles geometry data, that means it manages mesh shapes alone, nothing more. The object is still just the receiving one, so all other data remains the same as before.

As far as I know Blender does not support merging logic bricks. It can completely replace it via a copy command.
As mentioned by Duarte Farrajota Ramos merging meshes does not care logic bricks.
I think it is possible via Blender Python. But I do not know if anyone ever created such an add-on.

Monster, code to copy sensors in related question.


text:
How to get distance of vertices from an arbitrary plane in Python?
I have an arbitrary oriented plane and an object "above" it.
I would like to calculate the distance from the plane for each vertex in that object.
Hopefully this screenshot illustrates the idea (the purple line would be the distance of one of the vertices):

I suppose some kind of a transformation of vertex global coordinates to the local orientation of the plane would be the way to go, however, I'm too new to Blender to know even what to search for (I did try searching for mentioned keywords but didn't find something I could figure out, unfortunately).
I know how to iterate trough vertices of an object and get global coordinates, no problems with that.
Edit:
As Chebhou suggested I tried using the mathutils.geometry.distance_point_to_plane(pt, plane_co, plane_no) but cannot get it to work.
For testing I'm using a 2x2x2 cube at (0,0,1) and 6x6x6 plane at (0,0,0):

The code is this (shortened for clarity):
point_location = thecube.location

planepoint_location_w = theplane.matrix_world * theplane.data.vertices[0].co

plane_normal = theplane.matrix_world * theplane.data.polygons[0].normal

distance = geometry.distance_point_to_plane(point_location, planepoint_location_w, plane_normal)
print("point_location = ", point_location)
print("planepoint_location_w = ", planepoint_location_w)
print("distance = ", distance)

The result for the cube and plane location as in the pic is OK (the point is 1 unit above the plane):
point_location =  <Vector (0.0000, 0.0000, 1.0000)>
planepoint_location_w =  <Vector (-3.0000, -3.0000, 0.0000)>
distance =  1.0

However, if I move the plane on Y axis to (0,1,0) the result is this (but should be the same as before):
point_location =  <Vector (0.0000, 0.0000, 1.0000)>
planepoint_location_w =  <Vector (-3.0000, -2.0000, 0.0000)>
distance =  2.1213202476501465

Obviously I'm doing something wrong - but what?

https://www.blender.org/api/blender_python_api_current/mathutils.geometry.html?highlight=plane#mathutils.geometry.distance_point_to_plane

when you solve the problem write an answer, and if you need help just ask

Thanks @Chebhou! It never occurred to me that there could be something like distance_point_to_plane! I'm looking into it ...

@Chebhou, I'm almost there but I think I'm giving it wrong parameters - should the parameters be global or local to the plane? For example, should the plane_co (a point on the plane) be like theplane.data.vertices[0].co or should it be corrected for plane's rotation?

( i think  ) they are supposed to be global, and theplane.data.vertices[0].co will do after converting to global

@Chebhou, OK, I'm converting it to global with theplane.matrix_world * theplane.data.vertices[0].co but it still does not work right. What about the plane_no (direction the plane is facing) parameter - is that supposed to be converted to global too? I'm doing it but no go. I'll edit the question and add the test code ...

multiply the matrix_world*face.normal to get it in global

@Chebhou, I am doing that - I updated the question to show the test code.

You can use the dedicated function :mathutils.geometry.distance_point_to_plane(pt, plane_co, plane_no) were you supply the plane normal and one point from it, and the point you want to calculate the distance to as in the following example :
import bpy
import mathutils

plane = bpy.context.scene.objects['Plane']
p1 = plane.matrix_world*plane.data.vertices[0].co
p2 = plane.matrix_world*plane.data.vertices[1].co
p3 = plane.matrix_world*plane.data.vertices[2].co
plane_no = mathutils.geometry.normal([p1, p2, p3])

obj = bpy.context.object
mat = obj.matrix_world

for v in obj.data.vertices:
    pt = mat*v.co
    d = mathutils.geometry.distance_point_to_plane(pt, p1, plane_no)
    print(round(d, 4))

Thanks but this does not produce correct result - run it on the test example from my edit (cube at (0,0,1) and plane at (0,1,0) and it should give distance of 0 for four bottom vertexes, but it does not ...

it seems that the converting to global is the problem

Yes, I just run a test that uses all 8 possible combinations of local & global parameters and none of them gives correct result!

see if this helps ?

Unfortunately not.

Wait, maybe it does work - I get results like 1.3648547108754573e-17

can you give me the full script ?  in my script you have to select the cube before running the script

OK, it does actually work! The very small results are probably internal rounding errors.

which one of them ?

The edit works. Just replace print(round(d, 4)) and it will show zeros correctly.

Can you, please, edit the answer and remove the first solution to make it "clean" and I'll accept it :)

I have found why my attempt to convert plane's normal by using plane_normal = theplane.matrix_world * theplane.data.polygons[0].normal failed  - it is because matrix_world gives 4x4 matrix and the normal is 1x3 vector.
Instead I should have used matrix_world.to_3x3():
plane_normal = theplane.matrix_world.to_3x3() * theplane.data.polygons[0].normal

and it would have worked.

See here  Above will work correctly only when the origin is on the poly.


text:
Revert mouse pointer/cursor back to default after a modal operation
When I execute an operator that changes mouse pointer with cursor_set("WAIT") from Toolshelf and keep the mouse pointer over the Toolshelf, the mouse pointer stays as WAIT after the modal operation has finished. When the mouse is then moved over to the viewport region, it reverts to default.
If the mouse is moved over to the viewport region during the operation, the mouse pointer will revert as soon the operation finishes.
If I add bpy.context.window.cursor_set('DEFAULT') before returning, the mouse pointer will immediately revert to default, of course.
Is there a way to revert the mouse pointer to default over the Toolshelf after the modal operator finishes?
(It is not just modal operators, same thing applies to Blender's "internal" operations that sometimes take long time and "run in background", like setting a modifier's show_viewport option to True.)
Example code:
import bpy
from bpy.types import Operator, Panel

class MyOperator(Operator):
    """This is my operator"""
    bl_idname = "my.operator"
    bl_label = "My Operator"

    def execute(self, context):
        context.window.cursor_set("WAIT")
        bpy.ops.transform.translate('INVOKE_DEFAULT')
        return {'FINISHED'}

class MyTestPanel(Panel):
    bl_idname = "mytestpanel"
    bl_category = "My Stuff"
    bl_label = "My Test Panel"
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'TOOLS'
    bl_context = "objectmode"

    def draw(self, context):
        layout = self.layout
        col = layout.column(align=True)
        col.label(text="My operator:")
        col.operator("my.operator", text="Run my operator")

def register():
    bpy.utils.register_module(__name__)

def unregister():
    bpy.utils.unregister_module(__name__)

if __name__ == "__main__":
    register()

In the good old tradition I'll answer my own question. :)
Updated (fixed issues explained in my other question)!
The solution is to use a modal operator invoked before invoking the built-in operator.
I'm not an expert in this, but what appears to be happening is that the operators are invoked "on top of each other" so the user first deals with the last one invoked - and the first one (here my.cursorsetdefaultmodal) finishes after the second one (here transform.translate) finishes.
To make this work without hiccups in all cases, however, the modal operator must use a timer to, apparently, allow enough time for Blender to process all mouse events properly. Without the timer it will work only when invoked from a property update function, not from an operator (see why in that other question).
The bonus is that this also works for long Blender's "internal" operations (those "running in background" but still blocking Blender UI, like setting a modifier's show_viewport option to True) even though they are not really modal.
I found out that Blender will run modal() at most once before it starts working on the long internal operation - and it will continue running modal() again after the long operation has finished.
Example code:
import bpy
from bpy.types import Operator, Panel

class CursorSetDefaultModal(Operator):
    bl_idname = "my.cursorsetdefaultmodal"
    bl_label = "CursorSetDefaultModal Operator"

    timer = None

    def invoke(self, context, event):
        self.timer = context.window_manager.event_timer_add(0.1, context.window)
        context.window_manager.modal_handler_add(self)
        return {'RUNNING_MODAL'}

    def modal(self, context, event):
        if event.type == 'TIMER':
            context.window_manager.event_timer_remove(self.timer)
            context.window.cursor_set("DEFAULT")
            return {'FINISHED'}
        return {'PASS_THROUGH'}

class MyOperator(Operator):
    """This is my operator"""
    bl_idname = "my.operator"
    bl_label = "My Operator"

    def execute(self, context):
        context.window.cursor_set("WAIT")
        bpy.ops.my.cursorsetdefaultmodal('INVOKE_DEFAULT')
        bpy.ops.transform.translate('INVOKE_DEFAULT')
        return {'FINISHED'}

class MyTestPanel(Panel):
    bl_idname = "mytestpanel"
    bl_category = "My Stuff"
    bl_label = "My Test Panel"
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'TOOLS'
    bl_context = "objectmode"

    def draw(self, context):
        layout = self.layout
        col = layout.column(align=True)
        col.label(text="My operator:")
        col.operator("my.operator", text="Run my operator")

def register():
    bpy.utils.register_module(__name__)

def unregister():
    bpy.utils.unregister_module(__name__)

if __name__ == "__main__":
    register()


text:
Help for rendering with Azure Batch
I'm trying to set up blender to render files with Azure Batch.
The only addons found are not working (like azure-batch-apps-blender
probably too old - 2015 and no more updated).
Do you have any advise for this kind of setup?
Thank you.


text:
Best way to create walls/rooms
Last year I started developing my first game and I am definitely still a beginner in this world.
The problem for me comes in creating my own assets outside Unreal Engine.
I’m using as much 3rd party assets as I can, but right now I’m in a moment where I need to create my own thing, a pub in this case.
I tried to create my pub in Maya and it was quite difficult for me, so I want to try in Blender this time, the community support is much better than Maya :)

I’m struggling to do this in Maya just because I don’t think I’m doing it in the right way.
For example, I put some walls together(that are basically cubes), but I’m struggling to make it perfect, the section where the walls merge for example, it’s never getting completely perfect, then when I export to Unreal Engine I see light leaking everywhere.
This is an early draft of my pub, I created some objects to mimic the tables and chairs just so I can feel the space, it will be removed later, but the walls should be the final ones.
How should I make this? In Blender, should I create each wall as a cube indeed? Or maybe using a plane would be better? How can I make all the walls as one object only, instead of many different cubs/planes ?
Also, when it comes to texture, as the texture inside will be different from the oustside, should I use 2 cubes or just use 1 cube with different UV mappings ?
Can someone shed some light to this poor beginner here ? =)

If I were going to build something like that, I would start with a plane and then delete all but one vertex.
Then I would extrude an edge long enough to match the thickness of the wall.
Then I would extrude the edge to make a wall.  At a corner, I would have extruded so that the inside edge matched the inside corner.  Next I would move the outside edge the thickness of the wall and extrude the diagonal edge in the opposite direction.
Repeat until you have the floor plan of your walls.  See below for how to make a T junction.
Select the whole floor plan and extrude it perpendicular to create the walls.
starting out
Here's a step by step example of getting past the first corner, assuming a .2 unit thick wall.
Add a plane:

Delete all but one vertex.  (nothing to see, so next step)
Extrude .1 in the Y direction:

select both vertices (and thus the edge) and extrude in the X direction.  (I randomly pick 1.8m)

Move the outside vertex .2m in the same direction:

Extrude again, but at 90 degrees to the previous direction picking 1.6m for an example:

Move the outside again.  This time .4m.  Et cetera.
Making a T junction
At some point you come to a T:

Square up the edge by moving the 'trailing' vertex.

Extrude the edge by the thickness of the wall:

Pick edges an extrude to create the T walls:

Finally: Extrude the walls
Here's your final floor plan; except out of proportion:

Select everything and extrude perpendicular by the height of a wall:

Adjusting the floor plan:
Before you extrude for height you can select subsets of vertices and move them around to fix the proportions of your floorplan.

WOW!
You are the GOAT sir, thanks a lot, that step by step will help me so much!!!

You're welcome.  I hope this helps you make many game assets.

You could usr the arcimesh add on. Draw a floor plan and let it make walls for you

I read about arcimesh, sounds nice, I'll try, thanks!


text:
Moving arm front and back looks weird
I'm trying to make an player model for a TPS. I'm trying to make the character's arm go front and back without it looking weird. I'm not good at weight painting. I'm using this tutorial, but converted to T-pose, but I also have a A-pose version of the same model too. Do you know any good tutorials for lowpoly models fit for TPS movements

Why don't you use rigify and auto weighting?

maybe try to extend the weight painting a bit to the shoulders? If it is still not good, please share your file: https://pasteall.org/blend/


text:
Wacom remote not working properly
I'd like to be able to use my wacom remote w/ blender but when I have Windows Ink enabled it lags in the viewport and when I have it off the radial menu function for the remote wont work.
I'd like to abandon using keyboard all together if I can by using the radial function as the majority of my hotkeys that I can't assign to the remote.
I've read/tried everything I can find on the remote/windows ink and have yet to find a solution.
I'm actually using an xp-pen cintiq if that matters. To my understanding the functionality of the remote wasn't reliant on having a wacom cintiq.


text:
Problem with moving vertices in shape key edit mode
Does anyone know why a totally unrelated vertex is moving with the vertex that I want to move when I'm trying to build a shape key in edit mode? There are no drivers and no unusual modifiers other than the armature modifier?

Vertices in their original position.

The only selected vertex moved upwards, the vertex in the red circle moves along in a completely random direction.
EDIT: A gif of how the rogue vertex moves

EDIT: Here is the blender file
Bear.blend

Could you upload your blender file?

@Susan Just attached it to the question :)

When in Edit mode, there is an Options tab in the Tool box (T).  In the tab you had X mirror and topology mirror turned on.  If you untick X mirror, the two vertices stop moving together.
(Also, you ought to Apply Rotation, (Control A/ Rotation) so that local axes agree with global axes, not that that was the cause of the problem. It can cause rigging problems if it's not applied. Also you should Apply scale (Control A/Scale) because if you ever animate a child object rotating around the bear it will inherit the Scale as it rotates, and become bigger on one axis, then shrink again as it goes further around)

Note that if you apply Rotation and Scale, but don't untick the X mirror box, the two vertices now move in a logical, mirrored direction at least. So your local rotation and scale values were interfering with the proper function of the X mirror tool.


text:
Triangulate modifier doesn't work properly after combining faces
After I combine two faces into one and then apply the triangulate modifier, it treats the newly created face as two faces instead of one, so it divides the face into two triangles. Is there a way to fix this and make it two combined faces as one?
Triangulate modifier applied to two separate faces:

Triangulate modifier applied to a combined face

could you please make some screenshots?

It might be because you still have one or two vertices that make that face triangulate twice?

Press [tab] to go edit mode.
Press [A] to select all vertices.
Press [T] to open the tools panel on left side
Scroll down and click on [remove doubles]
press [P] separate by loose parts (this will clean up the vertices loose)
then go back to object mode [tab], and select the corrected mesh.
[ctrl]+[i] to select inverse
[x] to delete the garbage vertex.
select back the mesh [tab] edit mode.

10 [A] to select all your faces in this case.
11 finally what you're looking for. [Alt]+[P] mesh poke to triangulate.


text:
How to enable Grid in User Ortho View?
I need the grid to be enabled after rolling a side view with Shift Numpad 4/Numpad 6. How do I enable it?
Thanks.

? are you talking about the reference 3d grid, by default on global XY plane? It should be always visible, not depending on the view... or maybe I didn't get what you're asking... try to add an image of your setup...

hi m.ardito! I've added a screenshot with some annotations. Hope it makes it clear.

The grid is here I think you just can't see it because it's flat (like the green line in he right side of your image). Maybe model from the top to see the grid and rotate your model at the end?

Ok, I got what you meant after adding that image, thanks. I think there's no way to visualize the grid in that case, sadly.

The Grid, as opposed to the XY Floor, is only available in the set orthographic views..(Front, Top, etc.) Even if a User orthographic view happens to be looking straight down a World axis, Blender doesn't check for that.
I often use this feature to quickly get rid of the grid for a moment, by tapping 4 6 on the numpad.

In blender 2.81, when in an orthographic view, you can enable the grid in Viewport Overlays:

You can enable the grid in a "User Orthographic" view with this workaround:

Enter Orthographic View with the 5 key, and navigate to your desired User Ortho view with the 4 or 6 keys (for Left / Right) or 2 or 8 keys (for Down / Up).

(TIP: Go to Preferences > Navigation > and disable "Auto Perspective" to stay in Ortho view when using these keys.)

Click the "Viewport Overlays" button. (You will notice that "Grid" is grayed out in User Ortho mode, but we will use the "Floor" option instead.) Make sure "Floor" is enabled.

Change the "Scale" setting to 0.1 to view 10 cm increments (or 0.01 if you are really zoomed in and need 1 cm increments).


text:
How to cycle through Global and Normal orientation?
Is there any way to toggle between Global and Normal orientation via a hotkey or with an add-on?

mesh component translation

If you mean transform orientations then Alt+Space. There are shortcuts included in the manual

@Mr Zak It just brings up a menu with options whereas I need to quickly toggle back and forth between exactly Global and Normal orientation, so your solution is a bit of a hassle since I have to do it very often.

Using Alt+Space is standard way of choosing transform orientations in Blender; though if you really want using shortcuts for certain orientations you can define custom shortcuts in User prefs as is written in the answer below


text:
How to scatter objects by texture?
Is there a way to scatter objects by texture(say, black and white texture like a checker map)? After scattering, the objects have to be instances and retain their original size and dimensions (without any deformations, squeezing you name it).
Thanks for helping me out.

Maybe this is the answer: https://blender.stackexchange.com/questions/61918/trees-plants-rocks-spam-for-my-game-terrain/61923#61923 Add some screenshots of what you want to achieve or be more descriptive (with examples).

Related https://blender.stackexchange.com/questions/6250/how-to-control-hair-particle-position (same for Emitter particle system type)

I've uploaded a screenshot. Here's the deal guys: I want the blue cone to scatter exactly where the white dots are. Thanks for the links btw


text:
How to tile the Gradient Texture node with the spherical gradient type?
How do I make it repeat itself along the X-axis?

Possible duplicate of Repeat a generated texture in Cycles?

Yeah, I tried their methods and none of them worked out for me.

Then how about giving us something to work with? More than one sentence? Adding images? You can edit your question to make it better.

done that, thought it was clear enough

This is a little more complex than the linked question due to the spherical gradient texture needing a range of [-1,1] to generate a full circle.
The modulo(1) function will generate a repeating pattern by mapping positive values to a new value in [0,1] and negative values to a value in [-1,0]. This means that half the circle will be repeated in either direction from 0, not what we want.
Instead we can generate two versions of our repeating pattern that each work for just one side of the zero point, and then combine them by masking out values we don't want and using a maximum:

Modulo(x,2) - 1 generates a repeating [-1,1] range for x > 0 and [-3,-1] otherwise
Modulo(x,2) + 1 generates a repeating [-1,1] range for x < 0 and [1,3] otherwise. This [1,3] range will present problems when combining each side with maximum so we need to set it to something less than or equal to 0
By exploiting the fact that the spherical gradient is symmetrical around x=0, we can invert the part from (2) to avoid the issues with maximum.

Just out of interest.. (this is no better than @Sazerac's answer) .. this set of nodes has the same effect as Sazerac's cluster between the Mapping and Gradient nodes, this time placing the full gradient in the ranges ...[0,2],[2,4]... of whichever space you are using.

The graphs in the illustration below show the sequential effects on the mapping of X by the numbered nodes.The squares are all 8 units on the side.

Thanks to @Rich Sedman for the  tip on how to display graphs of f(x).

Nowadays, Pingpong will do the job.


text:
How to bring the context "back" after running read_homefile()?
When I run
import bpy
bpy.ops.wm.read_homefile()

and then I replace the above with this (in the same text data block)
import bpy
rrr = bpy.ops.object.select_all(action='SELECT')
print("select_all result:", rrr)
print(">>>>>>>>>> bpy.context:", bpy.context)
print(">>>>>>>>>> bpy.context.object:", bpy.context.object)
print(">>>>>>>>>> bpy.context.object.name:", bpy.context.object.name)

and run it, I get this
select_all result: {'FINISHED'}
>>>>>>>>>> bpy.context: <bpy_struct, Context at 0x000000EEA420B5C8>
>>>>>>>>>> bpy.context.object: <bpy_struct, Object("Cube")>
>>>>>>>>>> bpy.context.object.name: Cube

However, when I run this (same code but merged)
import bpy
bpy.ops.wm.read_homefile()
rrr = bpy.ops.object.select_all(action='SELECT')
print("select_all result:", rrr)
print(">>>>>>>>>> bpy.context:", bpy.context)
print(">>>>>>>>>> bpy.context.object:", bpy.context.object)
print(">>>>>>>>>> bpy.context.object.name:", bpy.context.object.name)

I get this
select_all result: {'PASS_THROUGH'}
>>>>>>>>>> bpy.context: <bpy_struct, Context at 0x000000EEA420B5C8>
Traceback (most recent call last):
  File "\Text", line 7, in <module>
AttributeError: 'Context' object has no attribute 'object'

Why does that happen?
Is there a way to make the code after bpy.ops.wm.read_homefile() work "normally"?
Edit:
It seems that bpy.ops.wm.read_homefile() effectively "clears" the context - the bpy.context.area is None.
So the new question is how to bring the context back to the correct area?
Edit 2:
I have found a workaround that searches for 3D View area and makes it current context - and here is the dubious part - by calling bpy.ops.screen.screen_full_area():
import bpy
bpy.ops.wm.read_homefile()
havesetthecontext = False
for window in bpy.context.window_manager.windows:
    screen = window.screen
    for area in screen.areas:
        print("area=", area)
        if area.type == 'VIEW_3D':
            override = {'window': window, 'screen': screen, 'area': area}
            bpy.ops.screen.screen_full_area(override)   # toggle to maximize
            bpy.ops.screen.screen_full_area()           # toggle back (must not use overridden context, else it will crash!)
            havesetthecontext = True
            break

if havesetthecontext:
    rrr = bpy.ops.object.select_all(action='DESELECT')
    print("select_all result:", rrr)
    print(">>>>>>>>>> bpy.context:", bpy.context)
    print(">>>>>>>>>> bpy.context.object:", bpy.context.object)
    print(">>>>>>>>>> bpy.context.object.name:", bpy.context.object.name)
else:
    print("Could not set the context to 3D View!")

Now, isn't there a way to set a context directly, something like bpy.context.set(override)?
Edit 3:
The above workaround is unstable (occasionally crashes Blender) unless Load UI is disabled.
So, add this line before calling bpy.ops.wm.read_homefile():
bpy.context.user_preferences.filepaths.use_load_ui = False

That, of course, kind of kills the purpose of reloading startup file, unfortunately.
Oh, and the same issues appear when calling read_factory_settings().
When I run the screen_full_area() stuff from load_handler then it does not crash, however, in the "main" code the bpy.context.area is still None - and when I do screen_full_area() stuff there too, it crashes again.
I suspect that crashing is due to some code in screen_full_area(), not the context changing, so we are back to the question is there a way to set the context directly?

I believe it's a matter of time you have to wait until the loading is done, the code is executed  while the loading is done

you may try to append you code to the handler  load_post to be executed after loading a new file

@Chebhou, thanks, but it looks like read_homefile() returns only after the file is loaded. I can access the Cube from the file immediately after the read_homefile() line. I will try the load_post handler though ...

@Chebhou, nope, load_post handler also says bpy.context.area = None.

I have found a workaround-like solution using context override with screen_full_area operator called twice ...

I can't believe this question is not solved yet. Suffering from the same problem in 2021. :P And from the Blender 2.80, you should use bpy.context. preferences.filepaths.use_load_ui = False

i suspect read_homefile and read_factory_settings  will have the same resolution, I put a bounty on this topic over here https://blender.stackexchange.com/questions/220523/is-there-a-recommend-way-to-repair-or-recreate-a-valid-context-after-using-bpy

Try this script it works for me on Blender 3.4. You have to first add the load_post handler and then call bpy.ops.wm.read_homefile() so that your code only triggers after loading is complete and the context has been properly set.
import bpy
from bpy.app.handlers import persistent

bpy.app.handlers.load_post.clear()

@persistent
def load_handler(dummy):
    print("Load Handler:", bpy.data.filepath)
    bpy.app.handlers.load_post.remove(load_handler)

    result = bpy.ops.object.select_all(action='SELECT')

    print("select_all result:", result)
    print(">>>>>>>>>> bpy.context:", bpy.context)
    print(">>>>>>>>>> bpy.context.object:", bpy.context.object)
    print(">>>>>>>>>> bpy.context.object.name:", bpy.context.object.name)
    print(">>>>>>>>>> bpy.context.screen:", bpy.context.screen)
    for index, area in enumerate(bpy.context.screen.areas):
        print(f">>>>>>>>>> bpy.context.screen.areas[{index}]:", area)
    print(">>>>>>>>>> bpy.context.area:", bpy.context.area)

bpy.app.handlers.load_post.append(load_handler)
bpy.ops.wm.read_homefile()

The bpy.context.area may be None due to a bug, I'm not sure, but that is fine because you can still access all the areas in bpy.context.screen.areas list.


text:
What can I do to get rid of ugly triangles
I have a problem with baking textures and ambient occlusion. Weird triangles and artifacts appear at end of process. I have tried (i think) everything on internet like soldify, triangulate faces, recalculate, reinport from .obj format. I'm beginner with blender, so please, could someone find solution to this? All I can add: Corupted Meshes have been made new from plane surface like all others and I join them in to single object.

https://goo.gl/photos/h9463isytcmiqUyq7
I think problem is with mesh. Because when I import mesh with other program where I can bake AO too, same problem happend.

Have you checked "remove doubles" it may look to have been a case where you have 2 polygons on the same surface causing the output to look like these.

Yes, I have tried that. But still problem exists

In that case post your .blend file using http://blend-exchange.giantcowfilms.com/ ... such problem gets resolve much faster once we are able to search an destroy the specific issue.

After looking at your file the problem is very obvious.
You have a situation where your UV are laying on top of one another. For baking purposes you should never have your UVs position over one another. All islands must have their own space.
Imagine the renderer using those UV information you gave. First it renders A_island_uv portion of the mesh then render B_island_uv portion of the mesh over the previously rendered A_island_uv and no wonder it's a mess.
Check out the UVs after I corrected them the strange triangles are now gone.

FURTHER INSTRUCTIONS
All you need to do, for this scenario is to enter edit mode. Select a vertice on the UV island you want to move .. Hit L and that will select the whole island. Hit G to grab and move the island. Scale them up or down if need be and you are done.

OK, now I see this. Like you said it is obvious. What I was thinking about:) Thank you so much. Now I need to learn how to separate them like you do. Anyway again thank you so much again.

All you need to do is the enter edit mode. Select a vertice on the UV island you want to move .. Hit "L" and that will select the whole island. Hit "G" to grab and move the island. Scale them up or down if need be and you are done.


text:
Finding top surface area of a mesh by python
I need to find the top surface area (in one plane) and total surface area (by summing all the faces) of a complicated mesh. For that I need to know how to fit a plane to the top of a mesh to find the top surface area. The mesh can be .obj or .stl or .ply

Can you elaborate on what you mean by top surface area? for example a square bottomed pyramid, would it be the area of the base (the shape seen from the top) or the tip, or the faces visible from the top view?  Or you could sum the faces whose face normal is within some tolerance of (0, 0, 1)

So If it is a squarebase pyramid , faces visible from top will be top surface area. That will be the area of square if square is facing the camera. Whereas all the faces of pyramid will come under total surface area. I know to sum up the areas of faces and get total surface area. But since top surface area is in one plane.. I need to find a solution.please help

In the last comment in http://blender.stackexchange.com/questions/47675/surface-area-of-a-mesh-using-python-code-in-blender I showed the code for summing the area of selected faces. area = sum(f.calc_area() for f in bm.faces if f.select) Edit mode, Go to top view, box select visible, Object mode, then run code.  Is that what you are after?

Can you help me with what you said. .summing up the faces whose normal is within some tolerance. . How to try that @batFINGER

Here as requested is faces whose normal vector has angle from up vector of less than 80 degrees.
import bpy
import bmesh
from math import radians
from mathutils import Vector

obj = bpy.context.active_object
mw = obj.matrix_world
bm = bmesh.new()
bm.from_mesh(obj.data)

up = Vector((0, 0, 1))
# local space
area = sum(f.calc_area() for f in bm.faces if up.angle(f.normal) < radians(80))
print("local", area)
# global space
area = sum(f.calc_area() for f in bm.faces if up.angle(mw * f.normal) < radians(80))
print("global", area)
# or avoid a lot of matrix mult by converting "up" to local space.
up = mw.inverted() * up
area = sum(f.calc_area() for f in bm.faces if up.angle(f.normal) < radians(80))
print("global", area)

bm.free()

That works great. How would that look for the ground or floor plane?  I do have mesh with boxes representing buildings and would like to calculate the roof and ground surface.


text:
Blender result and saved image different

The render result and the saved image are different in how the particles are showing up. If I remove alpha, it appears just fine. Why is alpha being present changing the particles?

I guess it's just the way your image viewer renders the image with alpha channel. Have you tried to open the image in another Blender file ?

as @mqbakamqbaka suggest this is probably the case... in the render view, your background is transparent and you see semi-transparent white particles very sharp and nice... but when you open it in image viewer your transparent background is black... due to particles being semi-transparent yellow pixels, what happens if you mix them with black background? They fade away a bit...

@Jeffrey Part that is invisible is emission (glare) over transparent bg, but it should be invisible in preview as well until you add background or disable alpha https://blender.stackexchange.com/a/164940/2214 ... what version of blender you use? I expect you use compositor Glare too, right?

did you try to render to exr?


text:
I want to learn Blender
I've been learning Blender for 2 years. Due to my job, I couldn't do it systematically. Now I have more time and I would like to develop my skills. In the future, I would like to make models for games.
Here is the link to my portfolio:
https://www.artstation.com/watus1992r
Can you write what next model should I make to develop my skills?
I want to make more and more difficult models.

This forum is for answers to problems with using Blender, not what you should do with it, so your question will problably be closed as unsuitable here. Suggest you try somewhere like https://blenderartists.org/.

Im in the same boat as you and what im doing is recreating scenes from around me such as my street or room. I find it to be a good balance between following tutorials and actually modelling


text:
Filling a complex object
I am currently working on filling a complex building structure to make it easier to 3d print on my small printer. when the object is scaled down the wall become paper thin and my print fails. I want to solidify the object by overlaying two objects and subtracting the excess (like a mold), and then merging them. I have tried extrusion, but as you can see there are many faces and it distorts the exterior. I want to preserve the exterior and fill the entire interior. I removed the bottom to start the process, but don't know where to go from here.

The method you're considering seems overly complex for your intended outcome -- the inner faces should be much simpler than the outer complex structure, for example:

Also your "removed bottom" is showing leftover edges crossing the space, these can cause trouble during rendering or 3D printing.

wow that's exactly what I wanted to do! How do you do that without distorting the outside?

Glad you like it - remember, I don't have your model, just a screenshot of it.  I loaded that into Blender and made an optical illusion of an underside for it.  What you should do to get this on your model is to select every edge on the base and Extrude, then hit the escape key, then (without loosing the selection) Scale inward until you get the thickness you think you'll need.  If you need modeling help from there that goes beyond the scope of a 600-character comment, but if I've answered your question I'd appreciate it if you'd click the checkmark next to my answer.

Thank you! I appreciate your answer. Sorry I didn't know how to accept the answer.


text:
how to export volume texture as gltf file from Blender
I have this cloud/Volume bird(see screenshot) want to export as gltf file with animation. I wonder how can i do export this. Thank you so much.

Currently, glTF does not support smoke-like volumes such as this.  glTF recently gained support for volumetric attenuation, like colored glass where the color gets deeper where the material is thicker, but such materials always have a well-defined surface.  Blender import/export support has not yet been developed, unfortunately.

Hi Emackey, Thank you so much for your help. Really appreciate.

Has this since changed? Blender Manual under Add-Ons>Import-Export>gLTF2.0 it says 'Volume can be exported using a Voume Absorption node ... for volume to be exported some Transmission must be set on Principled BSDF'. And a few other notes. I've tried this and it doesn't seem to work, with a simple cube e.g. and a volume absorption node to create a fog like effect, but I simply see a cube in the gLTF reader. (If it still doesn't work are there any hacks? Like using transparent .png files - this was my first thought but doesn't work quite right either for the purposes of creating 'fog').

It seems like volumetric attenuation as you've called it is only for translucent materials, with a defined surface - like you said. And doesn't work for clouds and/or fog like materials ... still wondering if there might be a clever hack or work around.
https://www.khronos.org/blog/using-the-new-gltf-extensions-volume-index-of-refraction-and-specular
http://www.cgchannel.com/2021/07/gltf-files-can-now-recreate-accurate-translucent-materials/


text:
How to model the croissant style ring?
I would like to model the texture of this ring and have been stuck on this problem for a long time.
I would like to see the gap between each of the twist elements, and I would like to have each croissant twist to have a round / dome like look. Also, you can't tell but the back is hollow and has the shape of the twist.
I have tried:

Screw modifier from a circle of 32 vertices. This does not work since it just looks like a rope with no gap in between twist elements.
starting out with UV sphere, applying simple deform to twist on z-axis, extruding faces or extruding edges inwards.
Starting out with torus and extruding the faces.

Nothing seems to look quite right.

croissant ring

I have a process that I think might work for this, and I’ve tested it out on low poly. I’ll try to get it to you as soon as possible. It involves bridging edge loops, and then moving some loops around with proportional editing turned on.

Here is a video tutorial I made: Croissant Ring Blender Tutorial - Rumble
Hope it helps! If you need text based steps, I can do that.


text:
Can't see anything in final render

So the problem is pretty obvious, how do I fix my render? I have checked the transparencies, the "don't show this obj in render", the layers and the light is working.

It's good that you have checked other answers but amount of information in your question isn't enough regardless. As rendered image is called Composite then compositing took place. What is in your compositor? What's inside of Video Sequence editor if any? Maybe upload a file on the blend-exchange but add screenshots as well

I have gone thru all the fixes but none of them work

Check the VSE and compositor. https://blender.stackexchange.com/a/54184/2217

Was away for a while, added the link now


text:
What is causing these black spots and how do I get rid of them?

What is causing the odd black spots and how do I get rid of them? Any ideas?
(Here's a picture of what I'm talking about circled in red)

Hm...maybe a lighting issue? And by the way, how did you get the Minecraft model out of the game? (Just curious. :))

I used mineways and mcprep! Look up Black Plasma Studio's tutorial on minecraft animations for more info.

It could be z-fighting (so check overlapping faces) or, more likely, an insufficient number of transparent bounces. Could you show the material nodetree for the grass/shrub object=

Cool, thanks for sharing! I didn't even know you could do that.

There, I added the nodes


text:
How to remove unwanted mesh generated with subdivision surface modifier
I want to make a model for a game with Blender, right now I am making an escape pod for a spaceship, just the basic mesh structure that will have a texture (which I will figure out if there's any problems later), but here's the problem, I am getting an unwanted corner mesh when making the doorway into the pod.
Couldn't post a picture here, sorry
But I have tried making more cuts and they don't work when using them to cut down the mesh, here is the blend file:
PS:(It is happening to all four corners of the doorway so it'll most likely work for all if it works with one)
Here's a blend without all the cuts if it makes it easier:  NOTE: The nose cone isn't done in this version!

It's best to add your .blend files to your question using http://blend-exchange.giantcowfilms.com/

Ok I will remember that for next time

For posting pictures please see: https://meta.stackexchange.com/questions/75491/how-to-upload-an-image-to-a-post

Ray Mairlot - I know how to, it's just a limit happened, cause I'm new to the community;
Dimali - Ok, I looked at it, I will close this, I just didn't find it the first time, sorry, but thanks

@how_to_LoL_u If you want a user to get notified of a comment you have to '@' them, e.g. '@RayMairlot'.


text:
Building Blender - single lib folder for many different builds?
I need to build several independent "variants" of Blender (differently modified sources for the same target platform) and would like to use the same "lib" folder for all of them.
I cannot place them in the same "root" folder with the lib folder (the usual folder structure).
Essentially, I would like to have something like this:
MyBlenderDEVroot
   lib               <- this is where I'd like to have lib folder
   Variant1
      blender        <- Blender sources
      builds         <- build output folder
      mydocs
      mystuff
   Variant2
      blender        <- Blender sources
      builds         <- build output folder
      mydocs
      mystuff

I know that I can have differently named "blender" and "builds" folders (like blender_v1, builds_v1, blender_v2, builds_v2, etc.) in the same root but I want them fully separated.
I am targeting Windows and I use VS2013 with CMake.
I have no problems building Blender the "normal" way, just would like to avoid having the same mutli-GB lib folder repeated all over the place.

OK, I figured it out my self.
There are couple of lines in CMakeLists.txt that set the path to the lib folder one level relative to the source files folder (carried by the CMAKE_SOURCE_DIR variable).
To make it work with my example folder structure simply adding one more level solved the problem:
    if(NOT DEFINED LIBDIR)
        # Setup 64bit and 64bit windows systems
        if(CMAKE_CL_64)
            message(STATUS "64 bit compiler detected.")
            set(LIBDIR ${CMAKE_SOURCE_DIR}/../../lib/win64_vc12)
        else()
            message(STATUS "32 bit compiler detected.")
            set(LIBDIR ${CMAKE_SOURCE_DIR}/../../lib/windows_vc12)
        endif()
    else()
        message(STATUS using LIBDIR  ${LIBDIR})
    endif()

My real folder structure was a bit more complex and the common lib location was off the branch with sources so I made it a bit more complicated:
    # added this near the top of CMakeLists.txt for easy reference
    if(WIN32)
        set(COMMON_LIBPATH "C:/some_complex_path/CommonStuff/Blender/lib")
    endif()

    ...

    if(NOT DEFINED LIBDIR)
        # Setup 64bit and 64bit windows systems
        if(CMAKE_CL_64)
            message(STATUS "64 bit compiler detected.")
            if(COMMON_LIBPATH)
                message(STATUS "Using common lib path: " ${COMMON_LIBPATH})
                set(LIBDIR ${COMMON_LIBPATH}/../lib/win64_vc12)
            else()
                set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/win64_vc12)
            endif()
        else()
            message(STATUS "32 bit compiler detected.")
            if(COMMON_LIBPATH)
                message(STATUS "Using common lib path: " ${COMMON_LIBPATH})
                set(LIBDIR ${COMMON_LIBPATH}/../lib/windows_vc12)
            else()
                set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/windows_vc12)
            endif()
        endif()
    else()
        message(STATUS using LIBDIR  ${LIBDIR})
    endif()

You have to edit the CMakeLists.txt file in each source code folder (e.g. the standard "blender" folder).
As I am targeting Windows this applies to, you guessed it, Windows.

The way I did it is I made a symlink in each build folder mklink /D lib "Path to lib folder" in windows 10


text:
How to make a curve segment perpendicular to a face?
I need to make a curve that "exits" straight out of (perpendicular to) a face.
I can manually make it perpendicular by manually manipulating the handle (Bezier) or the first segment (Nurbs) but I assume there is a simpler way to do it.
I've been fiddling with this for over an hour but could not figure it out.
I did figure out how to make it exit parallel to the surface (by snapping the handle or segment to the face) but not perpendicular.
Can someone show me the way, please?
I'm interested to learn how to do it both with Bezier and Nurbs curves.
Edit:
I figured out how to do it when the face is aligned with global axes (snap a handle to the face, then translate it along the axis perpendicular to the face), however, I still cannot figure out how to do it when the face is not aligned with global axes.
I suppose I need to find out how to align to local axes of that face while editing the curve. Is that even possible?
Edit 2:
This is how it looks (and how I meant it to be) with Duarte's third method (notice the snap options and transformation orientation option being Local):

Please add an image to clarify your final goal.  Would particles as emitter or hair be useful to you?

@atomicbezierslinger, I need this on a single face. Duarte got it right in his third method - I'm waiting for him to add couple of steps to make it a full answer before I accept it. I wouldn't dare edit an answer of someone with high reputation ;)

I don't know how to do this, but I saw an addon that allows you to do this.
https://gum.co/curve-array-pro

Unfortunately Blender isn't great for precision modelling as it currently stands, and it becomes even more difficult with bezier curves. That being said you can achieve most operations even if it is an involved and time consuming process.
You could try one of three methods

Enter Edit Mode on your mesh
Select the face you want to make the curve perpendicular to
Snap the cursor to it
Add a curve there
Enter Edit Mode in the curve
Make both handle types Vector
Move the starting point of the curve to local coordinate $0,0,0$
Now exit Edit Mode of the curve and enter edit mode in the mesh
Extrude previously selected face (this is a temporary hack)
Now snap the cursor to the newly created face
You can now undo the extrusion and exit edit mode
Enter Edit Mode on the previously created curve and snap the end point to the cursor
Profit!

The con of this method is the curve's axis wont be properly oriented to be perpendicular to the face, only the segment, so you couldn't easily convert it to a bi dimensional 2D curve (if that is what you want).
Also it can be time consuming and become unpractical for many iterations.

This second method is my favorite and as the advantage to leave your curve properly oriented, however it can become inadequate if you only want a few instances.

Snap the cursor to the object whose face you want to make the curve perpendicular to (not the single face)
Add a curve there
Enter edit mode and make it's vertex start at $0,0,0$ and end at $0,0,1$
Now exit Edit Mode and parent the curve to the mesh
Select the mesh object and in the Properties Window > Object > Duplication enable Face duplication
Now make the curves independent objects with the operator "Make Duplicates Real*
Profit!

Third method is the simplest using snapping, but may give inaccurate results because Blender may average the normals of surrounding vertex

Turn on Align the rotation with the snapping target option at the bottom of the 3D View right next to the snap options
Switch to  Snap to Faces mode
Add a new curve
Move it with G and use snapping to align it to the surface normal as you move it around by pressing Ctrl while grabbing.
If you turn on "Project individual elements on the surface of other objects" option (also next to the snap options), the curve will orient itself to the surface (no need for pressing Ctrl).
Enter Edit Mode in the curve
Translate one curve endpoint to the face
Switch to  Snap to Vertex mode
Translate handle point (or second point for Nurbs) to the point from step 6
Translate the same point along the $Z$ axis to get a perpendicular start/segment
Grand Total profit!

thanks, I need just one curve so the second method is out for me. The first method looks like something I could use. Is there a way to use normal axes of a face for alignment without editing that object?

You could try the "Align the rotation with the snapping target" option at the bottom of the 3D view right next to the snap options, along with "Snap to Faces" but I'm not sure how well it will work, as it may try to average the local vertex normals, and not be perfectly perpendicular to the faces.

thanks for suggestion, that worked! It really aligns curve's axes to the face it snaps to. Then the first segment can be easily made perpendicular (by translating control point along Y axis). Can you edit your answer to include this, so I can accept it?

Sure, it's done added a third option.

OK, great, just add that having "Project individual elements on the surface of other objects" turned on replaces need for pressing Ctrl and add the steps for making the curve perpendicular: 5. translate curve end point to the face (Snap to Face), 6. translate handle point (or second point for Nurbs) to the end point (Snap to Vertex), 7. translate same handle/second point along the Z axis to get perpendicular start/segment :)

As Duarte did not respond yet, I dared to edit the post to round up his third method.
Will accept as soon my edit is approved. :)

Ah thanks for the edit, I was not sure what you meant by that.

This is a fairly basic task involving snapping.
Firstly, Tab into edit mode on the mesh and select the face you wish the curve to 'exit' from.  Press Ctrl + Alt + Space to create a new transformation orientation aligned with this face.  This defines the perpendicular direction in which you want the curve to 'exit' the face.
Next, Tab into edit mode on the curve.  Enable vertex snapping and select the curve point you wish to position.  and hover the mouse over three vertices of the face you wish to align to and press A.  With the mouse over the last face vertex left click to snap to the averaged position of all four points - i.e. the centre of the face.
Next align the Bezier handles to the predefined face normal direction.  To do this, select a handle and snap it to the curve point.  Then drag the transform manipulator Z-axis widget to move the handle along the face normal which we defined earlier.

The curve should now exit from the centre of the face in the direction of the face normal.

Thanks, Xtremity! This is similar to the third solution by Duarte, being same from step 5 on. Creating new transformation orientation aligned with a face is certainly a new discovery for me, hence the upvote. However, I'm not sure I want to create new transformation orientation every time I do this so the accept goes to Duarte's solution after all.

I confess I didn't read the other answers as they seemed a little overly complicated for what is really a bread-and-butter operation.
Pressing Ctrl+Alt+Space with the 'Overwrite Previous' option means you can overwrite your custom orientation with one keystroke.

A Bezier Curve is the object particle to a particle system on a sphere. Emission Numer = 518 to match the faces.
A plane with a Emission Number = 1, particle system is an option.
Particle systems routinely use the geometric Normal to place particle objects
The Bezier Curve origin is set to the first on curve control point.
Particles systems can be made real by Pressing the Convert button in the modifier panel.  Keep the current selection or Select by various means.  The generated Bezier curves have a common name base.
Menu Object /Make Single User/ Object & Data.  So curves do not share data.  Suit to taste.  Image below.

A single Bezier Curve of 500 in edit mode.  Above.

Bezier Curve used as the object in Particle System Render Panel.  Click image for details.  Above.

Here's a (more idiot-proof?) way that I found to work this out:

Edit the curve so the starting point is at the origin and the other end somewhere above it. Make the handles in-line by selecting everything and scaling to 0 while using shift-Z to constrain.
Now switch to object mode. This is because the alignment option for snapping works here, despite not being available for curve handles in edit mode. (Annoying isn't it? Which is why you're looking here.)
Place curve object on your model via snapping with alignment turned on. (This is the "idiot-proof" part, no other tricks really.)
Starting point will now be aligned with the surface, so do whatever to the rest of curve in edit mode as desired.

Following steps are if you want both ends of a curve to align with parts of a mesh.
(1 through 3, same as above.)

If you want another end to do the same elsewhere, duplicate the same basic curve and snap it elsewhere onto the model's surface as with step 3.
Join the curve objects for the start and end points. (CTRL-J)
Go back into edit mode and select the ends that are away from the mesh, join them with F.
Since both ends are aligned with faces, you can now do whatever, and even delete the extra two vertices if you don't need them. Just remember not to move the handles on the ends to keep the alignment, scale them instead and use twist (CTRL-T) as needed.

authors: Оксана Овчарова


text:
Boolean Difference misbehaviour
This appears to be a perennial problem. None of the solutions I've read here so far work when I try them on this very simple geometry.
I am trying to perform a Boolean Difference on Cube.001 using Cube.002
Whenever I attempt it, Cube.001 simply disappears.
I have checked for duplicate vertices, manifold geometry, and interior faces. I have set all normals outside.
What is it that I'm overlooking?

The .blend file is here: sdkfz3_15mm.blend

Working fine on my end, You problem is probably overlapping faces. Boolean operations don't like coplanar or coinciding faces. Check the base of the objects on the bottom, make sure they are not overlapping, give them some offset distance

Both objects have all their surfaces offset.

Their bottom faces are overlapping

They are overlapping (otherwise there would be no Difference possible) but they are not coplanar — I think you are looking at the wrong two objects. Cube.001 is the highlighted object, Cube.002 is the left-most object with the bevelled corner. Their bottom faces are offset by about 3mm.

I eventually got the Difference operation to work by triangulating both objects, performing the Boolean operation, and then doing a Limited Dissolve on Cube.001 to return it to quads.
I don't know precisely why that would work, unless maybe one or other object had one or more non-planar faces — but I would have thought that would have been shown by the check for manifold geometry.

It seems to be a bug, you really should report it here.

My bad, you are right, I was looking at the wrong objects, indeed it may be a bug. Somehow blender was unable to preform the operation, but subdividing the mesh or adding a loop vertically in the middle of to Cube.02 seems to work around the problem


text:
Fluid sim is not working right; water forms a flat table with an object, creates a large gap
I am running a fluid sim, with the idea that I would create an animation with a box inside a small stream. I have carved a small stream path into a plane, and created a number of rocks by using the Particle-Hair system.
I have removed all double vertices and made the normals set to inside, the two things I have read cause a lot of fluid sim issues. Nonetheless, there is an issue. On the left side of the box, water will float high above the ground (set as an obstacle) then form a bridge in the air to the box using right angles and flat surfaces. I am unsure the reason for all of this. Any ideas? I tried moving the box farther away, the water still extends outward.


text:
Axis problem between a parent - child relationship
Hello blender community!
Just a question about a problem I have with axis of a child object.
It's two planes attach by a parent link to a cylinder.
Cylinder is the parent, the two planes are its child.
When I want to reduce one of my 3D plane (on the left) by moving his different faces in a perpendicular fashion, I can t find the perfect perpendicular axis (even with normal or local), because the center of "gravity" mix the one of the plane and the one of the cylinder...
After Shift+Ctrl+Alt+C, and "origin to geometry" when I selected the plane alone, It's still a problem...

And of course, if I remove the relationship between the plane and the cylinder by Alt+P the plane return on its original position (witch is far away ^^) and I lose its position information, even if I lock the location X/Y/Z in transform table...

So:
1) Is it possible to keep the position of the child object when you remove the relationship parent - child? Like that I will be able to have a good local axis of the plane.
2) Or do you have a solution to force the local axis of my plane to be as usual without noticing his relationship with the cylinder?
Thank you very much for your help +++
I'm giving you the file to help.
The plane goes in an other direction after Alt + P because  of the rotation I have performed with an armature before I made it the child of the cylinder.

Could you upload a copy of your blend ? I tried to make something similar and couldn't reproduce the problem - everything worked well (with Global or Normal axis used, depending on the case)

The local spaces of the planes should stay normal, what you probably did was transform the planes in edit mode. For the manipulator problem go into the plane's edit mode, select the face, save the transforms orientation (http://blender.stackexchange.com/a/33320/7777) and choose this orientation in object mode to have it.

IT'S WORKING! thx Jerryno!


text:
How can we move meshes for dental occlusion?
Hello Blender community!
After getting help in an earlier post "How can put a mesh into a different position?", I'm stuck again...
I'm trying to find, with the CT facial scan of a patient, the good position for his lower jaw, using his teeth. If I find his dental occlusion (when all teeth are in contact), I find the position.
The problem in blender is that teeth of the lower jaw go through the teeth of the upper jaw If I'm trying to do it manually.... There is always a spot where meshes are overlapping each other.
Before:

After manual repositioning, you can see the top of the front teeth overlapping...

The idea is to find the position where there is the highest number of meshes from the lower and the upper jaw in contact at the top of the teeth,  but which don't join or overlap each other.
So is it possible to use a tool (like grease pencil to mark the meshes?) or an add-on (and precise Align add-on isn't working) to say to blender to find this good position?
Thank you so much for your precious help!
Edit:

it would be helpful if you could upload a copy of your ~.blend file to a site such as blend-exchange, and provide a link to the uploaded file in your answer. My personal hunch is that the solution to your question lies in manipulating the pivot point of the jaw, but I can't get enough information from you screen shots to make this a definitive answer.

In fact, using a pivot point could help me to move the jaws, but if you start from the position I'm looking for with is the position where the teeth statisticly most touching each other.

I only want to close the jaw.

I don't believe this can be done with precision having only the open-jaw position. For the future, you may try CT scanning both the open and closed positions - then you can overlay the open jaw mesh onto the rest position.
Also it doesn't help that we only have the left side of the jaw to work with in this scan.
But those issues aside, let's try to work with what we have for the sake of this test.
Techniques that may help:

Use the Mask Modifier to hide all of the mesh except the teeth. Get everything else out of the way. Use Grow Selection to select the verts in hard-to-reach places, then add them to the Vertex Group that is to be masked in.
Set the Origin Point of each object to be on the tooth with the largest surface area, which we know makes contact. That's a good starting point to start making adjustments to location and rotation of the object.
Turn on Backface Culling so that you can see (from behind) when teeth are intersecting.
Familiarize yourself with all of the rotation and location transform operations in Blender, because you will need to use them to get this even close to being correct.
Split your viewport to look at this from at least two different views at once. It will help you assess the position.

How enabling Back-face Culling can help:

Since I advised learning more about rotation, here are some quick rotation/transform tips:

Hitting R twice (RR) will give you a free-orbiting rotation that is often very helpful.
Familiarize yourself with the different Pivot types.
Knowing all of the Snap methods (ShiftS) will help you get your 3D Cursor wherever you want.
Anywhere your 3D Cursor can be, you can set your object's Origin Point to be there using ShiftCtrlAltC) or the button in your Tools Panel.
In addition to the standard Global orientation, at least learn Local and Normal as well if you haven't already.
ShiftCtrl + Num1, Num3, or Num7 will align your view to the Normal of a selected face.

Here's a .blend with some changes I made. I wouldn't call it accurate, just better than before. I'm not liable for how this is used. Please don't go building anyone's dental implants based on it. ;-)

Taking a CT scan with the teeth touching, makes segmenting out the upper and lower teeth very difficult because there is no area between the teeth for the marching cubes/region growing/ whatever technuque.  While you could use the sides of the jaws to register the separate meshes, it could still be messy.  The other reason not a good idea, it's really unnecessary exposure for the patient.

This is a minor improvement on Mentalist's answer.  Take an OPTICAL bite registration to scan in centric occlusion.   Then picked points and iterative closest point algorithm to align the meshes.

https://github.com/patmo141/object_alignment
http://blenderartists.org/forum/showthread.php?332665-iterative-closest-point-algorithm

Attempt to use a physics simulation to pull the teeth together and let them settle.  It's difficult!

Other than that, the answers Mentalist gave to assist you in manually aligning are the best.
-Patrick

I finally succeed by doing it with optical bite registration, and align it in Meshlab software in fact.
To difficult in blender.
So sad that your Dental Design Tools is no longer available... I find my way in orthognatic, reconstructive free flap surgery and implant by myself.
Is it still possible to have your add-on Patrick?

Oh yeah it's available!  https://github.com/patmo141/odc_public

also I have a forum for it, although it's not very active yet. https://www.zohodiscussions.com/blenderdental#Forum/general   and a wiki https://github.com/patmo141/odc_public/wiki


text:
Exported animation does not loop keyframes when using cyclic (F-Modifier)
I made an animation with keyframes ranging from frame 1 to frame 250. I select all the keyframes, press SHIFT + E and select Make Cyclic (F-Modifier). I set the final range frame to 5000. The animation correctly loops from frame 1 to frame 5000. I export to FBX, and import it again. The animation doesn't loop anymore until frame 5000, it stops after the frame 250. Why? How can I make Blender repeat the keyframes until frame 5000 when exporting?

try this:
right click on your object -> bake action, choose visual keying and choose the frame range you want to have. Then export.

It's exactly what needed to be done. In my case, I had to select both Pose and Object.

glad you made it!