text:
Rigid body simulation always has a visible collision space
Every time I use the rigid body tools I have a visible space between the passive object and the active object, even when I set the collision margin to very small or zero.  Any suggestions?

What are you using the rigid body tools for when this happens?

Can you upload your .blend or some screenshots? As it is now, we don't have enough information to do much more that speculate.

The blend is here: http://www.pasteall.org/blend/24900 I usual use the Rigid body tools to drop items onto a surface or other basic use.  It doesn't seem to matter how simple the scene is I still have this problem.

Ah, I thought you meant the rigid body tools panel in the 3D view T > Tool shelf. In the file you linked the backdrop still has a collision margin of 4cm and the monkey 0.1cm.

that's my mistake I was only adjusting the collision margin of the dropped object not the surface, thanks:)  I had no idea subsurf was affecting it though.

This seems to be caused by the Subsurf modifier on the Suzanne.
Frame 124 with the Subsurf modifier:

Frame 124 with the Subsurf applied:

In addition the Backdrop had a collision margin of 4cm, in the images above it is set to 0.
Comparison of frame 124 with the collision margin of the BackDrop set to 4cm and 0m:

I also set the Collision shape of the Suzanne to Convex Hull and disabled Collision margin.

The reason for this is that currently rigid bodies only use the base mesh of the object. Things like modifiers and shape keys are not taken into account.
In future versions it will be possible to select the mesh source.


text:
How to convert a text object directly to an ngon?
Is there a way to convert a text object directly into an Ngon?
Very often when using text it's necessary to convert it to a mesh for further manipulation. However, the resulting mesh is full of triangles and generally a mess.  It would be ideal to simply have a resulting Ngon since it is a flat plane anyway.

Related: http://blender.stackexchange.com/questions/136/svg-to-mesh-conversion/185#185, and http://blender.stackexchange.com/questions/3020/how-to-prevent-triangulation-of-models-when-importing-models-from-sketchup-to-bl

source: Stack Exchange

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

sort: votes


text:
How can I navigate my scene FPS style similar to how Unity does?
I am aware of ShiftF fly, but it's extremely cumbersome having to use the scroll wheel to change the velocity of flight and moving the mouse from the center to spin.
Is there a way to move the viewport camera (not the scene camera) like Unity lets you right click and fly around with WASD and moving the mouse?

You're a FPS gamer, aren't you ? :P You should try a 3D mouse... It's really better than Fly mode :)

Yep, and also a hobby Unity developer. It's unimaginably useful to fly around the scene at times, instead of orbiting around a point like Blender does. And I don't have or plan to get a 3D mouse.

If somebody is to write a script for this, I suggest that it should be triggered by holding Shift and right clicking. Then dragging while right clicking should turn the view, and WASD moves.

@Keavon well, the problem is that you'd have to move the existing wasd hotkeys out of the way. I (and I assume many blender users) use 'w' and 'a' very often. edit: nvm I'm stupid, you'd probably just use a modal mode like in fly mode

That's why I said holding Shift and RMB would be required to activate it.

I thought WASD did control velocity and hight in Fly mode? (maybe I don't understand how you want it to behave.)

Mouse movement directly should control the viewport camera (so moving to the left 1 cm on your desktop should rotate the camera an exact number of degrees exactly when the camera moves). Pushing W should move at a constant speed exactly during the duration of holding it. Essentially how a first person shooter's controls work (mouse to turn the screen, w to walk forward, a to strafe left, etc.)

Shift RMB, like in selecting additional stuff?

Touché. Okay, perhaps hold space to navigate, and make the spacebar search menu activate on spacebar up so this doesn't trigger it if done in combination with a right click.

The latest version of Blender has Walk Mode, You can access it by pressing Shift~ (the tilde/backtick key above Tab) or View > Navigation > Walk Navigation. If you want to use Fly Mode (which used to be the default), you can switch between them in User Preferences > Input.
Under 2.8+ you can access both from the 3D View header menu View > Navigate > Walk or Fly:

It's WASD just like in FPS-games, Q and R to move up/down. G or Tab enable gravity and collision, and V to jump in gravity mode. Space teleports you to the surface you are pointed at. You can even change the key-bindings to enable FPS Walk (the official name) on MMB down, and confirm on MMB up to always rotate (or rather: look) in FPS-style - or even hold MMB down and use WASD!

Wow, very impressive. Almost like a built-in FPS controller. I look forward to that, but FPS walking still isn't FPS flying which would be a very useful addition to that feature too.

@Keavon: it's both - with gravity off, it's FPS-style flying (/noclip, or rather /ufo since up/down uses the global Z axis), with gravity on it's FPS-style walking. A and D are for strafing, W and S to move forward / backward. With gravity off, W and S may change your view height based on the view direction (move along the forward vector of the player), whereas your vertical location is based on the environment with gravity on for obvious reasons.

Check out the FPS Fly addon:
http://www.ewocprojects.be/fpsfly.html
A FPS-style viewport navigation was a proposed project for the steam workshop devs, so not sure if there will be a C-implementation of the above addon.

The new version had a bug and the old version is really sluggish (it refreshes the view at a low FPS and the general controls are unsatisfactory). Thanks for the link, nonetheless. It may come in handy at times, even with its problems. What did you say about the Steam Workshop? How does that have to do with Blender? And what about a C-implementation? I thought scripts are written in Python for Blender.

@Keavon some Valve guys wrote an email to the Blender developer mailing list asking around for interest in collaborating with them (specifically workshop integration, i.e. publishing workshop items directly from within Blender) and the possibility of offering a download of Blender through Steam. I don't understand how WASD navigation would benefit from being a core C system instead of a python plugin though.

It would run smoother? See the Fly Navigation code, there's smoothing to the mouse input and it's not sluggerish at all. And as there's nothing like Blender plugins, it would pretty much mean that there will always be official support for the feature. Proposals for the steam workshop devs: Google Docs Spreadsheet

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:
Scale Space Between Multiple Objects
If I have multiple objects selected can I use scaling to make the objects closer together (without rescaling the objects)?

http://blender.stackexchange.com/questions/3413/is-it-possible-to-move-parts-of-a-model-along-the-selected-normals

Yes, enable the pivot-point-align option.
This transforms the center points only.
One way to think of this is as a ferris-wheel - where each gondola stays in place, but you can rotate their locations.
Scale:

Rotate: Even though you didn't ask about this, it helps to understand how the feature works.

That is awesome! I never realized this feature existed! +1.

I've just had a look in the Manual but there seems to be nothing about this useful little feature.

Elegant and effective combination of simple tools is pure joy.

Wait, did they change the name of that button? I swear the popup calls it "object centers only". Grawr, computer not handy.

This does not work in edit mode, just a reminder.

As answered by @ideasman42, pivot point align option is a really awesome transformation tool. That coupled with Proportional Editing (Object Mode with Constant Falloff) the following transformations can be easily achieved.
Initial state of the objects

Enable Pivot Point Align (Alt+,).
Enable Proportional Editing (O).
Choose Constant Falloff (Shift+O until constant falloff is displayed).

Left most object selected and scaled
Start scaling the objects and move the mouse while adjusting the proportional inflience area by scrolling the mouse wheel

Middle object selected and scaled
In this case, the objects are proportionally scaled about the middle object.

For version 3.1:

Open the 3D view side panel for current tool and select Affect only | Locations.

Select Active Element as the pivot point.

Use the scale tool.

Documentation for further details.


text:
How to make UV loft like 3ds Max in Blender using curves?
I am try to make a car Body using the technique like UV loft in 3ds Max.
How to apply this technique in  Blender using curves or closer to this technique? I have seen this technique in a Blender tutorial, but I forgot about it.

Related https://blender.stackexchange.com/questions/1503/how-to-make-uv-loft-like-3ds-max-in-blender-using-curves https://blender.stackexchange.com/questions/746/lofting-between-splines https://blender.stackexchange.com/questions/138901/loft-tool-in-blender-2-8/ https://blender.stackexchange.com/questions/278462/create-mesh-from-four-curves-loft https://blender.stackexchange.com/questions/301152/how-could-a-loft-object-be-closed

In Blender 2.68+ there is this built-in mesh tool Grid Fill.
Access from the Face Menu > Grid Fill.
It expects a matching number of vertex on each opposing loop.

Useful, but seems overly simplistic, limited to two curves with the same number of vertices. Source code is very tersely documented - no improvements in sight?

Added support for non-uniform grids: https://developer.blender.org/rBd573bb4f661ae8195d99193dda41b03821df3677

I am not sure about UV lofting.. but there is an addon now bundled with Blender called Curve Tools. It might not be as powerful as Max's or exactly what you want but it might suit your current needs.
You can add several curves to the scene and under Curve Tools in the N panel, hit Loft. The wiki page has some useful information and videos if you need a quick place to start.

(source: picasion.com)
Once you are finished, a mesh is made separate from the curves so you can continue editing or tweaking them.
A reminder, this isn't UV lofting but it can be a solution nonetheless. One obvious limitation that you might notice is you have to use several curves as opposed to one comprised of several segments.

nb: I had originally written up an answer for this elsewhere but since it wasn't what OP intended or wanted at the time, I think it can be put here as a separate possible solution to your question, see the other post here.

This is a U loft, UV lofts are created from several curves spanning two dimensions.

@Aldrik I never said it was, I merely offered it. I am also sure OP might have phrased their title not fully according to what he/she wanted. It is true this is limited but it can be used for simpler lofting.

Blender's limited NURBS don't currently support this feature. The following addon adds similar but limited functionality.
Curve Tools
Once installed and enabled. It's accessed via the "Tool Shelf" (T to toggle).

Birail between 3 curves:
-The order in which we select the curves and its direction its important to make this work right.
  -First select the profile and then the 2 paths to create the birail.

You can see this is demonstrated in the introduction video.


text:
Generate thumbnail image in addition to main image? (command line render)
I'd like to set up a command line script that renders out each frame to the desired output image type (EXR, PNG, TGA, etc.) at full resolution, but then also generates and saves a small thumbnail JPG image at a specified width (say 400px for example).
I'd like to generate this thumbnail from the command line or with a script instead of using the file output node in the compositor. Makes it easier to replicate for multiple render jobs.
Note1: I do not want to render twice. I want to render once and then scale and save out a second smaller file. I don't want to do this from inside the blender file directly, but with an external script.
Note2: I would be open to a second blender instance that renders by only using the compositor to input the large image rendered in the first instance with the new output resolution. That way it's only processing flat images and not doing any scene rendering.

Here's a second option, which I now believe is the best solution, as it is the most elegant and versatile that I've found so far.
The solution is essentially an extension of the Compositing nodes Scale and FileOutput option. However the critical difference is the addition of an Image node being mixed with the scaled Render Output image before being piped into the FileOutput node. The image node uses a dummy UV image created at the required Thumbnail output dimensions. When mixed with this dummy image, the FileOutput node will output the new dimensions without having to change the Scene Render Dimensions.
This option is better than my original solution because it is simpler to implement, shorter code, as well as not needing to rely on external file paths.

Command line usage (last argument pipes in thumbnail width):
blender -b "file.blend" -o "//out/" -P thumbnail.py -- 500

and the script thumbnail.py:
import bpy
import sys

class Thumbnail:

    tWidthArg = int(sys.argv[9])

    scn = bpy.context.scene
    resX = scn.render.resolution_x
    resY = scn.render.resolution_y
    thumbWidth = 400

    if tWidthArg > 0:
        thumbWidth = tWidthArg

    thumbHeight = ((thumbWidth/resX)*resY)

    #create new internal dummy image the size we want for thumbnail
    bpy.ops.image.new(name="ThumbNailDummyImage", width=thumbWidth, height=thumbHeight, color=(0.0, 0.0, 0.0, 0.0), alpha=False, generated_type='BLANK', float=False)

    #set up compositing nodes
    nTree = scn.node_tree
    Src = nTree.nodes["Render Layers"]
    Dst = nTree.nodes["Composite"]

    #image input node - use dummy uv image
    imageNode = nTree.nodes.new('CompositorNodeImage')
    imageNode.name = "INPUTIMAGE"
    imageNode.image = bpy.data.images['ThumbNailDummyImage']
    imageNode.location = (Src.location.x+300, Src.location.y-600)

    #scale node to resize thumbnail to correct size
    scaleNode = nTree.nodes.new('CompositorNodeScale')
    scaleNode.space = "ABSOLUTE"
    scaleNode.location = (imageNode.location.x, imageNode.location.y+200)
    scaleNode.inputs['X'].default_value = thumbWidth
    scaleNode.inputs['Y'].default_value = thumbHeight

    #mix the scale render output with the dummy uv image to force new output size
    mixNode = nTree.nodes.new('CompositorNodeMixRGB')
    mixNode.location = (imageNode.location.x+300, imageNode.location.y)

    #setup output filenode
    fileOutNode  = nTree.nodes.new('CompositorNodeOutputFile')
    fileOutNode.location = (mixNode.location.x+300, mixNode.location.y)
    fileOutNode.layer_slots[0].name='Thumb'
    fileOutNode.file_slots[0].path='Thumb'
    fileOutNode.format.file_format= 'JPEG'
    fileOutNode.format.color_mode = 'RGB'
    fileOutNode.base_path = '//out/'

    #connect nodes
    nTree.links.new(scaleNode.inputs[0], Src.outputs[0])
    nTree.links.new(mixNode.inputs[2], scaleNode.outputs[0])
    nTree.links.new(mixNode.inputs[1], imageNode.outputs[0])
    nTree.links.new(fileOutNode.inputs[0], mixNode.outputs[0])

Here is a very basic script, that adds an app handler to receive callbacks whenever a frame has been rendered, and prints the frame number and path to rendered image file to system console:
import bpy

def render_post_callback(scene):
    frame = scene.frame_current
    filepath = scene.render.frame_path()
    print("Frame: %i, Filepath: %s" % (frame, filepath))

bpy.app.handlers.render_post.append(render_post_callback)

Note: It works for the render settings output options, but not for File Output nodes. As of now, there is no equivalent of frame_path() for File Output nodes.

It's easy to retrieve the base paths (output folders) from File Output nodes:
base_paths = [node.base_path for node in bpy.context.scene.node_tree.nodes if node.type == 'OUTPUT_FILE']

You could let an external script check these paths and generate thumbnails for all rendered images, unless there is already a thumbnail (should be as easy as to name the thumbnails like the original images in a different folder and do a name check). Should work as long as there aren't any unrelated image files in the rendered images folders.

You could write a simple python script, and then call it from the command line. See this related post:

Another way is to use blender's python API, and run a python
  script in blender from the command line (see this post), e.g.:
blender --background /path/to/file.blend --python /path/to/script.py --render-anim or

blender -b /path/to/file.blend -P /path/to/script.py -a

The render resolution can be set with
  bpy.context.scene.render.resolution_x and
  bpy.context.scene.render.resolution_y.

There are several ways you could go about creating a second thumbnail image (related post):

Render twice using a python script, at different resolutions.
Create some compositing nodes from python to scale the image in the compositor.
For example, this:
import bpy

#define thumbnail dimensions and name:
thumb_x = 400
thumb_y = 400
thumb_name = "thumbnail"

# function to find nodes connected to a node
def followLinks(node_in):
    for n_inputs in node_in.inputs:
        for node_links in n_inputs.links:
            print("going to " + node_links.from_node.name)
            return node_links.from_node

scene = bpy.context.scene
scene.use_nodes = True # make sure composite nodes are enabled
for node in scene.node_tree.nodes:
    if node.type == 'COMPOSITE':
        last_node = followLinks(node)
        tree = bpy.context.scene.node_tree

        scale_node = tree.nodes.new(type="CompositorNodeScale")
        scale_node.space = 'ABSOLUTE'
        scale_node.location.x = 200
        scale_node.inputs["X"].default_value = thumb_x
        scale_node.inputs["Y"].default_value = thumb_y

        tree.links.new(last_node.outputs[0], scale_node.inputs[0])

        node = tree.nodes.new(type="CompositorNodeOutputFile")
        node.format.file_format = 'JPEG'
        node.location.x = 400
        node.file_slots[0].path = thumb_name

        tree.links.new(scale_node.outputs[0], node.inputs[0])

bpy.ops.render.render(animation=True) # render animation

Will create an absolute scale node and connect whichever node is connected to the Composite node to it. It will also create a File Output node:

Scale using an external command line image processing program such as ImageMagick.
Scale using a python image manipulation library (see this post).

I don't want to render twice, and I'd rather avoid an external image processing program/library if possible. I just want to replicate the process whereby Blender takes the temporary EXR file it renders and then converts it to the output file format and saves. I want to replicate that process with a smaller file and not get hit with the cost of a second render. Surely this is possible?

@ToddMcIntosh The best option is probably creating some compositing nodes with python (it will handle animations), it's not actually that difficult. I'll try and write something out in a bit..

Yeah, the only problem with the Scale/FileOutput solution, is that it has to be in a different blend file as the scale dimensions only scale the image then overlay it on a large black background the size of the Render resolution. I'm working on a solution using the bpy.app.handlers.render_complete event to add a callback that creates a second scene with separate Render resolution. I'll post it once I get it working.

@ToddMcIntosh Your right.. That's annoying :( I thought I found a solution, but it just outputs transparent (black since jpg doesn't support transparency) images. Here it is in case you want to look at it.

