text:
What units does the rotation argument expect when creating objects?
I want to create a lamp in blender using python. I want to give the lamp some rotation. As per the documentation I can set the initial rotation using a tuple of numbers in the function call like this rotation=(0.0, 0.0, 0.0)
this is the specifc documentation for the rotation parameter:
rotation: (float array of 3 items in [-inf, inf], (optional)) – Rotation, Rotation for the newly added object
What units is this parameter specified with? It does not seem to be in degrees or radian.
When I try with my example code here where I use rotation=(0, 1, 0) to get 1 degree on the y axis. I end up getting 57.296 degrees after running the code.
import bpy

bpy.ops.object.lamp_add(type='AREA', view_align=False, location=(0, 0, 0), rotation=(0, 1, 0), layers=(True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False))

It is using radians. 1 radian = 57.2957795 degrees. Without the need to import another module you can use a degree value with (3.14159 * degrees / 180) or just quickly import pi from math if you don't want to define it or you could alternatively use round(math.radians(degrees)).
import bpy
from math import pi

bpy.ops.object.lamp_add(type='AREA', ... ,  rotation=(0, (pi * degrees / 180), 0))

indeed it is radians

I recommend to from math import radians, degrees for two handy functions to convert back and forth.

Are the rotation angles meant to be Euler angles ? (I haven't had much luck finding this stated in the documentation and a search on this site led me to this question, so it seems the most appropriate place to ask, rather then generating a new question.)

@Carel Yep. Blender's rotation system implements a famous paper IIRC.

There is build-in functions for this purpose
import math
print math.radians(90)
print math.degrees(1.57)

They can be referred from the python mannual
https://docs.python.org/2/library/math.html
line 2 translate 90 degree to corresponding radian.
line 3 do the opposite thing to translate 1.57 rad to 90 degree.

Could you elaborate a bit on what those functions do and why they work, please?


text:
Use array values from a C++ program in blender
I have a C++ program which creates an array and stores the z-coordinates of the objects blender. How do make use of these values in the python script of blender? I surfed the net and found boost Python but not sure if it would work in blender.
Please suggest ways of doing this.

Save the array to a file and open, with Python, from within blender

How the array looks like [1,2,3]?

@poor yeah its a one dimeensional array

@someonewithpc how to open text file in blender?

@Ross Like you would with normal Python; check http://stackoverflow.com/questions/3277503/python-read-file-line-by-line-into-array

Please add some sample data

This seems more fitting for stackoverflow imo. It's not Blender specific.

You can print your cpp values to the console and execute the app with python's subprocess module. Here is a simple cpp program that outputs random x,y,z values:
#include <iostream>     // std::cout
#include <vector>       // std::vector
#include <ctime>        // std::time
#include <cstdlib>      // std::rand, std::srand

int main () {

  std::vector<float> z(10);
  float x = 0.171;
  float y = 0.324;

  // iteration to store random numbers
  std::srand (static_cast <unsigned> (std::time(0)));
  for (std::vector<float>::iterator i = z.begin(); i != z.end(); i++){
    *i = static_cast <float> (rand()) / static_cast <float> (RAND_MAX);
  }

  // iteration to print x y z values
  for (std::vector<float>::iterator i = z.begin(); i != z.end(); i++){
    std::cout << (*i * x) << " " << (*i * y) << " " << *i << "\n";
  }

  return 0;
}

The output should be something like this:
0.170636 0.32331 0.997869
0.0806884 0.152883 0.471862
0.0141332 0.0267788 0.0826505
...

Get the values
Use Popen.communicate() to read the output and split the lines as you like:
import subprocess

# path to the app
app = '/home/user/Desktop/app'

# communicate can read the data:
out, err = subprocess.Popen(app, stdout=subprocess.PIPE).communicate()

#  split the string by line
out = out.splitlines()
print (out)

# create lists
xValues, yValues, zValues = [],[],[]

# append the values to to the lists
for line in out:
    line = line.strip()
    columns = line.split()
    xValues.append(float(columns[0]))
    yValues.append(float(columns[1]))
    zValues.append(float(columns[2]))

# print the values
print (zValues)

Creating keyframes
Iterate through the z values, set the start frame, offset value (optional)  and use keyframe_insert in order to create keyframes for the selected object(s):
# get selected object
obj = bpy.context.active_object

# animation start frame
start_frame = 1

# frame value
frame_number = start_frame

# keyframe offset
offset = 3

# iterate through z values and apply them
for i in zvalues:
    # set the frame
    bpy.context.scene.frame_set(frame_number)
    # set new location
    obj.location = (0,0,i)
    # insert keyframe
    obj.keyframe_insert(data_path="location", index=-1)
    # add offset value
    frame_number += offset

Adjusting the timeline
To adjust the timeline use bpy.data.actions to get a list of actions in the scene and assign the last key value to bpy.context.scene.frame_end:
# get all actions
action_list = [action.frame_range for action in bpy.data.actions]

# sort, remove doubles and create a set
keys = (sorted(set([item for sublist in action_list for item in sublist])))

# assign new start frame
bpy.context.scene.frame_start = start_frame

# assign new end frame
bpy.context.scene.frame_end = keys[-1]

For more details see this answer: How to find number of animated frames in a scene via python?
Result

source: Stack Exchange

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

sort: votes


text:
Modify obj after import using python
I am trying to modify an object after importing it. This post is related to this question
import bpy
full_path_to_file = "C:\\Users\\xyz\\Documents\\test.obj"
bpy.ops.import_scene.obj(filepath=full_path_to_file)
# create the material
mat = bpy.data.materials.new('MaterialName')
mat.diffuse_color = (1.0,0.0,1.0)
mat.diffuse_shader = 'LAMBERT'
mat.diffuse_intensity = 1.0

# get the object
obj = bpy.data.objects['Cube']

# get the material
mat = bpy.data.materials['MaterialName']

# assign material to object
obj.data.materials.append(mat)

I wanted to add a material to the imported object but that is not happening. So I tried to scale it even that is not happening.
I realized that no operation is being performed on the imported objects. But the same operations are executing on the objects that are created (i.e. not imported).
Any help would be appreciated.

You try to get an object named 'Cube', are you sure that is what you want? I think the imported object should be named 'test', like the .obj file.

yeah the name I entered is right. First I just import the object, check its name and then type in the rest of the code so that wrong name isn't a problem

TLDR; Import operators like import_scene.obj() or import_scene.fbx() don’t return any object name(s) nor a reference as you might expect, they only return {'FINISHED'}.
>>> bpy.ops.import_scene.obj(filepath=</absolute/path/to/file.obj>)
{'FINISHED'}

Good news is all imported object(s) are selected right off the bat and we can get the reference(s) and name(s) after the import process either via bpy.context.object for one object or bpy.context.selected_objects in case the .obj file consists of multiple objects.
import bpy

# Call the obj import operator and pass the absolute file path
bpy.ops.import_scene.obj(filepath="/home/p2or/Desktop/foo.obj")

# Get the context object, print the name and its reference
obj = bpy.context.object
print(obj.name, ":", obj)

# Get all imported objects and print their names
objs = bpy.context.selected_objects
print(", ".join(o.name for o in objs))

Alternatively you can create a set from all objects in the scene bpy.context.scene.objects (t), create another set (s) right after the import process and subtract s from t, might take longer depending on how many objects coming in.
import bpy

# Create a set out of the objects in the current scene (unique by default)
objs = set(bpy.context.scene.objects)
bpy.ops.import_scene.obj(filepath="/home/p2or/Desktop/foo.obj")

# Substract all previous items from the current items and print their names
imported_objs = set(bpy.context.scene.objects) - objs
print(", ".join(o.name for o in imported_objs))

Basic demo
The following working example imports all meshes from the .obj file given, prints their names for error handling, creates a new demo material and assigns the material to all slots or appends a new slot (if there is none) for all incoming objects.
import bpy

bpy.ops.import_scene.obj(filepath="/home/p2or/Desktop/foo.obj")        # Linux
#bpy.ops.import_scene.obj(filepath="C:\\Users\\p2or\\Desktop\\foo.obj")# Windows
#bpy.ops.import_scene.obj(filepath="/Users/p2or/Desktop/foo.obj")      # MacOS

# Get all objects (create a copy of the entire list)
objs = bpy.context.selected_objects[:]

# Generate or get the material
material_name = 'MaterialName'
mat = bpy.data.materials.get(material_name)
if mat is None:
    mat = bpy.data.materials.new(material_name)

# Iterate through all imported objects
for obj in objs:
    # Print the actual name and reference
    # possibly modified since all names are unique
    print(obj.name, obj)
    # If there is no material slot append one with the (new) material
    if not len(obj.data.materials):
        obj.data.materials.append(mat)
    # Assign the (newly created) material to all existing slots
    for i in range(len(obj.data.materials)):
        obj.data.materials[i] = mat

# Edit the material viewport properties
mat.diffuse_color = (0,1,0,1) # Viewport color
mat.roughness = 1.0 # Viewport roughness
# .../api/current/bpy.types.Material.html#bpy.types.Material.diffuse_color

# Edit the material and create all nodes from scratch
mat.use_nodes = True
nodes = mat.node_tree.nodes
nodes.clear()
node_principled = nodes.new(type='ShaderNodeBsdfPrincipled')
node_principled.inputs['Base Color'].default_value = (1,0,0,1) # Shader Base Color
node_principled.location = 0,0
node_output = nodes.new(type='ShaderNodeOutputMaterial')
node_output.location = 400,0
links = mat.node_tree.links
link = links.new(node_principled.outputs["BSDF"], node_output.inputs["Surface"])
# .../api/current/bpy.types.NodeTree.html#bpy.types.NodeTree.nodes

Related

How to assign a new material to an object in the scene from Python?
Control Cycles/Eevee material nodes and material properties using python?
How to batch import Wavefront OBJ files?

For Blender 2.79 and earlier have a look into the revisions of this answer.

Thanks a lot for your help. I had been working on this for a week but without luck. Actually on importing there was a default material. Thus appednding only created the material but did not apply it to the faces. 'obj.data.materials[0] = mat' helped to get the texture on the object :)

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

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


text:
How do I get a python reference to the viewport camera?
I want do draw a line from one point to another using the blender opengl functions provided in bgl. Both points are in world coordinate system. I found a function in bpy_extras.object_utils called world_to_camera_view which needs a scene, a camera and a Vector of the point as a parameter.
I can get the scene from
bpy.context.scene