I found a trick that makes the Scale/FileOutput option work. You have to mix the render image with another image that's at the output dimensions you want, and then it works. I've added a new solution that does this dynamically by creating a dummy UV image.

@ToddMcIntosh Ah, of course! You can also use a mask node as well, see this post

That's great about the mask node, didn't know about that. That would simplify my solution even a little more. Thanks!

Ok, I've written a script that solves the question in my own specific context. The following script works when the render job is rendering one frame in the sequence per Blender instance. That works fine for me since the context I'm using it in is a render farm (Brenda with AWS) which handles each frame in the animation queue as an individual render.
CAVEAT: This does not work when trying to render the whole frame range from one instance of Blender as the Event Handler only fires after the last frame is rendered.
thumbnail.py (to be called as part of the command line job launch)
import bpy

class Thumbnail:

doneThumbRender = bpy.props.BoolProperty()
doneThumbRender = False
lastFullFramePath = bpy.props.StringProperty()
bpy.context.scene.frame_current = bpy.context.scene.frame_start
outThumbnailWidth = bpy.props.IntProperty()

def callbackFunc(context):

    lastFullFramePath = bpy.context.scene.render.frame_path(frame=bpy.context.scene.frame_current)

    if bpy.data.scenes.find("THUMB") < 0:

        #Set up Thumbnail Scene
        bpy.ops.scene.new()
        thumbScn = bpy.data.scenes[1]
        thumbScn.name = "THUMB"
        bpy.data.screens['Default'].scene = bpy.data.scenes['THUMB']
        bpy.data.scenes['THUMB'].render.engine = "CYCLES"

        #Setup Composite nodes to resize source image
        bpy.context.scene.use_nodes = True
        inputImageLoc = lastFullFramePath
        Scene = bpy.context.scene
        Tree = Scene.node_tree
        Src = Tree.nodes["Render Layers"]
        Dst = Tree.nodes["Composite"]

        #Create input image node for large source image
        imageNode = Tree.nodes.new('CompositorNodeImage')
        imageNode.name = "INPUTIMAGE"

        #Scale Node
        scaleNode = Tree.nodes.new('CompositorNodeScale')
        scaleNode.space = "RENDER_SIZE"
        imageNode.image = bpy.data.images.load( inputImageLoc )
        Tree.links.new(scaleNode.inputs[0], imageNode.outputs[0])
        Tree.links.new(Dst.inputs[0], scaleNode.outputs[0])

        inputImageXSize = Scene.node_tree.nodes['INPUTIMAGE'].image.size[0]
        inputImageYSize = Scene.node_tree.nodes['INPUTIMAGE'].image.size[1]

        #Calc new render height based on new thumbnail width as aspect ratio of source image
        newRenderHeight = ((outThumbnailWidth/inputImageXSize)*inputImageYSize)

        #Set Thumb Scene Render settings
        Scene.render.resolution_percentage = 100
        Scene.render.resolution_x = outThumbnailWidth
        Scene.render.resolution_y = newRenderHeight
        Scene.render.filepath = "//out/thumb"
        Scene.render.image_settings.file_format ="JPEG"
        Scene.render.image_settings.color_mode = "RGB"
        Scene.cycles.samples = 1
        Scene.frame_start = bpy.data.scenes['Scene'].frame_current
        Scene.frame_end = Scene.frame_start
        bpy.data.scenes['THUMB'].frame_current = Scene.frame_start

        #Check for camera in Thumb Scene and add if missing
        numCams = 0

        for ob in Scene.objects:
            if ob.type == 'CAMERA':
                bpy.context.scene.camera = ob
                numCams + numCams + 1
                break

        if numCams==0:
            bpy.ops.object.camera_add()
            for ob in Scene.objects:
                if ob.type == 'CAMERA':
                    bpy.context.scene.camera = ob
                    break

        #Do Thumb Render
        if Thumbnail.doneThumbRender == False:

            Scene = bpy.context.scene
            Tree = Scene.node_tree
            getImageNode = Tree.nodes["INPUTIMAGE"]
            getImageNode.image = bpy.data.images.load(lastFullFramePath)
            bpy.ops.render.render(animation=True,scene="THUMB")
            doneThumbRender = True