but how do I get the viewport camera?
Background: What I want to do is, to write a modal operator which lets the user move, rotate and zoom the camera in the viewport and the lines between the points in the viewport are drawn correctly. Its just an operator to learn drawing with bgl.

If you use 'PRE_VIEW' or 'POST_VIEW' as draw handler type, you will be in world space and can draw straight ahead. If you want to draw on top of everything ("X-Ray"), then calculate the 2d region coordinates and use 'POST_PIXEL' - there is a utility function for the conversion:
from bpy_extras.view3d_utils import location_3d_to_region_2d

Here is a quick example that draws a line between 3D cursor and active object origin, using 'POST_VIEW', which will consider depth of other objects ('PRE_VIEW' would draw under everything else):
import bpy
import bgl
import blf

def draw_callback_px(self, context):

    ob = context.object
    if ob is None:
        return

    font_id = 0  # XXX, need to find out how best to get this.

    # draw some text
    blf.position(font_id, 15, 30, 0)
    blf.size(font_id, 20, 72)
    blf.draw(font_id, ob.name)

    # 50% alpha, 2 pixel width line
    bgl.glEnable(bgl.GL_BLEND)
    bgl.glColor4f(1.0, 1.0, 1.0, 0.5)
    bgl.glLineWidth(2)

    bgl.glBegin(bgl.GL_LINE_STRIP)
    bgl.glVertex3f(*ob.matrix_world.translation)
    bgl.glVertex3f(*context.scene.cursor_location)
    bgl.glEnd()

    # restore opengl defaults
    bgl.glLineWidth(1)
    bgl.glDisable(bgl.GL_BLEND)
    bgl.glColor4f(0.0, 0.0, 0.0, 1.0)

class ModalDrawOperator(bpy.types.Operator):
    """Draw a line with the mouse"""
    bl_idname = "view3d.modal_operator"
    bl_label = "Simple Modal View3D Operator"

    def modal(self, context, event):
        context.area.tag_redraw()

        if event.type in {'RIGHTMOUSE', 'ESC'}:
            bpy.types.SpaceView3D.draw_handler_remove(self._handle, 'WINDOW')
            return {'CANCELLED'}

        return {'PASS_THROUGH'}

    def invoke(self, context, event):
        if context.area.type == 'VIEW_3D':
            # the arguments we pass the the callback
            args = (self, context)
            # Add the region OpenGL drawing callback
            # draw in view space with 'POST_VIEW' and 'PRE_VIEW'
            self._handle = bpy.types.SpaceView3D.draw_handler_add(draw_callback_px, args, 'WINDOW', 'POST_VIEW')

            self.mouse_path = []

            context.window_manager.modal_handler_add(self)
            return {'RUNNING_MODAL'}
        else:
            self.report({'WARNING'}, "View3D not found, cannot run operator")
            return {'CANCELLED'}

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

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

if __name__ == "__main__":
    register()

    for area in bpy.context.screen.areas:
        if area.type == 'VIEW_3D':
            bpy.ops.view3d.modal_operator({'area': area}, 'INVOKE_DEFAULT')
            break

Thanks for this snippet - works nicely, but I have a console output: "Context 'region' not found". Can't find the issue. Do you have an idea to get rid of this?

The operator invocation at the bottom uses a custom context, whose only attribute is 'area'. Thus, you receive a note about no region attribute found in the context. If you supply one, it will stop to print to console. It's usually not a problem to have these kinds of warnings printed however.

Ahhh. Makes sense - Thanks for your response!


text:
How change the Pie Menu Radius with python?
I want to change the pie menu radius using python,
after some search I can access to that propertie using:
bpy.types.UserPreferencesView.bl_rna.properties['pie_menu_radius'].

but I can't change it
some help please! :D