if __name__ == "__main__":
    if Thumbnail.callbackFunc not in bpy.app.handlers.render_complete:
        bpy.app.handlers.render_complete.append(Thumbnail.callbackFunc)


text:
What is the conventional way to input n^x?
If I have a length or angle and type =, blender enters math mode where I can type equations to set the input of a transformation.
The only option I found is a very tedious $exp((1/2) * log(2))$ which there should be no reason to have to type. Can I not enter a simple radical instead?

I usually type sqrt(144) on my calculator instead of 144^(1/2).

Blender uses Python as its script language, so you write the exponent like this:
2**(1/2)

Found another...

The only option I found is a very tedious "exp((1/2)*log(2))" which
  there should be no reason to have to type.

sqrt(2)

There is also the power method,
pow(2, 0.5)

Isn't that what we type on calculators too? \s

@10Replies also true.

Blender uses Python for scripts and is therefore subject to Python's syntax.
The ^ operator or caret operator in python (as well as many other languages) represents the bitwise XOR operation.
You can find out more here:
https://stackoverflow.com/questions/2451386/what-does-the-caret-operator-in-python-do
If you want to know why programming languages feature ^ for XOR instead of exponents read here:
https://softwareengineering.stackexchange.com/questions/331388/why-was-the-caret-used-for-xor-instead-of-exponentiation
You want to use ** which is the exponent operator in Python

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


text:
replace operators with low level functions
While it is extremely easy to find operator calls (by inspecting the user interface and the info window), I have big difficulties to actually find the low level alternative functions which I can (or should) use in my scripts instead of the operators.
One recent example was:

operator call: bpy.ops.anim.keyframe_insert_menu()
RNA method call: obj.keyframe_insert("location",frame=frame)

Finding the operator was a matter of less than a minute. The low level function came to me as a comment about improving my code example.
So I wonder where I could find answers to questions of the type:

"what function(s) can I use to replace this operator... ?"

For me the blender API is not helpful for answering this type of question and google only helped me in few cases.
Of course I could post a question here every time I want to know more about a specific operator. But maybe there is a better alternative (document, gotcha, tip, tutorial...) that I overlook?

Concerning the API ref: The API is "object orientated". So starting from the "object" to manipulate works usually ok. What could help is ignoring bpy.ops for the most part and starting from bpy.data and going down to bpy.types. Sometimes overlooked are the inherited member below on the page.

Did you read http://www.blender.org/documentation/blender_python_api_2_71_release/info_api_reference.html ? Especially the section Simple Data Access is important, because it tells you about the References section on bpy.types pages. Note that obj.keyframe_insert(...) is not low level. Low level keyframe creation is shown here: http://www.blender.org/documentation/blender_python_api_2_71_release/info_quickstart.html#animation

Attempt to create a collection of information resources:
From API documents

Inspect the inherited Functions Section at the page bottom.

From within the Python Console

Inspect bpy.data...
Inspect bpy.types...

List of useful reference documents

Reference API Quickstart (Blender 2.71 API)
Reference API usage (Blender 2.71 API)

Maybe it is useful to collect a list of useful information sources here ?


text:
"save as image" no confirmation when overwriting
Earlier when saving a render with "Save as image" I miss clicked and saved over another render. Is there a way to enable a confirmation dialog for this action?  I will be much more cautious moving forward, but it would be nice to have that extra layer of protection.

There does not seem to be a way to enable any settings to cause a pop up confirmation dialog to appear.
If you are not concentrated on what you are doing during the saving process, you can still automatically click through the dialog and save over if you save files a lot and get used to the process so some conscious effort is still needed in any case. If you find it hard to know, when you are going to override a file look out for red color. That is very easy to spot if you are looking out for it. The file name field turns red if the same file name exists:


text:
Context issues while importing Alembic files in a plugin
I keep getting the context is incorrect error and the error is: Operator bpy.ops.wm.alembic_import.poll() failed.
I have tried all the solutions shared in this post and in the official documentation and the issue still persist.
I am running this command:
bpy.ops.wm.alembic_import(filepath=meshPath, as_background_job=False)

Thanks!

This caused by calling operator form console or text editor.
Here is some sumular cases https://blender.stackexchange.com/a/135995/23459, https://blender.stackexchange.com/a/6105/23459.
The simplest solution is to create your own operator (blender has templates), register it and call from search (F3) menu.

Even if you don't get an answer, please don't ask the same question multiple times.


text:
Should the obj file always contain the keyword "mtllib" for textured models?
I've exported a model out and trying to import it into Blender. However, the Texture is missing. I manually looked in the obj file to find something regarding mtllib, but a search did not find this phrase at all.
Must all textured obj files contain the keyword "mtllib" at least somewhere?

Yes they should, as textures aren't handled/described by the .obj format. The file uses the mtllib to reference the .mtl which in turn should contain at least one material definition. The usemtl in the .obj says which of the materials in the .mtl are used for the 3D object in question. The material definition of the .mtl can have the map_Kd attribute which references a texture file.
Here is an example how the file formats look like when storing the default cube with a texture as .obj and .mtl files.

The .obj file
# Blender v2.80 (sub 74) OBJ File: ''
# www.blender.org
mtllib test_with_texture.mtl
o Cube
v 1.000000 1.000000 -1.000000
v 1.000000 -1.000000 -1.000000
v 1.000000 1.000000 1.000000
v 1.000000 -1.000000 1.000000
v -1.000000 1.000000 -1.000000
v -1.000000 -1.000000 -1.000000
v -1.000000 1.000000 1.000000
v -1.000000 -1.000000 1.000000
vt 0.375000 0.000000
vt 0.625000 0.000000
vt 0.625000 0.250000
vt 0.375000 0.250000
vt 0.375000 0.250000
vt 0.625000 0.250000
vt 0.625000 0.500000
vt 0.375000 0.500000
vt 0.625000 0.750000
vt 0.375000 0.750000
vt 0.625000 0.750000
vt 0.625000 1.000000
vt 0.375000 1.000000
vt 0.125000 0.500000
vt 0.375000 0.500000
vt 0.375000 0.750000
vt 0.125000 0.750000
vt 0.625000 0.500000
vt 0.875000 0.500000
vt 0.875000 0.750000
vn 0.0000 1.0000 0.0000
vn 0.0000 0.0000 1.0000
vn -1.0000 0.0000 0.0000
vn 0.0000 -1.0000 0.0000
vn 1.0000 0.0000 0.0000
vn 0.0000 0.0000 -1.0000
usemtl Material
s off
f 1/1/1 5/2/1 7/3/1 3/4/1
f 4/5/2 3/6/2 7/7/2 8/8/2
f 8/8/3 7/7/3 5/9/3 6/10/3
f 6/10/4 2/11/4 4/12/4 8/13/4
f 2/14/5 1/15/5 3/16/5 4/17/5
f 6/18/6 5/19/6 1/20/6 2/11/6

The .mtl file
# Blender MTL File: 'None'
# Material Count: 1

newmtl Material
Ns 323.999994
Ka 1.000000 1.000000 1.000000
Kd 0.800000 0.800000 0.800000
Ks 0.500000 0.500000 0.500000
Ke 0.0 0.0 0.0
Ni 1.450000
d 1.000000
illum 2
map_Kd texture.png

What is the correct way to relink textures to imported .obj files using that .mtl data?


text:
How to close windows in 2.8?
How do you close windows/tabs in 2.8? I've tried a lot of stuff, but always end up opening up more.

The way I do it is right click on the dividing line between windows and a popup menu gives you the option to 'join' then cursor select which direction the window overwrites the one you want closed.

Just figured that out as you sent it. Thanks!

Is there a way that doesn't involve clicking or hovering on a 4px window? I know blender's UI is considered the worst in the business but surely there must be a more accessible way than having to bullseye a target with your mouse?

Sometimes it shows Join, sometimes it doesn't. This is so annoying. Thanks for the help though.

@tazboy, the "Join" option is only shown when a join is possible. A join between two panes is only possible when they exclusively share an edge (i.e. they're the same width for a horizontal join, or the same height for a vertical join). If joining were allowed in other cases, other panes that are getting in the way would have to be removed, which wouldn't be desirable.

@AndyRay, yes, there is. See my answer below (https://blender.stackexchange.com/a/165915/67327).

Where you click exactly and the direction you move the cursor determines what pane is affected and whether the operation is a split or a join. (That's why you would accidentally create more panes when you mean to close some).
See the following images. The red dot shows where the cursor is clicked, and the green arrow shows the direction of cursor motion. (To ensure you're clicking on the correct side, click within the panes as shown by the red dot instead of the tiny black corner gap).
Join from left to right (keeps left pane; removes right pane):

Join right pane to left (keeps right pane; removes left pane):

Split left pane into 2 pieces:

Split right pane into 2 pieces:

It might help to also explain that the red-dot-area is indicated by a '+' cursor. (the area is rather small but bigger than the area where the right-mouse-menu works!

This helped me so much! I had the exact same problem as the topic starter, but the explanation with the red dot location made all the difference. Thanks!

Take the mouse cursor to either one of the corners of the adjacent windows. When the arrow cursor changes to + shaped cursor, left click and drag to split or join windows.
GIF attached for reference.


text:
How to spread objects along axis?
I have a set of closely positioned objects. I want to make animation of spreading them along one axis with preferably equal gaps. I don't want to use parenting because i want to be able to rotate them freely around they centers later.
What is the simplest way to do this. Can it be achieved with animation nodes plugin or do i have to use only Blender animation curves and make all movements manually?
The following animation shows what i want to achieve with small number of objects.

Two keyframes will suffice, if the centers of the objects are already spread out in the correct order.

Check the manipulate center points button.

⇧ Shift RMB select the objects.
Press I and choose Location to keyframe the location.
Move the cursor in the timeline to the second position. I have the dopesheet open to see the created keyframes.
Press S to scale the objects. Because of the Manipulate Center Points only button, the objects will only be moved, but not scaled. You can constrain the movent to a specific axis, by pressing S>X, S>Y or S>Z.
Repeat 3 to insert a second keyframe.

I would like to obtain gaps between objects of the same size. But this method does not guarantee this. How do I align objects after scalling?

2,8x See Locations in transform tool settings.

Maybe add another answer? This seems to be the missing piece for the quesiton.

When you need to rotate them as you wrote, use clear parent and keep transform. Unparented objects are your next keyframe.


text:
How do I get the knee to bend the other direction?

I've set the pole target as child bone to the IK bone attached to the yellow bone which solved some problems. The knee now constantly bends in the exact opposite direction.

It rotates the foot. It something with rotation. In a video, I heard something about redirecting all axes, but couldn't find where because the given shortcut didn't work.

EDIT: After inspecting the file you provided, the issue is that the leg bones actually bend backwards at the knee very slightly. In this case, Blender will never make the point point the direction you want. If you pull the knee joint forward a bit, or even just make the leg bones perfectly in line the IK will work as expected.
In the IK constraint options, right by where you selected the pole target, there is a Pole Angle option that will change the angle of the bend in relation to the target. Since yours is simply backwards, setting it to 180 degrees should do the trick.

I post an answer. I couldn't insert a picture here and I don't know if your notified about whole new answers.

For future reference you can edit your question and add images there. In the answer you posted, I don't see the knee target in both images. Is it still there? Make sure you've reset all the bones in pose mode as well (alt-g,alt-r)

I had the pole target BEHIND the human for testing because it didn't work when it was in front of him. The bending direction is better now but not completely fixed. Problem 1: The mesh is twisted - the foot shall turn the other direction.
Problem 2: The knee doesn't rotate completely straight towards the pole target but twists the knee left or right.

So the first thing I would do is to have the pole target directly in front of the knee. It will not work well if it isn't. The pole angle will only change how the bones themselves rotate, so use it to point the knee bones directly at the pole target. If you want, you can upload your blend file and put the link in your question and I can take a look.

I found the issue, and included it in my answer. Hope it helps.

Aww, that was so helpful! I would've been lost without you... Ima experiment further now or soon and I hope to have the basics completed soon, so I can be creative. The more I already know of the program, the more I can find out on my own.

Glad to hear it worked. If you're satisfied with my answer, please accept it (the little green check mark on the left) so that future viewers know what worked without having to read the comments.


text:
Blender 2.8 Circular dependency error when baking textures
I have a corridor. The corridor is made up of 2 pieces, a side, and a body(for testing purposes). The side and the body each have one material I UV unwrapped and then made visible in the EEVEE render through the node editor. After that, I have created a new UV map, and I also created a new image with the default settings. Following that, I switched from eevee to cycles because eevee doesn't have the bake option. What followed is a messed up texture bake, and an error reading out "Circular dependency error for cube.001 . I've read that I must disconnect the nodes of materials from the tree, but I did not understand which ones. I looked through a dozen videos and forum posts but couldn't figure it out, perhaps because I am a total noob as of right now.

So I've disconnected the node that is on the right, since I thought that it is what was specified in some forums. But what is resulted(just as I suspected) is a white bake that does not contain my two textures that I tried to bake.

I am close to the right answer however I am stuck. What do I need to do so I can remove all materials and then use a single one with the baked texture on it? Thank you in advance.

Alright, I figured this out! Hell yeah! https://www.youtube.com/watch?v=9airvjDaVh4

Just disconnect the TEXTURE node you are baking to. Then reconnect after it is finished baking. HTH.

Huh, interesting. Do you know why this is necessary?

I also dont get why it is made this complicated and easy-to-forget..

Just add the UV-Map to the destination image.
You find the UV-Map Node in the Shader Editor under Add -> Input -> UV Map. Then you have to connect the purple UV socket to the Vector socket of you destination image.
Double check if you have selected the correct UV-Map and file in every material.
After that backing should work without any circular dependencies.

I had this issue too, and just figured out how to fix it.  What the issue was was that I had separated one of my mesh layers into separate mesh layers, and each one of these retained duplicate copies of my materials.  After I deleted the unnecessary duplicate materials on those other mesh layers, it baked just fine.  Hope this helps someone.

I know this is an old question, but whoever else might have this issue, maybe I can offer some help. I had 3 separate materials on my mesh. I had to add the image texture node I was baking to each of these materials and made sure they were each selected.

Added to each


text:
Is it possible to test for a previously created folder on the hard drive
I'd like to create a folder on the hard-drive for the first time the selected model is exported.
After this, the script will fail, because the folder being created by os.mkdir already exists:
directoryPath = "//_MODEL_FOLDERS_/"
path = bpy.path.abspath(directoryPath)

# fails if dir exists
os.mkdir(path + obj.name)

It should be tested.
So does anyone know of a way to test if a folder already exists before trying to create it?

Not sure what this has to do with blender..?

I find it odd that you would make an issue that I did not specifically use the word 'Blender' especially since I did say "to create a folder on the HD for the first time the selected model is exported".

It sounds to me like you are really asking how to test if a directory exists using python. It doesn't matter whether or not you use the word "Blender",  it could be any script you are writing.

This question appears to be off-topic because it is about pure Python.

Yeah, I did not realize that right away since I only use Python within the context of Blender.

I would suggest to use os.path.join() instead of +.
To test you can use os.path.exists(os.path.join(path, obj.name))

Could you explain why you should use os.path.join instead? Also, there's a bracket missing at the end of the last line.

Using + will simply join two strings together while os.path.join() will join two paths "intelligently" which is to say it will place the correct platform specific separator between them if not already present.


text:
Is there a way to convert a mesh's UV's into a second mesh using a script?
So what I've been doing to bake Cycles depth maps is based on the following thread found on the BA.org forum and I've mentioned this here already but I'd like to take this a step further using a script but I'm not sure how to do this myself.
If you have a look at the following  thread, there is a method for creating Cycles Depth maps using an Orthographic camera but it's limited to planer objects.
http://blenderartists.org/forum/showthread.php?273033-Sculpting-with-UVs-and-displacements/page34
I've expanded this technique slightly by baking an objects' color as white and with no Margin overdraw so that I have a guide for using the above mentioned technique but in a more 3D way since the resulting texture will match up with the 3D Objects UV coordinates.
Basically, this is how I modeled the pillars on the following model.

and the setup looks like this.

The problem is that we have to be very careful around the UV Island boundaries because if the depth map does not match up perfectly with the UV's then the Displace modifier will make a big mess at all the seams.
So this brings me to the question.  How can we convert a UV coordinate set into an actual flat 3D mesh that would still match up perfectly with the UV's of the model they were created from.
Here is an image to help illustrate this.
So does anyone have some thoughts on how to make a script that can make this conversion from UV's to a new mesh that looks exactly like the UV's of the first model so that the Cycles Camera Depth map technique can be used to make perfectly aligned displacement UV maps?
X and Y should translate directly into the new meshs' X and Y positions and z would be set to be all 0's. This worked when I did it with GLSL so it should work here as well.
So I guess my question is how can we write a script using Blender Python that does this?

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

In Object Mode with an object selected (tested with an unwrapped cube)
import bpy

ob = bpy.context.object

def createMeshFromData(name, verts, faces):
    # Create mesh and object
    me = bpy.data.meshes.new(name+'Mesh')
    ob = bpy.data.objects.new(name, me)
    ob.show_name = True

    # Link object to scene and make active
    scn = bpy.context.scene
    scn.objects.link(ob)
    scn.objects.active = ob
    ob.select = True

    # Create mesh from given verts, faces.
    me.from_pydata(verts, [], faces)
    # Update mesh with new data
    me.update()
    return ob

out_verts=[]
out_faces=[]
for face in ob.data.polygons:
    oface=[]
    for vert, loop in zip(face.vertices, face.loop_indices):
        coord = ob.data.vertices[vert].normal
        normal = ob.data.vertices[vert].co
        uv = ob.data.uv_layers.active.data[loop].uv
        out_verts.append((uv.x*10,uv.y*10,0))
        oface.append(loop)
    print(oface)
    out_faces.append(oface)

createMeshFromData(ob.name + 'UVObj', out_verts, out_faces)

If you are using Blender 2.8 series, the script below does the exact same thing. Note that there is a size variable introduced to help scale the output mesh if needed:
import bpy

C = bpy.context
ob = C.object
size = 10.0

def createMeshFromData(name, verts, faces):
    # Create mesh and object
    me = bpy.data.meshes.new(name+'Mesh')
    ob = bpy.data.objects.new(name, me)
    ob.show_name = True

    # Link object to scene and make active
    C.view_layer.active_layer_collection.collection.objects.link(ob)
    C.view_layer.objects.active = ob
    ob.select_set(True)

    # Create mesh from given verts, faces.
    me.from_pydata(verts, [], faces)
    # Update mesh with new data
    me.update()
    return ob

out_verts=[]
out_faces=[]
for face in ob.data.polygons:
    oface=[]
    for vert, loop in zip(face.vertices, face.loop_indices):
        coord = ob.data.vertices[vert].normal
        normal = ob.data.vertices[vert].co
        uv = ob.data.uv_layers.active.data[loop].uv
        out_verts.append((uv.x*size,uv.y*size,0))
        oface.append(loop)
    print(oface)
    out_faces.append(oface)

createMeshFromData(ob.name + 'UVObj', out_verts, out_faces)

Result:

I changed the following line and now it aligns perfectly with a UV baked texture that is loaded in using the Images As Planes Addon -> out_verts.append((uv.x-0.5,uv.y-0.5,0))  You're a champ, this is awesome.

I found the script very usefull, but it doesn't give me a correctly scaled mesh. I got a tiny tiny mesh instead, is there a scale factor to be applied?

@piepolitb you could try to increase the factor 10 in this line out_verts.append((uv.x*10,uv.y*10,0))

Awesome script. @piepolitb Set your units to None and it outputs the correct scale. Mine was set to Meters and I had the same scaling issue.

I’m so glad to see this because it gives me an idea about masking with the uv mapped image on the result mesh in camera view.


text:
2.8 Beta Hotkeys for manipulators
Is there any way to define hotkey for selecting manipulators in 2.8? I found one thread mentioning view3d.enable_manipulator command but that worked for 2.7.3, while https://docs.blender.org/api/blender2.8/ does not mention enable_manipulator method so my guess is it got moved somewhere?

Currently the view3d.enable_manipulator command appears to be disabled in Blender 2.8 beta.
The next best solution that I could find is changing the Spacebar Action in your preferences to "Tools".

This will activate your tools menu when pressing the spacebar, allowing you to access the hotkeys for the manipulator.

You can also rightclick the tool in the toolbar and change the shortcut there. This won't save in your preferences though so you might wanna include that change into your startup file. It also must be changed for each mode seperately.
With already existing files I run into the problem that these shortcuts won't save at all and need to be redone at every load.
This function overall feels very beta version but might be what you need for now.


text:
Blender runs slow
When I reinstall my Win 7 I installed all new drivers and Blender. Firstly Blender didn't work because new version need Service Pack 1 so after few Win Updates Blender starts to run. So I open Blender and I want to do some objects, but Blender was horrible slow! All Blender, from menu to selecting vertex is slow now. But before, I ran Blender 2.78 on the same Win 7 and same specs without problems. When I install fresh OS it's working so slow. I don't know what my PC is missing.
Specs:
Win 7 64-bit
i5 - 4440 3.1GHz
GTX 770 2GB RAM
8GB RAM
and 2.78 Blender runs still slow...
Thanks
EDIT
I'm using Windows 64-bit, and I have Blender installed in the Program Files folder, which is for 64-bit programs. Blender only works if installed in Program Files(x86) I know I downloaded Blender-2.78-windows64.msi, so I don't see why it's doing this.

My Win is 64-bit so, I install Blender in Program Files folder, but I think what may happend when I try to install it in Program Files (x86) folder and it's working. But I still don't understand why it was doing this problems, I download blender-2.78-windows64.msi for 64-bit system so why? Thanks for your free time :)

Is you CPU usage very high? If not then this is probably a graphics driver issue. Try uninstalling them and reinstalling or searching for a newer version or the latest beta.

I tested now, and CPU was at 48% - 51% of usage. So propably not very high usage, or? I have installed the newest nVidia 375.57 graphic drivers. I tried installed older drivers that I used on my previsious Win and istall back the 375, and few times reinstalling them. Still nothing helps.

Constant CPU usage that high is not normal  there is something wrong else wrong. Either OpenGL acceleration is not working at all, failing back to software emulation, or its not graphics related. Did you get any command line errors about OpenGL?

Okay. I get warning from Blender: Legacy WGL is unable to select between OpenGL versions.found bundled python: C:/Program Files/ Blender Foundation/Blender/2.78/python.

Well there's you issue. Not sure how to solve it exactly but Blender basically can't use your graphics card/drivers. Have you installed new drivers for your graphics card after reinstalling the OS? Do you have the latest version? If not start there.

The second thing that I installed on new OS was the newest NVIDIA 375.57 graphic drivers using NVIDIA Experience. The 1st thing was Java. So I have already the lastast version of it. Then I try to install old one - I think it was 372.90. They didn't work too, so I install back the 375.57. But the think is, that when I switch to use Intel HD Graphics, Blender still work slow. Any next steps?

I'm out of options without looking at it. See http://blender.stackexchange.com/questions/51905/legacy-wgl-is-unable-to-select-between-opengl-versions-error or http://blender.stackexchange.com/questions/51653/warning-legacy-wgl-is-unable-to-select-between-different-opengl-versions or https://developer.blender.org/T48353 or https://developer.blender.org/T48756

By the way, thank you very much for your help! I'm really disappointed that Blender won't work normal.

If nothing else works, try reporting a bug report to the tracker, though I'm not sure about the success. It's weird that it used to work and now no longer works

I have one more think that I need you to say. If I ran Blender in Full Screen Mode (Alt + F10) The scene start to response faster than like in normal window. And Blender work faster too when I have it in windowed mode on half of my screen. I'll try some fixes and I'll write here if anything helps.

Yeeeeeeeeeeeeeeeeeeaaaaaaaaaah, finallyyyyyyyyyyyyyyyyyyyyyy Blender starts to work !!!!!!!!!!!!!!!! Ouuuuuuuu yeaaaa. Sorry, but I'm happy more than little child. Ouuuu yeeea. My Win is 64-bit so, I install Blender in Program Files folder, but I think what may happend when I  try to install it in Program Files (x86) folder aaaaaaaaaand it's workiiiiing. But I still don't understand why it was doing this problems, I download blender-2.78-windows64.msi for 64-bit system so why? Thanks for your free time.

I never ever install Blender (or most other applications for that matter) into the system, always use zipped versions in portable mode. Installing to system only ever leads to trouble. Anyway you should post that as an answer bellow, it may help other sin the future. EDIT: never mind, just saw you already did.


text:
Can't manipulate linked or appended objects that were made with 2.79 inside 2.8
I'm using Blender 2.8 and my friend works in 2.79. Whenever I append or link his files there is something like a locked logo front of those objects and I can't manipulate these. What could be the issue?

The symbols resembling a chain link in front of an Object stand for linked objects.
They definitely only appear if you link to an object instead of appending it.
If you append an object, you create a local copy of an object from another .blend file, which can be manipulated like any other object. If you link to an object in another .blend file, you can't manipulate this linked object, instead you have to manipulate it in the original file.
To create a local copy of a linked object, click on the object with the chain link symbol, click on "Object" in the "Properties" panel, then hit the chain link symbol on the right side of the Object selector dropdown.

This is an issue with recent builds of 2.8. If you append files from 2.7 layers/collections come in linked. If your able to open the original 2.7 file in 2.8 (make a backup first) save it, then append it into the new project and it will be localised.

Never happened to me and I append objects from 2.7x files on a daily basis. The official bug tracker shows one issue, that turned out to be a problem on the user's side.


text:
Imported SL rectangular mesh doesn't allow edge loops after decimation modifier
OBJECTIVE : Import a rectangular box (Panel) from Second Life and use edge loops to cut a doorway/window through the panel, in Blender..
HISTORY : I have a rectangular box that I imported from Second Life.  I've opened it and it has 9 quads per face (18 triangles).  I decimated the rectangular box using DECIMATE modifier (using planar), and it resulted with each face as a single quad.  I was unable to create an edge loop around the rectangle, ONLY able to put an edge on one face...  So, I used SOLIDIFY modifier.  That failed.  I tried SOLIDIFY again from scratch and used 1.0 thickness, which seemingly allows me to create an edge loop around the object..
2 Problems.
I.  After placing 3 edge loops for a doorway, I'm unable to select individual faces without often selecting an adjacent face, too.
II. When I delete faces, nothing deletes.  The object is intact, always.  After continual delete operations, some faces from the new edge loops disappear, seemingly at random, without any obvious relation to what I'm trying to delete.
KEY INFORMATION :
A. If Solidify is NOT set to 1.0 thickness, I can see the faces having 3d thickness of their own, not meeting to the center - and when this happens the edge loops go around the geometry of the face and not the object - which signifies that the initial edge loop problem has not been solved with solidify at 1.0 thickness, either....
---- This is what I believe causes the issue in the first place with failed edge loops on this simple model.  I believe the edges have some kind of geometry that forces edge loops to wrap around the face, INSTEAD of around the box..
B. SOLIDIFY may be falsely solving the edge loop problem, if the edge loops are STILL going around the geometry of a single face, at the thickness of the object itself.......
CONCLUSION : I have an issue with not being able to use edge loops around a simple rectangular mesh geometry to delete geometry for creating a doorway/window, because the edge loops apply only to a single face and solidify is likely not the solution because of the multiple faces being accounted for..
Due to the simple box geometry, I'm not sure why I would have difficulty with these steps on this model.  It's only a box (rectangular and flat).  Nothing is responding the way it should, and I've tried many things that have been suggested elsewhere throughout the internet.  I only need to cut a door or window through it using edge loops.  This should be a very simple operation,   However on this rectangular mesh it seems IMPOSSIBLE to do.  I'm not sure what to do.
I can share a copy if that's helpful.  I'm not sure if there is something unique about this panel?  Any help would be greatly appreciated - thank you in advance :-)

I identified and solved the problem!!  Basically, the edge loops are working fine in regards to what they are selecting.  The mesh export from Second Life differs from the traditional box on the Blender load screen.  Its faces require decimation and the make-up of the mesh isolates the faces in a fashion that's challenging for the normal process.  Solidifying at 1.0 thickness IS required.  However, what it's doing is making each face the same size in 3d space, as well as occupying the same 3d place.
To conduct successful cuts, the edge loops should be created first.  Each edge loop was placed in face select mode, with linear selected and clamp enabled.  After all required edge loops are created, you then select the face you want to delete on each side of the wall ONCE.  After each face is removed once, you are then going to select all the other object that are inside your wall...  So face select within the hollow space and you see it's the selection size of the entire object.  Lift it up out of your object.  Continue selecting the face in the hollow area until it is see through, and all the extra items are above the model.  Now - select them in face select mode and delete all faces, and then repeat this in edge select mode (to get all the edges).  Do this multiple times if needed to remove the extra stuff.  Then - the jam part of the opening can be filled in with a face.  Simple go to edge select mode and shift + Right Click 2 edges at a time in the doorway.  Then press CTRL + E and choose to make a new face.  This fills that side in around your door jam.  Due this for each face going around the hollow you created in the wall.  This closes it up and gives you the desires result!  A CLEAN doorway/window that goes through your wall, from a Second Life Collada (*.dae file) export to Blender.
**  This is the manner in which to export mesh prims from Second Life to Blender, and the edit them to cut doors, windows, and other 3d geometric openings within the object.  Also, this is a good way to decimated the mesh topology to a lower-poly without any quality loss.  Low-Poly is a huge consideration with builds.  Learning to fine-tune the manners that we design and build with this in mind streamlines a product for editing and use in a wide variety of manners.

One Additional Note : The SOLIDIFY modifier should only be used on components that need to be worked. If you're NOT creating a door or window using edge loops on a component, do not use the solidify modifier or it will cause issues with it. Only use the Decimate modifier for these. If you are working the component to make a door/window, use both modifiers (Decimate then Solidify). Also, be sure to select "Sharp" under decimate and make the thickness and clamp 1.0 for the solidify. And - use sharp instead of inverse for each edge loop when placing (seen on left after first 1-2 clicks) and have clamp checked off. Lastly, if having difficulty selecting a face to delete, you can zoom in to select it.
The extra stuff that's removed form the worked components can be deleted by pressing B and making a box around it, then Pressing X and choosing to delete faces or edges (this will depend if you have edge or face select enabled-switch to delete one or the other). Do this a multitude of times until all faces and edges are gone that were removed.


text:
Adding thickness to a mesh in Blender
I'm using blender to make a basic model of my house and I want to hollow out the inside of the house so that the walls are slightly thicker and there are normals facing both ways, I'm not really sure how to can achieve this. I think it's called shelling?

Also, has anyone got any tips on working on the interior of buildings, because I find it nearly impossible to do so :/

The Solidify modifier could be useful here. Go and check it out.
If you want to do buildings I would highly recommend that you "build" the house, instead of trying to carve it out of a block.
It would be a lot easier to build everything in pieces. Not everything has to be done in one piece in Blender. And you can always merge the Geometry later.
Build walls, cut windows into them. Add the window frames. Etc.
Build the house, dont try and carve it out.

Or better still: Start out by drawing your floor plan onto a plane, then grab all the edges and extrude the walls up all at the same time.

There is also a pretty good addon that aids in making architectural elements, walls, doors, windows, roofs, etc. http://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/Add_Mesh/Archimesh


text:
Python: Make an Operator update UI after executed
Example: I want to press a button in the UI and have a label/list change to display below the button. Not on the Operator's F6/Redo panel, but once the Operator has been appended somewhere else in the UI.
So perhaps the question would be if it's possible to use the Operator's draw function somewhere else in the UI (appended or on it's own Panel).
I know it can be done updating a global variable, then using it from the UI code, but I know globals a no-no in general.
Thanks!

You can use static members (class variables) to store information in the operator.
Here's an example that adds a panel and an operator. The operator increases a class variable to reflect how often it has been called. This number is drawn in a panel in the Scene tab of the Properties Edtior:
import bpy

class HelloWorldPanel(bpy.types.Panel):
    """Creates a Panel in the Object properties window"""
    bl_label = "Hello World Panel"
    bl_idname = "OBJECT_PT_hello"
    bl_space_type = 'PROPERTIES'
    bl_region_type = 'WINDOW'
    bl_context = "scene"

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

        layout.operator(SimpleOperator.bl_idname)
        layout.label(str(SimpleOperator.run))

class SimpleOperator(bpy.types.Operator):
    """Tooltip"""
    bl_idname = "object.simple_operator"
    bl_label = "Simple Object Operator"

    run = 0

    def execute(self, context):
        self.__class__.run += 1
        self.report({'INFO'}, str(self.__class__.run))
        return {'FINISHED'}

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

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

if __name__ == "__main__":
    register()

Thank you very much CoDEmanX! Had no idea this was possible, this solved it in a super clean way.
Cheers!

This can for sure be useful, but in this case SimpleOperator.run is effectively a global, just using a class as storage. If you want to do this it can be ok, but to avoid confusion you could also just define a class and store globals there, rather then mixing it up with panel/operator classes.

The question seems to assume that globals are needed, however an operator can store Python attributes in its instance, and using draw and check callbacks it can refresh the operator redo panel in a way the script author can control.
Heres an example of how you can store some operator variables used in the UI without having to use globals.
import bpy
from bpy.props import BoolProperty

class SimpleOperator(bpy.types.Operator):
    """Tooltip"""
    bl_idname = "object.simple_operator"
    bl_label = "Simple Object Operator"
    bl_options = {'REGISTER', 'UNDO'}

    toggle: BoolProperty(
        name="MyToggle",
    )
    use_count: BoolProperty(
        name="Use Count",
    )

    def __init__(self):
        # notice this is a typical python attribute
        # which Blender doesn't know about (not from bpy.props)
        # no global's needed here, just an attribute instance.
        self.label_counter = 0

    def draw(self, context):
        layout = self.layout
        layout.label("Count %d" % self.label_counter)
        layout.prop(self, "toggle")
        layout.prop(self, "use_count")

    def check(self, context):
        # should we redraw when a button is pressed?
        if self.use_count:
            return True
        return False

    def execute(self, context):
        if self.use_count:
            self.label_counter += 1
            self.report({'INFO'}, "Count %d" % self.label_counter)
        return {'FINISHED'}

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

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

if __name__ == "__main__":
    register()

The issue here is it sounds like you want to use globals, without using the global keyword.
As far as I'm concerned a global is a global - no matter what you call it.
So don't trick yourself here, rather then identifying globals as bad, just accept there are times when a state is global and try to do it in the least error-prone way.
Of course try avoid these situations - but lets just assume you checked the alternatives and came to the conclusion some global state is needed.
Rather then mixing global state in with existing classes, I prefer to explicitly define a class which stores state, especially if its shared between multiple functions/classes.
# Singleton for storing global state
class _MyState:
    __slots__ = (
        "uploading",
        "token_reload",
        "size_text",
        )

 def __init__(self):
    self.uploading = False
    self.token_reload = True
    self.size_text = ""

# One state to rule them all (otherwise known as a singleton)
my_state = _MyState()
del _MyState

The advantage with using __slots__ is you clearly define whats global, and you can't accidentally assign some invalid var.
eg, .size_tetx = "" - will raise an error, with very large scripts allowing such mistakes to fail silently can loose your time debugging silly typos.

Heres an example of such a class used in the Sketchfab addon


text:
Unwrapping the inside of a barrel
I'm trying to UV unwrap the inside of a barrel I made.
The problem is, when I select the inside of my barrel, and use the
Mesh > UV Unwrap... > Cylinder Projection, I get a weird unwrapped form. How can I solve this?

Cylinder Projection is based on the angle of the view.
Try switching to front (Numpad 1) or side view (Numpad 3), then unwrapping again:

It worked, see my result. Thank you! :)

Blender's automatic UV unwrapping doesn't always work correctly. You can do it manually easily if you mark(CtrlE > Mark Seam) the top seam, the bottom seam and one seam down the middle:

Then unwrap (U > Unwrap):

Aside from the ideas above you may also try applying the Location, Rotation and Scale in Object Mode using Ctrl-A.
Not doing so will really screw up a lot of the various operations in Blender, this includes UV unwrapping.

Don't count on the order of the answers to stay constant. Refering to answers above yours will not work when your answer is voted to the top. :-)

yeah, I forgot about this.  Thanks.  I'll leave it the way it is so people will learn from my mistake.


text:
how to use random.choice with transform.resize?
I would like to resize the columns in z-direction randomly between 0.0, 0.33 or 0.66.
This way it doesn't work (tried the same with rotation, that does worked).
Anybody knows how it will work?
Thanks a lot!
import bpy

def Column(pos_X, pos_Y, pos_Z, dim_X, dim_Y, dim_Z):
    bpy.ops.mesh.primitive_cube_add(location=(pos_X , pos_Y, pos_Z + dim_Z/2))   #remettre le cube sur la base
    bpy.ops.transform.resize(value=(0.5, 0.5, 0.5))
    bpy.ops.transform.resize(value=(dim_X, dim_Y, dim_Z))

def Columns():
    for i in range(0,4):
        for j in range(0,4):
            Column((i*0.33)-((4/2)*2)+3.5,(j*0.33)-((4/2)*2)+3.5,0,0.01,0.01,1)
            bpy.context.object.name = "COLUMNS"
            bpy.data.objects["COLUMNS"].select = True
            bpy.context.object.name = "COLUMNS.001"
            bpy.data.objects["COLUMNS.001"].select = True
            bpy.ops.object.join()
            bpy.context.object.name = "COLUMNS"
            bpy.data.objects["COLUMNS"].select = True
            bpy.context.object.name = "COLUMNS.001"
            bpy.data.objects["COLUMNS.001"].select = True
            bpy.ops.object.join()

Columns()

bpy.ops.object.origin_set(type='ORIGIN_CURSOR', center='MEDIAN')
scale = random.choice[(0,0.33,0.66)]
bpy.ops.transform.resize(value=(1, 1, 1*scale))

You need to make two small changes to make your script run - add import random and the call to random.choice you have the function brackets and array brackets back to front.
import bpy
import random
...
...
...
scale = random.choice([0,0.33,0.66])
bpy.ops.transform.resize(value=(1, 1, 1*scale))

Also I think the end result may not be what you are after, I expect you want to move the random size into the column creation to make each column a different size.


text:
Should an Operator remember its last-used settings when invoked?
I have an operator that draw its own panel (via invoke_props_dialog) when invoked to let user set properties which are then applied to the selected object, but the settings are not remember from one call to another when I use the operator's own panel. It works though when using the Tool Shelf Redo feature (bottom of the left panel in the 3D view).
Here's a sample code example to illustrate this issue. It adds a Test Panel with a Test button to the Data properties.
# add a Test Panel with a Test button to the Data properties.
import bpy

class DATA_PT_test(bpy.types.Panel):
    bl_label = "Test Panel"
    bl_space_type = "PROPERTIES"
    bl_region_type = "WINDOW"
    bl_context = "data"

    def draw(self, context):
        self.layout.operator("object.test_invoke")

class OBJECT_OT_test_invoke(bpy.types.Operator):
    bl_idname = "object.test_invoke"
    bl_label = "Test"
    bl_options = {'REGISTER', 'UNDO'}

    width = bpy.props.IntProperty(name="Width",
            default=10, min=0, max=100)
    height = bpy.props.IntProperty(name="Height",
            default=20, min=0, max=100)

    def execute(self, context):
        self.report({'INFO'}, "w:{}, h:{}".format(self.width, self.height))
        return {'FINISHED'}

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

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

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

if __name__ == "__main__":
    register()

Detailed steps:

Use the operator button: it uses its default settings.
Change the settings, apply them, then re-use the button: the last-used settings are not remembered, it still uses the default one.
Use the operator button, modify the settings in the Tool Shelf, use the button again: the setting from the Tool Shelf are remembered. (It does the same when using the Redo Last F6 panel to modify the settings).

For info, I already know some hacky ways to make it work but that's not really the point.
I'd like to know if something is wrong or missing in this code, if it sounds like a Blender API bug, or if it's simply not an expected feature.
I'm using last official Blender 2.69.0 (r60995). I have the feeling it worked with previous releases (only from 2.62 though) but didn't feel like reinstalling just to try...

I've just reinstalled 2.62 to be sure, and this version works as expected. There's also a "Reset" button that appears in the panel. This was really more convenient. Anybody know the reason of this regression?

Add 'PRESET' to bl_options and use Restore Defaults in the preset dropdown that will now appear in the Redo panel.

Just found out that it's a standard operator, that can be added to the redo panel in draw() like this: layout.operator("wm.operator_defaults")

From what I understood it was actually an API bug. So the answer is, yes an operator should reuse its settings, even with popup dialog.
The whole bug report can be found here.

1) The dialog is supposed to start with the default settings. A new operator instance is created as you open it, and the default values are taken from the property definitions. The redo panel works differently, it revokes what the last operator did, but keeps the values in the UI and re-executes with new settings.
One could say, the redo panel relates to the last operator, whereas your dialog is part of a new operator.

2) Operators remember their settings to allow for redo / repeat functionality, see Operator Design.
The operator log is available to python:
bpy.context.window_manager.operators
You could read the value used for a translation like Operator.properties.value. But I wouldn't recommend to iterate the log in reverse direction until you find an instance of your operator, just to read the last used settings.
How about this generic solution instead, which stores the settings at python class level:
Use a static variable (dictionary) to store the operator settings on execute(), and load them on invoke() into self.properties. These two methods can be defined together with the static dict as separate class, and be mixed-in into the operator class:
import bpy

class OperatorSettings:

    # Static member
    _settings = {}

    def save_settings(self):
        for d in dir(self.properties):
            if d in {'bl_rna', 'rna_type'}:
                continue
            try:
                self.__class__._settings[d] = self.properties[d]
            except KeyError:
                # catches __doc__ etc.
                continue

    def load_settings(self):
        # what exception could occur here??
        for d in self.__class__._settings:
            self.properties[d] = self.__class__._settings[d]

class DATA_PT_test(bpy.types.Panel):
    bl_label = "Test Panel"
    bl_space_type = "PROPERTIES"
    bl_region_type = "WINDOW"
    bl_context = "data"

    def draw(self, context):
        self.layout.operator("object.test_invoke")

class OBJECT_OT_test_invoke(bpy.types.Operator, OperatorSettings):
    bl_idname = "object.test_invoke"
    bl_label = "Test"
    bl_options = {'REGISTER'}

    width = bpy.props.IntProperty(name="Width",
            default=10, min=0, max=100)
    height = bpy.props.IntProperty(name="Height",
            default=20, min=0, max=100)

    def execute(self, context):
        self.report({'INFO'}, "w:{}, h:{}".format(self.width, self.height))
        self.save_settings()
        return {'FINISHED'}

    def invoke(self, context, event):
        self.load_settings()
        wm = context.window_manager
        return wm.invoke_props_dialog(self)

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

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

if __name__ == "__main__":
    register()

Should work for base types (int, float, str), but will probably fail for CollectionProperty as it is. But should be possible if you implement (de-)serialization functions for such propert types.
If you add non-property class variables to the operator, make sure to exclude them in save_settings(), or add a type check for all members - see the bl_rna property for that:
self.properties.bl_rna.properties['...'].type # e.g. 'INT'

BTW: I removed 'UNDO' from bl_options 'cause every change in the redo panel causes a re-execution of the operator. This is not the case for the dialog, the operator is run once on confirmation. Such dialogs should be used if an operator takes a long time to finish, to avoid irresponsive UI. So it's probably not supposed to have the redo functionality enabled.

3) There's another approach:
Register global properties (e.g. on bpy.types.Object or bpy.types.WindowManager) and add them to a panel. Let the user set them before (s)he clicks an Execute button. Pass the global properties to the operator. Global properties are remembered, so it works similar to the redo panel.
Example:
import bpy