And similar can be done for all other items on the User-Preferences -> Interface tab. (Warning doesn't update the visible value on the UI until you move your mouse, or trigger ui redraw some other way)
import bpy
prefs = bpy.context.user_preferences
prefs.view.pie_menu_radius = 80

Note that this may not work in an addon unless you use some hack to delay the execution until a valid context is available to change the user preferences!

Updated in 2.8x find under context.preferences.view.pie_menu_radius


text:
Play/animate images, spritesheets or video files in 'template_icon_view'
I want to "play" some animation in this UI space, the  template_icon_view:

I can load all the images I want, for example:

I know that the gif format is not available.
I know the files with video format (.wmv, .mp4, .avi), can not be played, right?
Then I tested with sprite-sheet, but I can't select or split in each "frame":

Then I create operator that allow me change the image, but manually:
actual = wm["my_previews"]
total =wm["my_previews"]
contar=True
while contar:
    wm["my_previews"] = wm["my_previews"] +1
    if wm.my_previews == "":
        contar = False
    else:
        total +=1

wm["my_previews"] = wm["my_previews"]
if avanzar and actual <total:
    wm["my_previews"] = actual +1
elif (avanzar and actual == total):
    wm["my_previews"] = 0
elif avanzar==False and actual>0:
    wm["my_previews"] = actual -1
elif (avanzar==False and actual==0):
    wm["my_previews"] =total

But I can not do this automatically, because I can not update the template_icon_view and all my tries crash blender.
I try with time, thread:
while Play:

    wm["my_previews"] = wm["my_previews"] +1

    if wm.my_previews == "":
        wm["my_previews"] =0
        Play = False

    time.sleep(0.5)

z = threading.Thread(target=self.testplay(C, self.Play))
if self.Play:
    z.start()
else:
    z.stop()

I checked the Update options in different part of code and nothing works
bpy.context.view_layer.update()
dg =bpy.context.evaluated_depsgraph_get()
dg.update()

Any ideas? Maybe I'm in the wrong UI space to achieve my goal?
Actually, I was thinking of loading some blender files with the animations, but also I can't play that in the template_icon_view.

Must it be looped endlessly?

@NoobCat I thought the same,  but the blender interface is frozen until the process is finished

You can create a separate thread for it. That is how game engines work.

I Don't want it for GE @Bruk. Actually do yo have Some code example?

@yhoyo I was just saying game engines use that method they calculate physics and other stuff while animating. The reason blender's UI froze is because it have to finish drawing before it can update and since you are running an infinite loop it will never update thus it froze. If you call animate function which update the image and set a timer to call  it based upon the frame rate of your animation you can get it working. Here is a link to about timers https://realpython.com/intro-to-python-threading/#timer.

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


text:
Curve modifier only follows first Spline of a Curve Object
I have beads along a curve (with array modifier+curve modifier). It works fine and forms a necklace. However, I want to have several subpaths (correct name?) to make up the curve.
I am trying to make a necklace like this:

I would like to use one curve for all segments with similar beads. But only the first subpath in the curve is used.
Like this. You see several curves and arrays. The selected curve is duplicated in edit mode, so it consists of two subpaths. But the beads only follow the first.

EDIT: I want each curve to be slightly different to not make it repetitive. I want to make it look hand crafted.

Thanks but it will be to repetitive (question clarified).

I assume it is not possible. Anyone care to confirm?

I think you can use a mix of arrays for repetition, particles to get some randomness in shapes for individual gems and a shader with some variations (factor a mix with input/object info/random node) in visual aspect.

Yes, this appears to be a limitation of the current Curve Deform modifier. It will only notice the first Spline, The Curve can have multiple segments but as soon as there's a gap then infact the Curve object internally is made from two splines, etc.
If you think this is a bug you can file a bug report to see what the developers say.


text:
Can't move objects in the scene

Got so far with this scene then all of a sudden I'm stuck. I can select objects in both object and edit mode but they will not move. If I select an object in edit object mode and scale it the entire scene scales, not just the selected object Any ideas? Thanks

You've enabled the Proportional Editing option, which may explain, if you enable it in Object mode it won't enable it in Edit mode though

Apart from Proportional Editing you have also enabled Snapping. Do the objects not move at all or are they not moving smoothly... like snapping to increments?


text:
How do I cut a hole in a face

I'm using blender to design a paper model house. I'm using the export -> paper model add on.
In the image below, I have a cuboid chimney running up through a roof. How do I make a matching hole in the roof face? Thanks!

or boolean modifier

https://blender.stackexchange.com/questions/7928/how-would-you-cut-a-shape-out-of-an-object-using-another-object https://blender.stackexchange.com/questions/50538/how-to-cut-an-object-along-a-curve https://blender.stackexchange.com/questions/63719/cut-out-surplus-material

I've added an answer in the link given by Duarte that may fit your needs if the chimney mesh is part of the same object


text:
How to reflect individual bone axis?
I don't want to change the bone roll, that doesn't accomplish anything.
When I have a bone, I want the Y and Z axis to stay the same, but I want the X axis to reflect across the local Y axis. If I try and change the bone roll, it always changes both the Z and X at the same time, even though all I want to do is flip the X axis of the bone in edit mode. "Switch Direction" almost accomplishes this, except then it reverse the head and tail location.

Can you upload an image describing what you mean? I'm am not sure how you mean but if you are trying to make the axis left handed, you can't.
Otherwise it's just a -+90 degree bone roll.

Why "can't" you though? In all these years no one thought to simply have a reflection option?

Blender is pretty inflexible in that regard, it's designed around having the bone's forward vector be Y+ and will mirror by just moving the bone head and tail resulting in similar rotation on both sides. Even if you tried to do this by hand in Edit Mode via scaling, it really just moves the head and tail in such a way that you cannot flip the bone scale-wise.
In other packages, I personally like the scale technique that mirrors the axes nicely. But ultimately all these decisions should be driven by which Software you'll be using to animate. What you do will have an impact on how the manipulators will behave when you select both sides at the same time and try to modify them.

I haven't got a full picture of what you want to accomplish with this but:
What you can do is to have an armature that is scaled to -1 on one axis. That will give you an inverted coordinate system inside that. You could then drive bones on the deforming armature with those bones.
AFAIK bones will end up as matrices that deforms the mesh. Having a negatively  scaled matrix on one bone will also scale the deformation accordingly. By using a controlling bone that exist in another coordinate system, this problem will be limited to a non deforming armature, and this is fine.

But then that scales every other bone the same way, so relatively nothing changed at all.

I do not understand your need an can therefore not help you further.


text:
Why can't I undo any more?
Yesterday Blender was working fine. Today it isn't recording any history, I can't undo anything. Also, when I add a new mesh, all the options in the Operator section of the Tool Shelf are grayed out, I can't do anything with them.
I checked User Preferences, it shows 32 steps in the Undo section of the Editing tab. I tried undoing by the Ctrl+Z shortcut, pressing the "Undo" button in the Tool Shelf, and clicking on the "Undo history" button, which does nothing. I tried closing Blender and opening it again. Rebooting does nothing. It was working fine yesterday. I have 2.76 running on Ubuntu 14.04 64-bit.
I need to go ask elsewhere how to check the most recent changes to my system - the system's software updater downloaded 40-odd MB of stuff this morning, but I don't know what it was.
Should this be reported as a bug?
Should I uninstall and reinstall Blender? When I open it, the mini-splash screen has a date and time in the top right corner - I'm guessing that indicates the last time the program was changed by an update. That date is a week ago, so that isn't it. Does that definitively mean the problem is with my OS?

Does this help? http://blender.stackexchange.com/questions/8262/what-is-causing-disabled-options-when-adding-a-mesh-curve-object-to-the-scene

@RayMairlot yes, that got me everything back! Yay! But I'm pretty sure it was never checked, so why would it be making a difference now? And surely it doesn't have to be checked for basic functions to work.

@RayMairlot Based on the linked question, this has to do with some add-on I recently used. I opened the file i was working on last night, and there is nothing there that involved an add-on, other than Extra Objects, and that was there most of yesterday and caused no issue. Maybe i should edit that into the question.

I think it must have been checked and somehow got un-checked when you returned to the file. If it hadn't been turned on you would have had the problems in your question right from the start. As to what might have caused this, I don't know.

@RayMairlot So Global Undo is checked by default? It's a case where you can uncheck it if you have a situation where you need all the memory you can get? I have an intermittent mouse lag problem, i could certainly have unchecked it unintentionally without noticing, i was in that section a couple of times yesterday.

I don't know of reasons to disable it, but yes, it is turned on by default.


text:
How to bake glass material in cycles?
I am trying to bake the texture of a simple bottle using cycles. The node set up is shown in the image. The transparency never bakes on to the image and always shows up as opaque.

I want to export the mesh and the image.
Any idea how this can be fixed?

Manually setting the alpha using the compositor (or just changing the image opacity in gimp) would be the easiest solution - I think the opacity would be consistent anyway.

This isn't quite possible, as the "transparency" of the glass shader is not alpha transparency, but path traced refraction. You should be able to use a holdout shader to get a result as close as I think you could hope for, but probably not what you are expecting (See http://blender.stackexchange.com/q/12100/599), but this doesn't seem to work at all when baking..

The holdout shader only works to render it right in blender. But the baking issue is still remains unresolved.

I think that baking only works for lighting on solid surfaces, as it is used for textures. The nature of glass makes it impossible to bake it in this way, as when you move the camera the light being transmitted through is different, which can not be recorded in an image. This could theoretically be implemented in future, but is not currently supported.


text:
How to make redo last pop-up to not disappear after cursor moved out?
I would like to have this window permanently on screen

You can only have it onscreen permanently by having the toolbar open, see: http://blender.stackexchange.com/questions/9100/is-it-possible-to-get-back-to-add-mode/9101#9101

I need separate window for this, T panel  becomes too messy, i dont want expand top or bottom part of panel every time i need some tool.


text:
How can I move the horizon line?
I used world texture to make the sky in my scene, but when I render it, there is a gap from sky to objects in the scene. This is what I mean:

How can I move down the horizon line? Is there another way to set the sky? Because I want the feel the scene is in a place high in the sky.
I am using Blender internal render.

What kind of sky/texture is it? A equirectangular panorama? A sphere map? A flat 2D texture?

It's a sky map image 12.000 x 3.000, from here: http://www.turbosquid.com/FullPreview/Index.cfm/ID/659732

if you are using cycles:
In the node editor, add an input > texture coordinate node and a vector > mapping node.  Plug the generated output of the texture coordinate node into the vector input of the mapping node and the vector output of the mapping node into the vector input of the environment texture node.  You can then tweak the values on the mapping node to move, scale, and rotate the environment texture.

What about using BI?

Changing the size and position of sky textures in the blender internal is as simple as changing a value.
Go to the Texture tab of the Properties window. Scroll down to the Mapping category, then increase the Y value for the Offset.
If you then have a problem of the image missing from the top, you can scale it up with the Size values.


text:
Blender slaves timeout after rendring few or part of frame
I have a setup of 4 slaves and the master for the netrender. I also have slave on the master itself. After sending the job, through client, frames are properly dispatched and we could see the blender render process on each machine. After some time, all slaves start throwing timeout errors except for the slave on the master. Eventually the only slave working remains the slave on the master machine. I guess it is something related to http timeout. I couldn't figure out why this is happening. any help is appreciated. I could also edit master.py or any other script as a workaround. System Ubuntu, blender 2.7 on all machines.

What OS are you using on slaves


text:
Trouble selecting correct object in viewport
After switching from Maya to Blender I noticed that I can't select meshes as precisely as in Maya.
In Maya you select exactly what you clicked on, it doesn't matter how far the object is from the camera, you always get what you clicked on. In Blender it's fairly hard to select a specific mesh among other meshes, it seems Blender is trying to "help" me and correct my selection (like auto-aim in FPS games on console). I spend too much time trying to select the right mesh. Its not only time consuming, but also very annoying. I have to switch between shaded and wireframe modes, sometimes use strong zoom and hide functions to select the right mesh.
Is there a way to switch this "auto-aim" selection off? I would like to be able to select meshes just like in any other 3D program, by clicking exactly on them.

This isn't exactly a perfect solution to your problem, but if you alt + right click it will give you a list of objects under the cursor from which you can pick one to select.

I am not having this issue. Care to share the blend file?

Not exactly sure what you mean by "auto aim". I haven't noticed anything like that, but there have been some changes to the selection system lately mostly relating to AMD graphics cards. Is it possible you could upload a gif or video demonstrating the "auto aim" behavior?

You can also try changing the selection mode under User Preferences.  There are two options available now for selection.

OpenGL Select
OpenGL Occlusion Queries

OpenGL Occlusion Queries is the newer, and faster method which seems to work better on AMD Radeon GPUS.

You can also use shift+b to draw-out a rectangular selection that will cause the view to zoom in on the selected location.   Picking objects tends to work better when you are zoomed in closer.
shift+c will zoom out out to fit the scene.  Using these two shortcuts, you can quickly navigate to whatever object you would like to select and work on.

There are multiple ways to go about this problem;
The ones I would recommend are to either Alt + RMB (depending on your setting for selection, you might want to use LMB), which shows you a list of all the objects under the mouse and you can use to select - however you need to know the name of the object;
There other way is to press Ctrl + RMB which selects the object which's origin is closer to the mouse cursor, ignoring the depth check - meaning you can select an object through any other, using this method.

Blender cycles through all the objects considered under the cursor when you click  LMB (or whatever you are using for selection) multiple times.
In this example I'm repeatedly clicking on the front Suzanne in the view on the left. As you can see, it cycles through selecting all the objects behind under the cursor:

As mentioned by someonewithpc, you can get a list of all the objects being cycled through with ⎇ Alt LMB.

One way (in Edit Mode) is to place your cursor over the mesh you wish to select and press L.
I would refer you to this link as well:
Selecting - how to differentiate "elements"?


text:
Face writing wrong
I tried export with other includes can't think of anything more
It exports faces like so:
f 65//37 59//37 63//37
But the exported faces should look like this:
f 85/397/131 89/402/136 90/406/140

so what are you asking?

What exactly is writing the faces?

What are you asking?

Check the OBJ spec, this is in fact correct.

When you try to export object to .obj file format (http://en.wikipedia.org/wiki/Wavefront_.obj_file), then exporter has several options:

One option is "Write Normals". When you will have mesh UV unwrapped too, then it will be exported in expected variant of obj file format. Double slash is there for compatibility with some other application (Rhino?).


text:
Duplicating surface of cube adds a circle to it
I have recently started learning 3D modelling in Blender and I am making model of a Rubik's Cube.
Here is what I have done:

Added Bevel and Subdivision Surface to the default cube for smoothing its edges.
Duplicated one face of cube so that I can color it.

But when I duplicate the face it gives me a circle on top of that side instead of exactly duplicating the face. What am I doing wrong?
Here is what I am getting:

EDIT: I am duplicating the face because I want to keep the grey boundary while apply the material in central area. I solved the problem mentioned above by adding 4 loop cuts to the face. But when I apply color on faces they all appear kinda jittery when I rotate the cube. Can anyone tell me why is that so?

This is because when you duplicate the face, it is now a flat plane and the subdivision surface modifier is treating it as a separate mesh and rounding it.

To get around this, you can disable or hide the modifier while working by clicking the eye icon  on the Subsurf modifier.
If I also understand what you are trying to do, it's also worth noting that you don't need to duplicate the face to apply a material to it or to modify it specifically. Objects can have multiple materials in Blender. You can go to the material tab, select a specific face, add a new material and apply it specifically to that face by clicking Assign.

I have solved this problem by adding loop cuts to the face. However there is another problem I am facing, can you help me with that? I have edited the question.

@TehreemFatima Please ask it as a separate followup question and share the blend file as well.

There's a good link here that explains the Catmull-Clark subdivision algorithm that's being used when you add a subsurf modifier:
http://www.idav.ucdavis.edu/education/CAGDNotes/Catmull-Clark/Catmull-Clark.html


text:
How can I keep a single frame of a smoke cache?
I have an 8GB smoke sim cache directory for 250 frames.
I only want the sim results for frame 15 - 13mb.
How can I just retain this single frame across the 250 frames of the file? I guess a kind of bake of a bake. Or converting this frame smoke to an object making it a static element?

Blender 2.81 (not mantaflow)

This solution works but was probably never designed to work like this, therefore I can't guarantee that it's a stable workflow. It was stable enough when I tested it anyway.

Unfortunately, you should have already baked your smoke simulation using "External", otherwise you'll need to bake it again. Choose a directory for your bake to go to (e.g. //cache)

After you've baked, in //cache you will have several files called _<frame>_00.bphys. Copy the file corresponding to your selected frame, and paste it into a new directory //cache2, changing its name to _000001_00.bphys.
Note down the dimensions of your smoke domain, and create a new cube with exactly the same dimensions. You can now remove your original smoke domain.
In the newly created object, enable Smoke, set its type to Domain. Under Cache check External and use //cache2 as its Path. Simulation "End" gets automatically reduced to 1.

The object now holds the smoke information from only the selected frame and, as far as I've seen, it doesn't try to overwrite your cache or to add new frames to it.
The original //cache folder, containing all your bake and the unnecessary frames, can now be removed (but I'd keep it as a backup, at least the first N frames, where N is the frame you've picked)

Blender 2.82 (Mantaflow)
For Blender 2.82 and Mantaflow this is fairly straight forward. Simply delete the files from the simulation cache which have the frame number in their name that you would like to remove.

The cache directory will contain two subdirectories config and data which contain the per frame simulation files.
The config directory will contain files with the prefix config_, followed by the frame number and the file extension depending on the Data File Format you've chosen (.uni, .vdb or .raw).
The data directory contains the simulation data for various physical properties. Like the config files they have a prefix, followed by the frame number and the file extension from the Data File Format. The prefixes are:

density_
densityIn_
emissionIn_
flags_
heat_
heatIn_
phiIn_
phiOut_
shadow_
vel_

Make sure to consistently delete all files for a frame that you want to remove.
In order to render the smoke, you will have to set the current frame in the timeline to one of the frame numbers you haven't deleted.
The cached smoke simulation can be transferred to other objects as well, you only need to configure them as fluid domain, apply the same material and select the cache directory.

This answer is meant as an addition to Nicola's answer. Please keep in mind that the Mantaflow integration has some rough edges at the time of writing.

You can insert keyframes for simulation visibility. Toggle the visibility button for the smoke sim to be off at frame 14 then insert keyframe. Then at frame 15 toggle visibility on then insert keyframe. Finally at frame 16, turn it off again and insert keyframe. It should not keep any of the cached data except for that single frame. FYI it will not show up on any other frames, just that one.

I don't think you can maintain the single frame across the entire animation, but this is an easy way to keep one frame.

But you can mimic it by manually toggling the visibility on and off at each frame. It should stay the same.

Very interesting idea. Will try this as I know I'm going to eventually need more than one sim in any particular scene.

This is actually extremely easy to do: once your smoke simulation is at the frame you want to keep, select the smoke flow object, and apply the smoke modifier. This will keep all of the smoke data for that one frame, but will not save any data for the other frames. I also noticed that if you move the frames, the smoke will gradually disappear. You may want to do this once your scene is almost complete.

Make sure that it IS the smoke flow object, because if you apply the smoke modifier to the domain, everything smoke-related in your scene will lose it's smoke data.

While this may look like it's working, it's not, or at least is very unstable! It just removes the flow object from the Smoke world. The domain will keep trying to simulate the smoke (with no flow object) as soon as you play the animation again in the right circumstances (that's why it "gradually disappears"). Also, the moment you move or manipulate the domain object in any way, everything is lost!

Actually, if you save the file and open it again, your smoke will be gone

Which is why I said to do this when your scene is almost done.

OP is probably thinking about liquid simulations


text:
Does an .obj file exported from Blender contain a texture?
I searched online for the question about whether an .obj file contains a   texture. Some people said that we can extract textures from the .obj file, some said that the .obj file only stores geometry data and does not keep any materials and textures. Some online tutorials said "Export the model together with the texture into the obj file". When I study the example from three.js, the script takes the texture file and the obj file separately. So, it is so confusing as to whether the .obj file exported from Blender contains a texture.

When you export an obj from blender, it creates a .obj and a .mtl file.  As I understand it, the .obj file contains the geometry data and the .mtl file contains the texture data.  So as long as you keep the .obj file, the .mtl file, and the textures together, your model should retain its texture.

For some examples, I see there are also .dds files. When I delete it, the texture is gone. However, there is no .dss files generated after export. So, it is necessary to have .dds files for the rendering?

@CasperLIWaiKin  a .dds file is a Microsoft format for storing data compressed with the proprietary S3 Texture Compression (S3TC) algorithm, so it is possible that image is your texture.  If that is the case than yes, you would need to keep it.

Can Blender generate .dds file?

I don't think so.


text:
Why does an object with a particle system not appear in the render?
I have a project, and it has an object that has always rendered correctly, but one day when I open the project and make a test render, the object has disappeared. All the settings are normal, the object, and all of its children render display in the object outliner set to true. I really don't know what happened to it. Can someone tell me what I should look through to diagnose it?
Sorry I cannot provide much detail. What I've explained is all I know.
Edit: I am uploading the .blend file at http://www.pasteall.org/blend/34719
This is a Minecraft scene. It is the wolf that doesn't render. At one point it did, but now it just won't. The wolf has particle properties. I don't know if that matters, but it could. Look through all the wolf's properties to try and figure it out.

You will need to upload the .blend file. Try pasteall.org/blend

background shader maybe?

Your object is emiting particles, but you have to check "Show Emitter" in particles render settings to make it renderable:
Blender 2.8+

Blender 2.7x

Tick Show Emitter in the instancing tab.


text:
How do I get the 'Filepath' attribute from a sound strip in the VSE?
How do I get the filepath attribute from a sound strip of a video sequence ? I am talking about the sound strip that comes with a video file.
Sound strip : demo.001 bpy.data.scenes['Scene'].sequence_editor.sequences_all["demo.001"].filepath
==> 'SoundSequence' object has no attribute 'filepath'
I can get the filepath from the associated video strip.
Video strip : demo.avi bpy.data.scenes['Scene'].sequence_editor.sequences_all["demo.avi"].filepath
==> this works

You need to access the sound property of that strip which has the filepath property:
bpy.data.scenes['Scene'].sequence_editor.sequences_all["demo.001"].sound.filepath

Thanks Ray ! It works ! How did u know ??

Values in the api are more often than not, represented in the UI as well, which may give hints as to where it might be in the UI. In this case, the filepath in the UI is listed as a property of a sound object (looking at its python tooltip), so I then looked for a sound property on the sequence strip.

Clever... well, thanks again ! I learnt two things today :-)


text:
Blender opens to some crazy colors
I'm on an older mac and am running into an issue trying to open Blender RC2. I have iOS 10.11.6. I downloaded Blender and when opening I get a lot of pastel color gradients over most of the UI. Anyone else run into this issue? Some Google-ing didn't turn up anything. Thanks!

Can you add which Mac model you have, also is everything up to date?

It's a mac pro from 2009. Everything is as up to date as hardware will allow.

It could be that your card isn't supported. Check your OpenGL version, and the requirements for your version of blender.

Yep, looks like my iOS does not support the newer OpenGL.
https://code.blender.org/2019/04/supported-gpus-in-blender-2-80/
Thanks for the tip Jorge!


text:
"Chocolate truffles" in Cycles
I'd like to create a chocolate truffle (using Cycles), like in these images:

And I'd like to figure out how to have some of the cocoa powder fall off when this 'truffle' falls onto a plane.
Sorry for the lack of Blender files or for more detailed explanation, but I was just baffled trying to figure this out on my own.

Well, I have tried using particle physics, but the particles (although they seem to be the only option) were a bit difficult to style like cocoa powder... then I tried smoke physics, but that went very weird.

It seems almost a question of how one could render particles like dust/cocoa powder.

Increase the roughness on the diffuse shader.


text:
Can I save the baking cache?
Is it possible at all to save a physics cache with a .blend file, so that when I open it back up, I won't need to cache it again?
P.S. I do understand the implications, that the .blend size can be huge.

Which cache do you have trouble with? Caches are normally saved to folders in the same location as the blend file, otherwise they would be located within the /tmp directory. Most caches allow you to customise the name and location of the cache folders.

I thought that the cache can be stored within the .blend file. But now when you've clarified that point I see that cache has the separate location.

@sambler Care to add that as an answer?

When doing simulations in blender the results will be cached as you play through the animation. Most simulations will only keep the cache data in RAM until the blend file is saved, when you will get an option of saving the cache to a folder located next to the blend file.
While each simulation has it's own variations, the most common simulation cache options are -

By ticking the Disk Cache option the simulation data will be saved to a folder called blendcache_caching, if you give a name to the item in the list by Ctrl clicking it will be used as the beginning of each filename otherwise a random number will be used to distinguish each simulations data in the cache.
There are some exceptions to this. Rigid body caching is only saved within the blend file. Smoke and fluid caches are always disk based. Fluid, dynamic paint, and ocean modifier simulations use their own cache folder that you can rename if you wish.
While the Disk Cache option is only available after you first save the blend file, fluid and ocean caches will initially be saved within /tmp or c:\tmp on windows if the simulation is run before the file is saved. These temp file caches can be manually moved and adjusted in the cache settings if you bake before saving.

blender kills all my cached data from a hair particle simulation when I reopen my file. Is this supposed to be normal behaviour? I was expecting Blender to just read the saved disk cache files...


text:
How would you cut a shape out of an object using another object?
Coming from SketchUp one of the tools I miss most is the circle draw tool which lets you draw a circle on any face and then you could extrude it in/out. The only tool that I know of that comes close to this is the knife tool but this would be very impractical to cut out with the knife
Example:

Is there any tool in blender that can match this function? also how could you do this with squares?

do you want the circle to be a seperate mesh?

No I want it as part of the cubes face so that if you extrude it in it would leave a hole

Knife Project Tool
Edit: Since 2.9, the Knife Project tool works this way:

Select the object you want to edit, switcht to Edit mode.
Ctrl left click to select the cutter object.
Go in the header menu > Mesh panel > Knife Project.

The tool you are looking for is the Knife Project tool. Here's how to use it:

Create your cube that you want to put the circle on
Add a circle curve: SHIFTA -> Curve -> Circle
Position the circle in front of the face you want to put the circle on, as shown here (highlighted in green):

Now go to the viewport where the circle visually appears where you want your circle to be on your cube, like this:

Now select the circle, then hold down SHIFT and select the cube.
Switch into Edit mode
Tools panel (T) -> Mesh Tools section -> Add section -> click Knife Project
(Note: In 2.70, the Mesh Tools section is located in the Tools tab)

This will result in the cube now having a circular hole in the front face:

If you now want to fill the hole with a face, select all the vertices of the hole and press F.

NOTE: In this example, the circle is considered the Knife, which is kind of like a cookie cutter, or perhaps even a bullet, and so when you click on the Knife Project button, what Blender does is it projects/shoots the knife (here the circle) from the visual angle in your active viewport. So, make sure you have the knife visually lined up so that when it projects/shoots onto your destination object, it will make the circle right where you want it. Here are two examples of projecting from different angles:

An interesting note is that in the example above where the knife is visually at an angle, the resulting face on the destination object is NOT automatically deleted (see the highlighted face on the lower example.)
Also, you can indeed use any shape as a knife:

Lovely. This knife projection saved me. I wanted to cut the f hole design of a violin into the body of it. This project was a saviour. Thanks

What if I want to deform one corner of the cube with a curve, instead of just cutting it?

Doesn't seem to work every time. After I've turned a cube into a triangular shape it refuses to cut it for some reason.

I couldn't make this work with an imported .svg curve, is this normal?

After I did this it just created a circular outline on top of my cube, but didn't remove anything. I had to hit the delete key > "Delete Face" to make a cut in the face. Credit to https://youtu.be/jKJ-ml5N0fw?t=1m40s

Does it have to be a curve? I'm trying to use a cube to cut a square into an object, and this doesn't seem to work for me.

I think the problem is you are using a 3D object (a cube) instead of a 2D object (a square.) You can also see if this page helps: https://docs.blender.org/manual/de/dev/modeling/meshes/editing/subdividing/knife.html

Step 8: Is there a way to select all vertices of the hole other than by clicking each one individually? When I use b or c it selects vertices on the other side of the cube.

@user875234 You can "select and deselect multiple vertices by Shift+right-clicking them. Select large groups of vertices by using the Border Select tool (B), Circle Select (C), or Lasso Select (Ctrl+left-click+drag). In Border and Circle Select, left-click and drag your mouse cursor to add to your selection." It's been a long time since I've used Blender, so I'm not sure if this is still accurate, but it was when I was using it. Check here: https://www.dummies.com/web-design-development/selecting-vertices-edges-and-faces-in-blender/

I've tried this and I'm not clear about the tools. I don't get a menu or tool panel like you do. I have to change to Edit Mode to get the tools, but they're icons, not words. I can also, in Edit Mode, get to a Mesh menu that has Knife Project. When I do this - having done steps 1-6 as described, then picking Knife Project, I get a circle drawn on the cube, but it NEVER cuts through any faces at all. (Also, note you have the last step as Step 9, but no Step 8.)

I believe you have to do it slightly different in 2.93.4+ - see this video https://youtu.be/M9EMWYOgmqk

Maybe you can do like this, But I don't know if this is what you want.

Looks close to what I was looking for but this generates lots of extra geometry.

You can subdivdes only one surface,But will produce more than or less 4 verts

There  is not super simple way of doing this like there is in Sketchup. There are a few ways to do this in blender but this is the best way I have found.
Here is how:

Select the face and subdivide it to add more geometry for the circle

Select the edges that will make up the circle

Scale the edges to sphere, Alt Shift S

scale all the way to 1 to make it perfectly circular.

The method described above will work nicely on faces that are square, but if the face is a rectangle the circle will look stretched.

To fix this:

Open up the user preferences, Ctrl Alt U
In the addons tab search for "Looptools" and install it.

Close the user preferences
Select the edges of the circle
Run the Space command from the loop tools addon, W -> Loop Tools -> Space

You will notice that it looks a bit better

To make it look circular run the scale to sphere command again,  Alt Shift S

I think this way also is cool. However the Knife projection happens to fit in many scenarios and saves time too. Thanks for this approach too.

In addition to learning Blender's native boolean operations, I highly recommend you check out a free add-on called BoolTool (version 0.2)
Here is the link to the add-on.
Here are my notes for using the BoolTool add-on.
It makes booleans so easy that you can use Blender like ShadowBox in ZBrush.
Q: How do I use the BoolTool Add-On?
A:

Create a cube.
Duplicate the cube (Shift+D).
Drag the duplicated cube (Brush object) so that it intersects with the original cube (Canvas object).
Shift+Right-click click to add the original cube (Canvas object) to the duplicate cube's (Brush object's) selection.
In the BoolTool Tab in the ToolShelf, under Brush, click either Union, Intersection or Difference (or click on each one to see what they do). You will now see the Brush object perform according to the selected operation under the Brush Menu.

Making a Brush object works great as a mask to cut in or add detail. The Canvas properties will affect the Canvas object. With the Canvas object selected you can also use the Brush properties which will obviously affect the Brush object. You can modify the Brush object in the 3D View such as scaling it or duplicating it to make multiple brushes. By selecting the Canvas object you can also manipulate a selected brush object in the Brush properties such as hiding it, applying it or removing it.
If you don't want to make a Brush, you can simply select what would ordinarily be the Brush object and then add the Canvas object to the selection and then just press the operation under Direct and a boolean operation will be performed. The results of the boolean operation will be stored in the active selection (the last selected object) and you can have multiple objects that act as Brush objects.
Here are the hotkeys as found in the Object menu:
Brush Union = Ctrl+Numpad Plus
Brush Difference = Ctrl+Numpad Minus
Brush Intersection = Ctrl+Numpad Asterisk
Direct Union = Ctrl+Shift+Numpad Plus
Direct Difference = Ctrl+Shift+Numpad Minus
Direct Intersection = Ctrl+Shift+Numpad Asterisk
Note: BoolTool will automatically convert Curve objects to mesh objects when you apply it as a Brush or Direct Boolean operation.
To use the Draw Poly Brush:

Switch to the view that you want to work such as Front view and then click on Draw Poly Brush. You will have a grease pencil that you can use to draw lines.
Simply click where you want each point to be. You don't need to close the poly. The two open endpoints will automatically be closed.
When finished drawing, press Enter and the polygon will be created.

Poly Brush size will scale the depth of the polygon. You can use the Poly Brush as a Brush or Directly.
Inside the BoolTool add-on's Preferences, you can check Fast Transformations (marked experimental and disabled by default).
Fast Transformations replaces the G/R/S hotkeys for a new custom version that handles Boolean operations faster. The Blender viewport can struggle with high poly models when trying to carve out parts of the canvas. With this enabled, there will be a new option in the Brush properties that says 'Fast Vis', which when used, will allow the visibility to be changed on the fly. Use it if your workflow is being bogged down.
Note: with Fast Vis on, it will be enabled for all the brushes.

If your cutting mesh is part of the same object, select it in Edit mode then header menu > Face > Intersect, choose Knife or Boolean depending on the result you want (Knife will cut the shape on the roof, Boolean will merge or subtract the shape, depending on the option you choose in the Operator box):


text:
Foreign text in Blender isn't processed correctly
Blender has issues when dealing with non-English characters.

I can't enter Russian text in 3D objects.
Blender displays folder and file names incorrectly if they are in Russian.

Is there a solution to these text-encoding problems?
UPDATE
Demonstration of impossibility of entering letters
Demonstration of only Bfont available:

What does it mean "I can't enter Russian text" and "displays folder and file names incorrectly"? How are these displayed?

@Bakuriu instead of Russian filenames some garbage of extraterrestrial symbols is displayed. In text object Russian letters are impossible to enter -- they are "eated" by Blender.

@SuzanCioc You need to load fonts into blender. You can do this by clicking one of the folder icons under Font in your screenshot.

This is bug report worthy. Blender completely ignores IMEs and other input methods. Both in the text editor and for the edit mode of text. Going so far as to lead to faulty input (when typing たまご it captures たごご or similar things in certain edge cases)

See http://blender.stackexchange.com/a/5118/599

Interface
The wiki page on Blender Internationalization shows how to set your preferred language
3D

You can enter foreign languages with alternative symbols (like a cyrillic alphabet). You must pick a font that supports the extended character set. The default Bfont does not have many extended characters, that's why you aren't seeing them. You can read more about support for fonts on the Modeling/Text wiki page
3D using the Text Editor

I don't want to translate UI, I just want to type some text into text object. I have only Bfont in available fonts.

Looks like Internation font option helped to display filenames correctly, but still don't know hot to type international. I want to set international font by default, not Bfont

@SuzanCioc - hjaarnio's method is worth doing, you can copy the text from an external application into blender's  TextEditor then go Edit > Text to 3D Object.

This is very complex. I want to enter text from keyboard.

To input text that can't be directly typed from the keyboard, it is possible to copy-paste it into Blender's text editor and use Edit > Text to 3d object from the header, which will make a text object out of it. Shortcuts are CtrlM to make it one object and AltM to make a object from each line.

This is very complex. I want to enter text from keyboard

As zeffi pointed out, setting the preferences to use a Russian font is the answer to getting your filenames looking correct.
Blender doesn't use these international settings when working with a 3DText object. Blenders default font for a text object is a simple plain font that is rarely used in a final project and as you have found isn't good with non-english characters. It is common practice to select a different font for any text objects in blender, and the font used is very much a personal preference.
One way to make it easier is to add a bookmark for your fonts folder, that way when you add a text object you can easily get to the folder containing your fonts. You can also set a default fonts folder in preferences as the location blender will start looking for fonts.
Another option is to customise your startup.blend file. You can setup a scene any way you want and save it as your startup file. Anytime you start blender or select File->New the contents of your startup.blend is used. By having a text object setup with the font you want to use in the startup.blend it will always be ready for you to use.

Why bookmark when you can set blender to search for them in User Preferences > File? (though bookmarking is good too) :)