class PrintSomeString(bpy.types.Operator):
    bl_label = "Print Some String"
    bl_idname = "object.print_some_string"
    bl_options = {'REGISTER', 'UNDO'}

    print_this = bpy.props.StringProperty(name="Print this")

    def execute(self, context):
        self.report({'INFO'}, self.print_this)
        return {'FINISHED'}

class HelloWorldPanel(bpy.types.Panel):
    """Creates a Panel in the Object properties window"""
    bl_label = "Hello World Panel"
    bl_idname = "OBJECT_PT_hello"
    bl_space_type = 'PROPERTIES'
    bl_region_type = 'WINDOW'
    bl_context = "object"

    def draw(self, context):
        layout = self.layout
        layout.prop(context.window_manager, "some_string")

        props = layout.operator(PrintSomeString.bl_idname)
        props.print_this = context.window_manager.some_string

        props = layout.operator(PrintSomeString.bl_idname, text="Print welcome message")
        props.print_this = "Welcome to Blender!"

def register():
    bpy.utils.register_module(__name__)
    bpy.types.WindowManager.some_string = bpy.props.StringProperty(name="Some String")

def unregister():
    bpy.utils.unregister_module(__name__)
    del bpy.types.WindowManager.some_string

if __name__ == "__main__":
    register()

Paste into Text Editor and Run Script. See Object tab in Properties Editor.

Thanks for the detailed and informative answer, though it doesn't really answer the question.

The redo panel was quite convenient, that's why I kept 'UNDO'. In fact I'll probably keep the Tool Shelf only and remove the invoke_props_dialog(), but I couldn't find a way to automatically open the Tool Shelf in case it's not opened yet (to guide the end-user).

Edited post to explain a bit why it's not remembered for dialogs and added another possible solution (depends on exact goal if it's suitable).

Point 1) is not true. The dialog does read the last-values (you can see it uses the one set in the Tools Shelf instead of the default ones). Where it fails IMO is at saving them. That why I presume this behaviour is unintended...

Point 2) I actually planned to use:
"bpy.data.window_managers['WinMan'].operators[-1].bl_rna"
to check if this is actually the same operator. Then I could get the last values form here. But it sounded a bit hacky anyhow, and probably undocumented.

It reads the values but does not store them? Makes no sense to me. If I click the operator button for the dialog with no further code, then the defaults are used and shown in dialog, 'cause it's a new operator instance. 2) Simpler access: bpy.context.active_operator.bl_rna

Yes it HAS TO read the value, otherwise it would not restore the values set in the Tools Shelf, wouldn't it?
For 2) Thanks. But in fact I would have to loop backward instead of a simple [-1] (in case another operator was used in between).