text:
how to render semi-transparent objects with transparent background as a png with cycles
I am rendering out some bubbles for use in a composite Photoshop image, so I need to render as a transparent png with the bubbles semi-transparent.
I tried setting render output to RGBA and checking the transparent option under film, but while the resulting png is transparent the bubbles keep the environment background colour.
The bubbles are definitely semi-transparent, because if I include a coloured object in the scene behind them, it is visible through the bubbles in the render, but I can't find a way to allow the semi transparent material to have any alpha transparency in my png render.

You can use a Holdout shader:

The holdout shader will render as actual image alpha, as opposed to giving the color of the environment on the other side of the object.
Or you could use a Transparent shader, which will allow other objects to be visible through the transparent object:

Note that transparent in Render settings > Film must be enabled, otherwise the holdout shader will appear black and the transparent shader will show the environment behind it. You did mention that you already did this, so you should be good.

Great! thanks for the holdout shader tip.  I got as far as realising that the Glass shader does not allow for alpha, but I was having trouble finding a decent alternative

is using the holdout shader going to correct the semi-transparency problem in cycles viewport?

@Pow Not sure what you mean? What semi-transparency problem is there in the cycles viewport?

i asked it here, if you do know a work around please share
http://blender.stackexchange.com/questions/55692/cycles-viewport-rendering-of-image-planes-with-alpha-channel-problem