What's your OS? Can't follow you, 'cause the software behavior appears to be different for us. The Redo panel "remembers" the last settings, but the dialog does not, since both work differently... 2) True, but that's why I would store the info in a class variable - no looping needed at all.

2.69.0 (r60995) on Windows 32bits. If I use exactly the code in my question it does exactly what I wrote in the Detailed steps.

You are right, the dialog uses the remembered values if they were changed ealier in the redo panel. Redone operators seem to be handled a little differently (or do they overwrite the defaults somewhere??), but might actually be intended. You can submit a bug report to clarify.

Ok, I have submitted a bug report. According to the result this question could either be answered or closed. Thanks for your help.

Just wanted to thank for for this. The first solution works perfectly for me. I  had no idea you could pass in another class to the operator like this. Wonderful! This should be the accepted answer.


text:
How to rename uvmaps in multiple objects
I have hundreds of objects. Some have uvmap named "UVMap" while others have some other names. How do I change the uvmap name in all objects to UVMap?
I did find this but the script adds a new uvmap (UVMap.001) if the existing one is already named as UVMap: How to rename UVs of all the objects?. Because blender search does not sort by uvmap name I can't limit my selection to objects that have other name.

I figured out a very simple answer. First rename all uvmaps to something random like "bnoterp" that is not anywhere. That changes all (primary?) uvmaps to that name. Then after that rename all of them to "UVMap". That way the script does not create new uvmaps called UVMap.001 when it finds uvmaps with the same name as the script.

What exactly do you mean? The script renames all found UV maps to 'UVmap' it is Blender that adds .001 automatically the moment it encounters any repeating name so no matter what you do, if an object has a few UV maps and all of them are named the same it will add the number after the name for every one of them after the first one. UV map names in a single object must be unique and it cannot be any other way no matter what you do. What is it that you solve by renaming twice?

I thought I made it very clear. Imagine you have several hundreds of objects. Some have uvmap named UVMap, some have aabbcc, some have ccddee, some have something else. But each has and can only have one uvmap (I can't have more than one). To change all their uvmap names to "UVMap" you need first name them to something else or x percentage of those objects now have two uvmaps. One called UVMap and one called UVMap.001 becauset he script creates duplicates if it finds already existing uvmaps with the same name.

You must be mistaken. There is no code there that could create a UV map. It just goes through existing UV maps and names them. For every UV map: for uvmap in  obj.data.uv_layers it names the UV map  uvmap.name = 'UVMap' This is all it does. That cannot possibly create anything because it only sets a value for something that exists already. Only if the objects have multiple UV maps already before the script is run, you will see the numbers added to the names.


text:
How do i change encoding settings with python
import bpy
for scene in bpy.data.scenes:
    scene.render.image_settings.file_format = 'H264'
    scene.format = 'QUICKTIME'
    scene.color_mode = 'RGB'
    scene.audio_codec = 'AAC'
    scene.audio_bitrate = 128
    scene.render.resolution_percentage = 100

I have no idea how to get this to work right

Try this:
import bpy
for scene in bpy.data.scenes:
    scene.render.image_settings.file_format = 'H264'
    scene.render.ffmpeg.format = 'QUICKTIME'
    scene.render.image_settings.color_mode = 'RGB'
    scene.render.ffmpeg.audio_codec = 'AAC'
    scene.render.ffmpeg.audio_bitrate = 128
    scene.render.resolution_percentage = 100

Also see the API docs.

Especially read this document about how to use the API docs: http://www.blender.org/documentation/blender_python_api_2_71_release/info_api_reference.html If you hover render settings, the tooltip says something about RenderSettings.*, and if you search for that type you will find this http://www.blender.org/documentation/blender_python_api_2_71_release/bpy.types.RenderSettings.html - scroll all the way down and see the References section, there is says that Scene.render contains render settings.


text:
How to focus on the selected object?
In Maya if we have an object selected and we press F then the object is brought into focus and if no object is selected then all the objects in the scene are brought into focus.
How can this be done in Blender?

I don't have the reputation to add an answer yet - but for me the backtick key: ` opens a 'View' menu that has an option to 'View Selected' which frames the selected object / verts / faces / etc. I'm on a Mac laptop using a trackpad so the numpad and middle mouse button aren't options.

Without knowing the specifics of the Maya feature, try pressing . on the your keyboard's numeric keypad. This adjusts your 3D View to focus on the selected object. You can also press / on the numeric keypad to get a "local view" of the selected object (pressing / again will pop you back to the scene view).
To show all non-hidden objects in the 3D View, press Home.
For purposes of remapping, this keymap is called Frame Selected under 3d View.

I don't have a numeric keypad

@neckTwi, if you're using a laptop keyboard, there's often a Function key that enables a virtual numpad within the body of your main keyboard. However, you're working on a traditional USB or bluetooth keyboard that doesn't have a numpad, your options are more limited. In that case, your only option (outside of getting a new keyboard) is to remap the zoom and focus feature to another key.

I am on Mac. Ctrl + scroll is doing the thing. Thank you as I found it in key mappings.

I found camera navigation in the view menu

What's the opposite of the Home function? To rotate the camera without focus on the center?

@DerkJanSpeelman, I'm not sure I fully understand your question. Are you just asking what "might be" an opposite of the Home behavior or are you asking how to specifically do that?

. period does nothing.  Yes, my object is selected.

@BrainSlugs83 . (decimal point) key on the numeric keypad (not the period key that's next to the comma key.)

For the poor users without a numpad: View (in the top menu)/Local View/Toggle Local View

@BrainSlugs83 In my keypad configuration (abnt2) it is ,

Came here for the property name for remapping, stayed for the / which I didn't know about

Numpad . to zoom to selected (or menu View > Align View > View Selected)
A to select all (you may need to hit it twice), then Numpad . will zoom to all objects.Or use ShiftC to reset view and recenter cursor.
For purposes of remapping, this keymap is called Frame Selected under 3d View.

In newer versions of Blender, it's View > Frame selected

In Blender v2.81, hold the alt button and click with the middle mouse button to change centre of focus.

why minuses? this is the most useful answer!

This centers the view on the clicked point, not the selected object.

Another option is using the Zoom Border tool (Shift+B, then LMB) to specify a 'rectangular area' of the 3D View and zoom in so that the region fills the actual viewport.

You can add your own hotkey for it:
File > Preferences > Input > 3D View > 3D View (Global)
Scroll to the bottom of the 3d view section and click "Add New". The command is view3d.view_selected

This functionality, called Frame Selected in the system is also available in the View radial menu ~ on the bottom right.

With this, ~ then S to snap to object

This is the answer for me. Why isn't this higher ? This radial menu is clear and fast to use.

Using OS X in French, when I'm in 3D view and I want to Toogle to Local View with the selected object I can do:
View > Local View > Toggle Local View (in that menu I can see that the shortcut is Numpad /)
So if I have a Numpad I can press Numpad / (not the same as /)
But if I don't have a Numpad a solution is to change the shortcut.
For changing the shortcut I can do:
Edit > Preferences > Keymap > Key-binding
set Filter to Numpad / (for local view)
or to Numpad . (if you want to change the shortcut for frame selected)
3D View > Local View click on Numpad / or click on Numpad . and choose your own shortcut

You don't need to have a keypad to use the "/" hotkey. Smaller keyboards have it too. (it should be the "?" key)

@RandomPanda Sorry but "/" or "?" are not focussing to the object. For that I had to  change the shortcut as I mentioned.

Blender automatically zooms-in/focuses on the selected-object when you press "/" OR "."; my statement still stands. Sorry.

@RandomPanda Your insistance surprised me because what you say was not possible with my computer (MacBook Pro with osX in French). So I switched the keyboard to "Américain" and now using the American keyboard what you said is right. So I edited my answer to be more specific.

I found that if you press N to access the right side menu, turn on Lock camera to view, then Ctrl+Alt+Numpad 0 to set camera to the current view angle, the press Numpad 0 to view and work in camera view it works better.
Press Home to view full width of the window. Took me a long time and many frustrations to find out.

I added my own settings for view because I do not have a number pad either. i.e. instead of "numpad 7" I used just "7". I set all of the view and focus shortcuts to this, and it has worked fine ever since.

Numpad 7 is just a shortcut to switch into Top/Ortho, How to focus the selected object (q here) if you are in Top/Ortho? Also you can simply activate Emulate Numpad in Preferences > Input in order to re-map Numpad 7 to 7, no need for custom settings.

To use number pad without having one, go to Edit → Preferences... → Input → Keyboard check the Emulate Numpad box

And how to focus the object when Emulate Numpad is enabled?


text:
Extrusion along a curve: position of the profile
I want to make a curved strip with smooth edges.
I have made Bezier Circle and tweaked a bit to obtain something between an ellipse and a rectangle (this is the section of the strip). Then I made the curve that describes the shape of the strip, and pressed Object Data button in Properties window. In Bezier Object slot I selected the previously mentioned "ellipse".
The problem is that the ellipse appears rotated. The greater axis of the ellipse and the other curve should be coplanar, but they are perpendicular.
I have rotated the original ellipse, but this doesn't seems to have any effect on the final surface.

Please at least upload a screenshot.

Did you rotate the original ellipse in object mode or edit mode? Try rotating it in edit mode.

Without an image of some sort it's hard to guess, but this is a common enough problem that I think I know what you're facing.
If I understand you correctly, all you need to do is rotate the profile curve in edit mode, (instead of object mode) to align the axes of the profile with the axes of the other object.
The documentation is a little obtuse, but it might be helpful.


text:
I Can't Open Blender 2.75 or Higher When Installed, Console Flashes and Closes Instead
Whenever I try to install some of the more recent versions of Blender and run them, all I get is a console flash and a blank, gray Blender window before both of them close themselves entirely.
I've been poking around the previous versions and found that I can install and use versions that are based off the .exe installer, but the not .msi installer. This also applied to their .zip equivalents. So far I'm currently running on Blender 2.74 and it works well, but I want to update to version 2.79 so I can be up-to-date with everything.
All of my drivers are up to date, and I did run a debug method from the command panel and got an "Exception Access Violation" error from it. I looked up how to fix it and someone suggested to uninstall the Intel HD Display drive. Mine was Intel UHD Display, but since it worked for that person I figured to give it a go. Anyway, I deleted it, it turned off Night Light mode and kind of messed up the display a bit. I'm doing a system restore to fix it now, but I still don't have any leads on how to get the newer version of Blender working.
Blender v2.74 works well, so it seems that at worst I'd miss out on bug fixes and certain new features.
Any tips?

Does your computer match requirements? https://www.blender.org/download/requirements/

@Martin Z I checked my requirements, my computer seems to meet at least the recommended requirements (with the exception of a 3-button mouse), I've checked OpenGL and other features of my computer. Everything is updated as much as they can. I'm not really sure what could be the cause. I ran the program from the Command Prompt and I still get the same error from the debug: EXCEPTION_ACCESS_VIOLATION

Original Poster here, I figured out how to fix the problem.
The first thing I did was check exactly what the error was. I found this out by running Blender with the Command Prompt ('cmd' in Windows search, 'cd' into the directory with blender, then ran it) and got the same error, 'EXCEPTION_ACCESS_VIOLATION'
I plugged the error I got into Google, worded as "blender exception access violation" and ran into a different question asked by a user of this site, linked here, and found my solution.
It was the my display driver that needed to be updated. The thing is, I didn't realize this because neither of my driver updating services told me it needed to be updated until today. I use DriverEasy and Intel Driver & Support Assistance. Driver Easy, which I had used to update so many outdated drivers, said that I was completely up to date on my drivers. Intel didn't even say anything was wrong when I first ran the test, so the fact that it decided to tell me things needed to be updated now was something of a mystery, but it doesn't really matter now.
So I both downloaded the installer and the .zip file, and they both work!
So to everyone who was struggling with the same thing I was, and you know your computer should be able to normally run it, check your drivers. Preferably through multiple certified and trusted driver-updating services. Some of them will catch updates that others won't recognize, and some check more drivers than others.
So now my problem has been solved!

I would recommend not to use automatic driver update utilities. They are a common place for hidden viruses, slow down your computer and are pretty much useless. It's a good idea to always know what drivers are updated, when and to what as well. It might sometimes happen that there are issues in a particular driver update as well in which case something might break after the update so if it's all done automatically without user's knowledge this might make trouble-shooting a lot more difficult. Manual updating might not be a bad idea.

I would agree, you really shouldn't use automatic installers. I'm not sure if I know of any myself, but they do seem rather sketchy.


text:
Duplicate meta-Ball with Animation Nodes
I set my AN settings on a meta-ball to 20 instances to create something similar to a little brainy blob in motion.
I'd like to duplicate it many times, like an array that includes the animation. Is this possible? The Array is not available, I know that we can convert the animations from nodes to keyframes but I need some help with that.

so i had a look yesterday to your answer and .gif explanations. In my case i have this type of node for my brain (https://www.youtube.com/watch?v=dva0u9MPb_A)
Here is my AN settings :

As you understood so well, my goal is to have 2 rows of 10 women front to front. The problem is that from your first screen gif to the 2nd on, the "Object transform Output" node disapears an when i delete mine for the "Object Matrice Output" node, i have no satisfying results. I have another node too, to control my meta-balls. I had multiples try, but it gets complicated for me, even if i know that i'm not far from the solution by your help of course.

You want those 20 instances to be instances multiple times?

Yes, like a row of 15 "brains" on the same axe.

The Object Transforms Output node didn't got replaced by the Matrix Output node, they are practically the same, the only difference is that it takes a matrix transform, which you can create from the individual transform using the Compose Matrix node as in my answer.

Lets say you have an animation of wiggled balls like this:

If you want to instance this animation 10 times, compose matrices from their transforms and replicate them based on the transformations of the second-level instances using the Replicate Matrices node. You should, of course, increase the amount of instances from $n$ to to $10\cdot n$ as follows:

Much thanks Omar for your answer! I'll test it tomorrow  :))