Keep in mind that PNG uses unassociated (straight) alpha which does not cover the subtle transparency effects associated (premultiplied) allows.
A clear glass or a bubbly reflect the environment with little to no occlussion of the background, therefor unassociated alpha won't produce a realistic effect.
Considered the method described above as a hack: the holdout portion of the shader will occlude the light from the background layer, which is something that a bubble or a glass won't do in reality.

@Gez Using exr with associated alpha would fix that out of the box, would it not?

@gandalf3 exactly. Blender's viewer hiccups notwithstanding.

Also it is worth to mention that usually you want those kind of effects separated in passes to have more control during compositing, but still, associated alpha can reproduce those kind of effects in a physically plausible way.


text:
How to place any object on the 'floor' of a scene?
I added a cylinder to my scene, rotated, resized, like this:

I moved it up, because I want to make a model from this and I want it to stand on the ground:

I zoomed in and learned, that this object is not on the grid floor, it floats above it:

My question is: how can I put any object on the floor? (Yes, right, I could move it up half it's size, but think on more complex objects, like a terrain.)

You could select a vertex, edge or face in Edit Mode and snap the 3D cursor to the selection Shift-S Cursor to Selection

In object mode set the object origin to 3D-cursor.

After that you can easily position the object to the 3D cursors position which can be adjusted in the proerties panel.

Followed by Snap Shift-S Selection to Cursor

Move the cursor to selection, move the object origin to cursor, then move object so it's origin is at Z zero. Makes perfect sense. So why do you then say "Snap Selection to Cursor" which undoes what you just did? The 3D cursor is still where it was when you moved it to the selected geometry with "Cursor to Selection". So why would you want to move the object back to the 3D cursor?

@Glazed - Typo I think... in Object mode, I think the next steps would be "Object > Set Origin > Origin to Center of Mass (volume)", then [Shift] + [S], then "Cursor to Selected"

The script posted earlier is overkill IMHO, and inefficient.
The following is all you need. This doesn't mess with object origins and doesn't require you to apply rotations. No need for bmesh either.
import bpy
context = bpy.context

for obj in context.selected_objects:
    mx = obj.matrix_world
    minz = min((mx @ v.co)[2] for v in obj.data.vertices)
    mx.translation.z -= minz

Oh, very interesting @ mx.translation, thanks!

Done, thanks. I've also removed the list comprehension.

Thankyou.  Prefer (mx * v.co).z but that is only aesthetics.  IMO simplest answer to implement, and best answer here.  Hopefully someone else will upvote too.

How to integrate these python code into blender as a button?

Where do you want the button?

I'm getting this error in latest v2.92.0: [line 3] TypeError: Element-wise multiplication: not supported between 'Matrix' and 'Vector' type

The smaller script posted by MACHIN3 is perfect, however blender 2.8x has changed the way it multiplies matrices and you now need to use the @ symbl instead of * or you will get:
TypeError: Element-wise multiplication: not supported between 'Matrix' and 'Vector'
import bpy
context = bpy.context

for obj in context.selected_objects:
    mx = obj.matrix_world
    minz = min((mx @ v.co)[2] for v in obj.data.vertices)
    mx.translation.z -= minz

I would comment on the solution but I don't have enough reputation :(

Welcome to BSE. Not a fan of 1 character edits becoming new answers.  Soon you will have rep  required to make a suggested edit, comment or upvote.

@SeanPuller Could you delete this duplicate answer, now that the change you mentioned has been integrated into MACHIN3's entry?

Surely the simplest method is to use Rigid Body physics sim. Simply set the 'floor' as Passive and the object as Active and then run the simulation. The object will fall (assuming you haven't messed with gravity) until it comes to rest naturally on the floor.
Once your object has settled into position, stop the animation, select it and press Ctrl+A and select 'Visual Transform' to apply the current location and rotation to the object. You can then safely remove the rigid body physics if no longer required.

Normally I just rotate and translate it into position manually (perhaps with snapping), which is good enough in most cases.
There is also an addon bundled with blender called Drop to ground which is useful for placing one or many objects on a ground object quickly.
To use it, enable it ⎈ Ctrl⎇ AltU> User preferences > addons > Drop to Ground. Now you'll have a Drop to Ground button in 3D view > Tool Shelf (T) > Addons tab > Drop to Ground.

It is not possible to "enable" that py, because of an error: attributeError: RNA_Types object has no attribute VIEW3D_PT_tools_objectmode. :(

I also tried snapping. This did not work in this case, because there was no other object on the scene. Will check with a plane as floor too.

You can also use dynamics to do this.  Make the ground a passive physics object.  Set the other objects to be active.  Now run the animation and everything should fall to the ground. There's a bit more to it than that if you want things to stay where they are when the timeline moves but to start you off that should work.

Using Blender 2.7.6, I was able to fix the RNA_Types error by changing bpy.types.VIEW3D_PT_tools_objectmode to bpy.types.VIEW3D_PT_tools_object. I put the fixed code in a Gist.

This addon is not bundled with Blender 3.2. However, MACHIN3's script worked well.

You'll need this script:
import bpy
from mathutils import Vector
import bmesh

context = bpy.context

def global_origin_to_bottom(obj):
    mw = obj.matrix_world

    bm = bmesh.new()
    bm.from_mesh(obj.data)
    global_verts = [mw * Vector(v[:]) for v in obj.bound_box]
    print(global_verts)

    l = len(global_verts)
    x = sum([v.x for v in global_verts]) / l
    y = sum([v.y for v in global_verts]) / l
    z = min([v.z for v in global_verts])
    global_origin = Vector([x, y, z])

    local_origin = mw.inverted_safe() * global_origin

    for v in bm.verts:
        v.co = v.co - local_origin

    bm.to_mesh(obj.data)

    #move the mesh back

    mw.translation = global_origin

def origin_to_bottom(obj):
    mw = obj.matrix_world
    local_verts = [Vector(v[:]) for v in obj.bound_box]
    bm = bmesh.new()
    bm.from_mesh(obj.data)
    x, y, z = 0, 0, 0

    l = len(local_verts)
    '''
    # will give a modified center
    # eg if array modifier will be centre of array
    y = sum([v.y for v in local_verts]) / l
    x = sum([v.x for v in local_verts]) / l
    '''
    z = min([v.z for v in local_verts])

    local_origin = Vector((x, y, z))
    global_origin = mw * local_origin

    for v in bm.verts:
        v.co = v.co - local_origin

    bm.to_mesh(obj.data)

    #move the mesh back

    mw.translation = global_origin

#test

mesh_objs = [mo for mo in context.selected_objects if mo.type == 'MESH']
bpy.ops.object.origin_set(type='ORIGIN_GEOMETRY')

for o in mesh_objs:
    origin_to_bottom(o)
    #global_origin_to_bottom(o)

Save it as a txt file. Open the txt file with Blender Script Editor, select your objects and hit "Run Script".

Make sure to apply Rotation to the objects first if you have rotated them. Rotation X, Y and Z should be zero.

If not select your objects, press Ctrl + A and select Rotation.

To set all these objects to a specific Location Alt + Click into the Location Value, type your desired value and hit enter.

If you want to move the objects to the height of a different object you can snap your cursor to other Vertices or Objects and copy the location of your 3D Cursor to your objects that you wish to move.
If you use it as often as I do save it into your start-up file. Right click on the Menu Bar of the Text Editor, select collapse menus and tuck it away to the side like I did:

This is my Addon, based on the MACHIN3 code, the help of many people and a lot of research. Issues: only works on objects with vertices, surely it will have many programming flaws, an apology for that. However it seems to work properly with its limitations
bl_info = {
"name": "Aterrizar",
"author": "Flobo02",
"version": (1, 0),
"blender": (2, 80, 0),
"location": "View3D > Object > Snap",
"description": "Move object to floor",
"warning": "",
"wiki_url": "",
"category": "Object",
}

import bpy

#funcion
def main(context):
    for obj in context.selected_objects:
        mx = obj.matrix_world
        minz = min((mx @ v.co)[2] for v in obj.data.vertices)
        mx.translation.z -= minz
#operador
class ATERRIZAR(bpy.types.Operator):

    bl_idname = "snap.aterrizar"
    bl_label = "Aterrizar"

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

    def execute(self, context):
        main(context)
        return {'FINISHED'}
#boton
def boton(self, context):
    self.layout.operator(
        ATERRIZAR.bl_idname,
        text="To floor",
        icon='TRIA_DOWN_BAR')

# ubicacion
bpy.types.VIEW3D_MT_snap.append(boton)

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

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

if __name__ == "__main__":
    register()

test in Blender 2.82a

Placing an object on the ground.

In Edit Mode select the bottom vertex, edge or face.
From the ShiftS menu, choose 'Cursor to Selected'.
In Object Mode, ShiftCtrlAltC, 'Set Origin to Cursor'
Still in Object Mode, in the properties region of the 3D View (toggled by N,) in the 'Transform' panel, set Location Z to 0.

I don't have enough reputation to comment. But flobo2's addon has an indentation error on line 29. Just add four spaces at the beginning of that line, and you're good.
It's really handy.
Here's the fixed code, if you're too lazy to add the spaces yourself.
bl_info = {
"name": "Aterrizar",
"author": "Flobo02",
"version": (1, 0),
"blender": (2, 80, 0),
"location": "View3D > Object > Snap",
"description": "Move object to floor",
"warning": "",
"wiki_url": "",
"category": "Object",
}

import bpy

#funcion
def main(context):
    for obj in context.selected_objects:
        mx = obj.matrix_world
        minz = min((mx @ v.co)[2] for v in obj.data.vertices)
        mx.translation.z -= minz
#operador
class ATERRIZAR(bpy.types.Operator):

    bl_idname = "snap.aterrizar"
    bl_label = "Aterrizar"

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

    def execute(self, context):
        main(context)
        return {'FINISHED'}
#boton
def boton(self, context):
    self.layout.operator(
        ATERRIZAR.bl_idname,
        text="To floor",
        icon='TRIA_DOWN_BAR')

# ubicacion
bpy.types.VIEW3D_MT_snap.append(boton)

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

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

if __name__ == "__main__":
    register()

I've made this change for you, thanks.  For future reference I think you can propose an edit to a post and one of us can approve it.

The answer by @MACHIN3 is good, but I disliked how it would snap each object individually to the ground, instead of snapping the whole selected group to the ground (ie. a shared offset amount).
For this "group shift" functionality, I used this code:
import bpy
context = bpy.context

minz = min(min((obj2.matrix_world @ v.co).z for v in obj2.data.vertices) for obj2 in context.selected_objects)
for obj in context.selected_objects:
    obj.matrix_world.translation.z -= minz

Currently, the actual simplest answer is described in https://blender.stackexchange.com/a/79655/151054 , i.e. (to reiterate):
Enable the align tools Add-On, and use Z-Axis Align Location - if you have the cursor in 0,0,0 - just set the "Min" reference and "Cursor" destination.
No need to use external scripts or manual labor anymore in 2022'.
Alternatively: select any of the bottom vertices, take the Z value, paste it inverted as the object Z translation value.


text:
Settting tite bar color of custom pynodes
How does blender determine what the title bar color of a node will be? The theme has color settings for each node category, but what determines which category a node is in for selecting its color? There doesn't seem to be any obvious property any where that would control it...
My custom nodes all get the color of the 'inputs' category, which I'm guessing is the default. But I would really like to be able to either have them match up with the different inbuilt color categories or perhaps set my own preferences for their title bar color.
Is this something that is possible, or are custom nodes just forced into using the 'inputs' category color?

For reference, all title bar colors are hard-coded, so at the very least you definitely can't change them colors to any of your own.
See also https://blender.stackexchange.com/a/306051/156014


text:
pyNode with button: any way to find which node the button pressed was on?
I want to have a pyNode with some buttons on it that modify the node. Similar to how some of the built-in nodes work (Color Ramp, Curves, etc).
I can easily put a button on the node using an operator, but the operator doesn't seem to have any way of knowing which node actually called it? Clicking a button on a node doesn't select or make active that node and all I seem to have to work with is context and event?
So, is this possible using pyNodes? Is there a way to make a button without creating an operator? I couldn't see how that would be done either.

It's possible, but you need to set a property or two on your operator so that it can find the value. Eg:
class MyOperator(bpy.types.Operator):
    tree: bpy.props.StringProperty()
    node: bpy.props.StringProperty()
    ...

Then where ever you draw it, set those properties. Eg:
def draw_buttons(self, context, layout):
    op = layout.operator("myoperator.operator")
    op.tree = self.id_data.name
    op.node = self.name
    ...

You can then use those values in the operator to find out where it was called from.


text:
How do I change my Objects' local axis?
I am making a robot with a lot of different connected parts that are parented to each other.. When I now wan´t to animate it they don´t rotate in the direction of it´s parent. That is makig animating very tideous so i wonder if there is a way to make them rotate around its parents´ local axis

There are several ways to do this:
1: use an armature, slow to make, but makes it much easier for animation.
2: set the 3D cursor to the parents origin, right click on the child, click on, set origin - to 3D cursor. ( this won't work if you want the robot to rotate the children indipendently later. (not recomended for animation)
3: to rotate them, select the parts you want to rotate, with the parent selected last.  set the pivot point to active element and rotate them. (also not reccomended for animation.)
There are other ways to do this too, but I hope this helped.
ps, I think the armature is the best  method, but If you just want to pose your robot for a still image, the other methods will help you.


text:
Texture bake in cycles
Is it possible to bake texture without any lights and shadows but i dont want to lose quality of it. I want it to look like unlit texture.
When i bake my final work i get this:
But i want it to look like this:
Is it possible not to lose anything from your node editor but to be baked as i asked?
Thanks.

Have you tried Bake Type set to diffuse and Influence with only color enabled?

You can do the same for Subsurface and Glossy, but not all in one bake. The combined bake will need lighting.


text:
Why is blenders hair system making spikes?
I am using a hair/particle system but all of the hairs look like spikes not hair:

How can I set it so they all have a consistent thickness and how can I adjust the thickness?

Related https://blender.stackexchange.com/questions/58761/why-does-my-hair-render-as-a-cone

The setting for hair particles in cycles are in Particles > Cycles Hair Rendering and Particles > Cycles Hair Settings.
To make the hairs a constant thickness, set the root and tip thickness settings to the same value and disable Close Tip:

To get a cylinder-like result, you will also have to disable Particles > Cycles Hair Rendering > Cull Back-faces so the backs of faces are not hidden:

See the manual for more information.

The link is broken. Anyway can u plz give in short comment what will be the setting for normal human hairs. Root, tip and close tip (on or off)

@atek Thanks for the heads up. I couldn't find a manual link which exactly corresponded to the old wiki page, but I linked the most appropriate one I could find. As for human hairs, this question was specifically about making uniform-width hair. You are welcome to ask a new question about human hairs though.


text:
Cut straight lines with knife tool
How can I get the knife tool to snap to the same spot on another edge to get a straight cut. Here is an example of what I want to do:

When the line turns green the cut is straight. How can I do this in blender? I have tried using the magnet snapping tool but could not get it to work.

I think the closest you can get now is use midpoint snap (Ctrl) to snap both ends of the cut to the middle of the existing edges, then using edge slide (GG) to slide the edge over. Not very optimal, I agree..

As the cut is made relative to the camera i have found that using orthographic view is the quickest way to achieve the result but i agree that a sketchup style, allign cut to axis shortcut would be cool!

Press A while in knife mode to enable Angle Constrain.
Note that it snaps to angles relative to the view. For cuts on faces which are not aligned to any axis, you can:

Press ShiftNumpad 7 to align the view to the face

Press K to enter knife mode, then A to enable Angle Constrain:

More information on Angle Constrain can be found in the Blender Reference Manual

additionall "Z". keys K, Z, C to cut though the entire (selected?) mesh, not just the face selected with the knife tool (https://blender.stackexchange.com/a/7156/3038)

Seems like they should have the option to constrain angles relative to the geometry, since I imagine people rarely want to define their angles relative to the view

Please note that you have to start cutting first, and THEN you press C. Else something strange happens.

Angle Constrain
You can use C while using the Knife Tool to enable Angle Constrain. This will enable you to cut at the following angles (with reference to your current view):

Vertically
Horizontally
At 45° angles

Also, notice that when you start to use the Knife tool, the 3D View Header bar changes to show you all the available Hotkeys to perform all possible actions with the Knife:

LMB: Define cut lines
RETURN/SPACEBAR: Confirm
ESC/RMB: Cancel
E: New Cut
CTRL: Toggle Midpoint Snap
SHIFT: Toggle Ignore Snap
C: Toggle Angle Constrain
Z: Toggle Cut Through

(NOTE: It is common in Blender to have available Hotkeys shown in the 3D View Header bar while using a tool, so check there while using other tools too.)

Is there a way to snap the cuts to grid?


text:
What is the proper way to update a portable Blender installation while keeping user settings?
The Windows portable installation has (or can have) the user settings folder (named '2.77' for instance, containing all the user preferences) next to all of it's files - which is perfect for me, since I can sync the whole installation via cloud drive.
But what is the proper update procedure in such a setup? A freshly downloaded portable installation already has a user settings folder, containing for instance the add-ons folder. So to keep my add-ons, I was simply renaming my user setting folder to match the downloaded one ('2.76' to '2.77' for instance), and then copied all downloaded files over existing ones, overwriting them. That works, but I'm not sure if that can introduce problems in the long run? And if there is a better way of doing the same thing (updating a portable install while keeping settings and add-ons)?

You should not replace the whole 2.## folder version with a previous one.
In a best case scenario that will not only roll back any updated versions of the bundled addons, it will also override any new presets, builtin Python scripts, system files, UI markup scripts and bundled Python versions along with your personal configuration, essentially rolling Blender back to the previous installed version.
Worst (and most likely) case, it will probably completely break your Blender installation, especially between major versions, since old scripts and presets are unlikely to be incompatible with newer APIs and other binary file changes.
You should only copy the Config folder inside the 2.## which should contain your bookmarks file, startup.blend and userpref.blend.
Blender 4.2+
As of Blender 4.2 a new "portable" configuration folder has been established, allowing you to save all settings locally in a more manageable manner.
As stated in the manual create a Portable folder inside your installation root, next to Blender executable, in a way that you have
 Blender 4.##\
 ├  Portable\
 └ Blender.exe

For all Blender versions
Alternatively you can use Blender command line launch parameters to achieve a fully functioning portable installation with a proper dedicated folder for user data and addons.
Blender supports several launch variables, a few of them are BLENDER_USER_CONFIG and BLENDER_USER_SCRIPTSwhich allow overriding the default folders for user configuration (where startup files are saved) and the folder for users scripts and addons, where third party installed addons, presets, keyconfigs and scripts are installed.
The trick is to launch Blender from a batch file that sets this to your custom desired location.
Here is an example, in a plain text editor like Notepad paste the below lines of code and save them to the same folder as Blender.exe, give it a any name like "Blender_Portable" but make sure you specify the file extension as .bat not .txt.
SET BLENDER_USER_CONFIG=%~dp0Portable_Data\Config
SET BLENDER_USER_SCRIPTS=%~dp0Portable_Data\Scripts

if not exist %BLENDER_USER_CONFIG% mkdir %BLENDER_USER_CONFIG%
if not exist %BLENDER_USER_SCRIPTS% mkdir %BLENDER_USER_SCRIPTS%

start Blender.exe

It should be setup in such manner that the file system would look like.
 Blender Portable
 ├  Portable_Data
 │ ├  Config
 │ └  Scripts
 ├ Blender.exe
 └ BlenderPortable.bat

Adapt to your own needs, you may want Blender installation contained in an independent subfolder separate from the rest of the setup.
Modern versions of Blender also support setting up additional external script libraries, besides the local installation ones. You can find them at under Edit > Preferences > File paths > Script Directories .
While not exactly "portable" in the sense that file paths are absolute, and don't necessarily travel with the installation, it does allow sharing scripts between multiple installations on the same machine, as well as easily keep a central repository of scripts, independent of specific Blender installations, that will survive updates or deletion of the Blender root folders.

I don't replace 2.# with the previous one, I replace the previous one with the new one, before it has any user settings in it. You think that's still bad?

Ah yes I misunderstood what you meant,  that sounds more clever and a good way to keep your custom  addons. Only downside I can think of is that in the off chance that any files are removed, there will be some garbage leftovers, but that should not be a common thing . Other than that I can't think of anything. If you find any problems don't forget to test on a fresh portable install to make sure it's not a problem with your setup.

You can use the environment variables to load the user preferences, add-ons, keymap, etc. from a different location. However, this doesn't guarantee that it will work properly when the files are from a different version.

No, that will always be up to the user to make sure of it. Between most minor version upgrades there should be no significant incompatibilities so it should still be less work than copying addons and preferences manually every time

Running the new portable version (the zipped Blender file downloaded from blender.org) will fetch the user-pref from the
common roaming location of Windows so previous preferences and add-ons will be automatically added/activated in the new version
But if a config folder is created in the portable blender
2.XX folder it will read write the bookmarks file, startup.blend and userpref.blend.from that location.
The location for config is shown for a moment in before the splash screen of Blender comes up when you launch it.
Please see the screenshot below.

Hope it helps some Blender portable users.

"Hope it helps" -- it does. Thanks.
This is the source code for how Blender checks if the folder is there: https://github.com/dfelinto/blender/blob/master/source/blender/blenkernel/intern/appdir.c#L226-L237

authors: Дмитрий Лузин


text:
Link full .blend files
I'm trying to split a big .blend into several smaller ones, so that several people can work on different parts.
I split it into 5 smaller .blend (~= 200MB and > 1000 objects each), and I created an empty one (container.blend) that links to each scene.
The problem is : each scene is completely separate. From my "Container Scene", I can't get to make the 5 others visible. Only one is active, only one is visible :

When I render ContainerScene, I want Scene_62XXMECH-1 to be rendered, too.
Is there a button I missed ? Should I add all 7000 objects separately in the container scene ? Is there another way ?

Scenes in blender are like separate environments, each one is visible independently and renders it's own output, while you can have linked objects that can be moved in each scene at the same time.
One way of combining multiple scenes is to composite them together.
Most likely I think you want to import all of the objects from the other files into your container scene, not the scene itself. Your container scene can contain many imported objects from many different files. When you import objects from another file you can select all of the objects (press A in the file browser) in one file and import them in one go.
A common method used when linking files is to assign a group to a number of objects and import the group into your container scene. Each group will then show up as one item visible in your container scene. With objects to be animated, this often includes an armature in the group. You can then make a proxy of the armature to allow animating it in the new file while the mesh can only be altered in the original file.
There is an addon called Edit Linked Library that makes it easy to switch between files containing linked objects.

Groups seem perfect, but for some reason when I link an external group into my container scene, it's empty. The A trick works, though, thanks heaps ! I tried using Shift to no avail.

When you are selecting the group to import there is an option called Instance Groups that will create it straight away, if that isn't turned on at the time then you can manually add a copy of a group from the add menu under group Instance.

Hum, for some reason groups just started working (the Instance Groups option was always checked). Maybe a missing quit-reopen.


text:
Fill space between inner mesh
my problem is the following:
I've made an object in blender and now I've begun applying material but I've noticed that I've added multiple meshes between the innermost and the outermost. This is quite annoying for the part which should have a glass material (the "vizor" as it is visible in the captures). In fact I've first tried to select face without limit selection to visible but as there is the back of the object which is also selected this have not really worked.
EDIT: Ok I'll try to clarify my issue, I've uploaded another capture, this time only one  half of the mesh. As you can see there is multiple inner faces especially in the red rectangle (in the image attached) and those inner faces are those I want to assign material on (or delete all other than to outermost)

@SixthOfFour I just want to select those faces only (then it is easy to apply material), I know the fact you can disable the property "select only visible faces" (or using wireframe) but in this special case there are some faces on the back of the mesh (right on the pic) which will be selected at the same time

Thanks for your answer @SixthOfFour, I've uploaded the mesh here https://drive.google.com/file/d/0B19X6LROOyg_YU5ENHEyUU1WbHc/view?usp=sharing


text:
What is a more Pythonic way of setting the value of multiple attributes?
When a custom property is updated, this function is triggered and changes the boolean value of all the 10 others. It's a long and dirty code... is there better way to do it ?
def swap(prop):
    s = bpy.context.scene
    if prop == 'meshes':
        v = not s.meshes
        s.meshes = not v
        s.lights = v
        s.cameras = v
        s.nurbs = v
        s.lattices = v
        s.empties = v
        s.texts = v
        s.bones = v
        s.surfaces = v
        s.metaballs = v
        s.fields = v
    elif prop == 'lights':
        v = not s.lights
        s.meshes = v
        s.lights = not v
        s.cameras = v
        s.nurbs = v
        s.lattices = v
        s.empties = v
        s.texts = v
        s.bones = v
        s.surfaces = v
        s.metaballs = v
        s.fields = v
    elif prop == 'cameras':
        v = not s.cameras
        s.meshes = v
        s.lights = v
        s.cameras = not v
        s.nurbs = v
        ... and so on (11 times)

Have a look at this set up for custom properties.  http://blender.stackexchange.com/a/39624/15543

Wow, that's super smart ! With Zeffii's answer I already saved 100+ lines. With yours, I save 100 more ! What a treat !

something like this
def swap(prop):
    s = bpy.context.scene
    v = not getattr(s, prop)

    attributes = 'meshes lights cameras nurbs lattices empties texts bones surfaces metaballs fields'.split(' ')
    for attribute in attributes:
        setattr(s, attribute, not v if prop == attribute else v)

but achieving pythonic code is a quest for a different stack exchange site, like stack overflow

Thanks zeffii ! I am ashamed but greatly happy ! I learnt a lot today !!


text:
Inset in Blender not coming out even
I seem to have screwed up something that allows you to inset evenly, I think I have tried every combination of settings in inset and pivot center and even is far from even.  I tried uninstalling and re installing blender 2.71 and get the same result.  The image attached is a simple default cube that I tried to inset evenly.  I have also attached the blend file link  help??

Blend file here.

You need to 'Apply Scale'. See this question: http://blender.stackexchange.com/questions/7298/why-is-it-important-to-apply-transformation

Thank you so much Ray, I tell folks to remember to apply scale all the time, but hadn't thought to check that the default cube had scale applied.

Related: http://blender.stackexchange.com/q/12288/599

Your insets are distorted based on object scale. To fix this, you will need to apply your object's scale(Ctrl-A>Scale).


text:
Blender 2.8 - Pro Lighting Sky and Studio -
how do I install Pro Lighting Sky and Studio in Blender 2.8?

Hello and welcome to the site! The way you asked your question as of now it is rather a tutorial request than normal question and thus likely considered to be off-topic, as it also suggests that you have done little research yourself. Can you please edit your question and add what you have already tried and where it failed?

First, I assume you've already downloaded all the zip files. There's no need to unpack any of them.
Go to Edit > Preferences. Then click the Add-ons tab and press Install. From the file explorer that pops up, find and select the pro_lighting_skies_ultimate_v_1.2.4.zip file.
Next, check the box next to the Node: Pro Lighting: Skies add-on.

To finish installing, follow the steps shown. Note: directly after you select the HDR zip files (you'll have to do them one by one), DO NOT MOVE THE MOUSE. A small pop-up window shows up asking you to confirm and that Blender will freeze for a while during the install. If you move the mouse out of that box, it'll disappear and you'll have to reselect the file.
The Pro Lighting Studio can be installed the same way except you don't have to do the HDR zip part.

You have to check on the blendermarket website for version 1.2.4 and download it then just go into user preferences in blender install from file and locate the .zip file. restart pc and it should be there .If you have migrated your settings from 2.79 to 2.8. if you haven't yet then you need to download and install the hdri's to.

You don't have to restart the whole computer after installing an addon, you shouldn't even have to restart Blender most of the time.


text:
One curve driven by anther?
I'm trying to have multiple curves that are all driven by a single curve in terms of control vertices. Is there a way to have a curves shape dictated by another curve?

You can use a curve as taper object in a different curve. The control are on the geometry section of the curve in the properties window. See if this helps: https://blender.stackexchange.com/questions/8687/how-to-vary-the-thickness-of-a-bezier-curve/8691#8691

https://blender.stackexchange.com/questions/58815 https://blender.stackexchange.com/questions/157349

Thanks for the reply but I'm not trying to control the taper, I'm trying to control the shape of multiple curves with one set of control vertices.

You can use hooks.

It would help if you edit your question and add an image with a sketch of what it is you are trying to do.

Thanks, I'll try and explain it a little better. What I'm trying to achieve is a series of objects each which has array and curve modifiers. I want the objects all to follow the same curve shape but I want freedom to change the "radius" value on the control vertex independently for each object. In my mind it seemed like the way to go about it would be to have multiple curves which follow a "parent" curve but can have their radius values edited separately.

please edit your question and add this information to it.


text:
spikes emerged when i put displacement node in blender 3d 2.8
soo i im using image texture for base color   and  displacement
then i enabled  experimental from render tab
then i enabled displacement and bump in materials - setting - surface - displacement.  and i observe one directional spikes which i assume should be normal to plane but arent
pls help

Should use a displacement node between disp texture and disp output. What is said on some tutorials is wrong about that. Displacement node is in vector category (this is displacement only, not vector displacement). Also this is no more an experimental feature using cycles

ok that helped, thx


text:
How to animate rotation of an object without modifiers
I'm trying to recreate this rig from this video
I've managed to create shape but for animation I cannot find a way to rotate object around it's Z axis without influence on modifiers. Do you have any ideas how to perform this in Blender?
Thanks!

Something like this with one more twist? If you parent the both the  Hook Empty and object in the answer to another Empty, you can move it about without it falling apart.

Parent your object to an empty and rotate the empty. So, in details:

Create your object, put its origin to its geometry, create 2 empties at the exact same point, parent the object to one of the empties, let say the cube.

Give your object a first Simple Deform modifier, Twist mode, Angle 360°.

Give your object a second Simple Deform modifier, Bend mode, Angle 360°, with the other empty (here a Plain Axes) as Axis. Now when you rotate the first empty (Cube) on the Z axis it should rotate the way you want.

Thank you for your answer but unfortunately it doesn't help much as I need to animate rotation of object inside of stack of modifiers.

Maybe give more details about what you want? It's not clear to me...

Sorry for not being clear, I just want this figure rotate inside itself like in this video https://www.youtube.com/watch?v=7FdoEt9arIk Thank you for your help!

Ok, it should also work with an empty as parent, I've edited my answer  ;)

Great!!! Thank you very much for your help! It works perfect!

Combined with what previous users have mentioned, you can probably use the Instancer (used to be called Dupliverts) to accomplish this effect. A twist, bend and then have a sphere parented to to the cylinder use emptys to control the axis points for your modifiers. In the Object properties tab under "Instancing" uncheck "Display Instancer" I've put together a blend file that you can check out

1- setup your object and animate it's rotation

2- setup your modifiers

3- Twist

4- Bend

5- Instancer