text:
How to extrude and scale with an even offset?
I'm quite new to Blender, so forgive me if this is a dumb question. I don't even know hot to describe it properly, so:

Basically I want to extrude a rectangle and then scale it along two axis, but without keeping the proportions; I want to reduce them of the same quantity, so that I get something similar to the frame of a picture.

Using "Inset" is a method to do this.
Select the face to "extrude", then press I to inset.
You can then inset a face almost like extruding and scaling, but evenly.

The inset tool is also useful for many other things, but this is one of its benefits.
Note: If you have a face that you would like to add a frame to, select the face then press I. You do not need to delete the face or anything. The "inset" tool is designed to inset :P

The inset tool is also good to add a border around odd shapes

What you want is the Inset operator in Edit Mode. Select a face (or a bunch of faces) and press i, adjust the distance with the mouse or type the desired value on the keyboard.
Have in mind that for the inset to remain even with equal distances your object must have applied scale. In Object Mode select your object and press Ctrl + A > Apply Scale before insetting


text:
How can I fade in and out between cameras during animation?
I have a scene with 3 cameras pointing to specific angles on an evolving object.  During the evolution of the  object, I need to switch camera so that the object is still framed correctly.  The cameras are moving as well.
I have used markers but the  switching is too brutal.  I would like to fade out the current camera and fade in the new one..  I know that if I shoot separate sequences I can do that in post prod but doing it  during animation allow me to position the motion of the camera more efficiently..  Is there a way to-do that ?  I use the latest release of Blender.

What Todd says does work, but it is not the best way of doing things.
Go to the Video Editing Screen Layout. Add a Scene strip, and then add the same Scene strip again so you have the two scenes on top of each other. In the properties panel (key N with the cursor inside the VSE portion of your screen), go to the Scene part and to the Camera Override. Select one camera in the first Scene strip, and the second camera in the second Scene strip. The `Scene strips will now have the added text of the names of the cameras along their length.
Next, add a Cam Multicam Effect Strip. Make sure it is directly on top of the two Scene strips. Click the 1 button to select the camera notated by the bottom Scene strip, or 2 to select the camera notated by the top Scene strip. Then move your cursor to where you want the fade to begin  and select 1 or 2, whichever you didn't select the first time. It will cut the strip into two parts.
Now move the first half of the Cam Multicam strip up to channel 4. Drag the right arrow of the top Cam Multicam strip to the frame where you want the fade to end.
Select the first strip, and then the second strip, and then key Shift +A and add a Gamma Cross Effect Strip. Your finished setup should look like this and provide the same result as Todd's.

Further research: Multicam selector documentation.

Hey this is great! I didn't know about the Multicam feature in the VSE. Thanks!

You're welcome. Glad to help.

Very cool!  I really like the way you do it..  Thanks for your help and great solution..  It gives me also more usages beyond the fading process..  Great!

@YvesBodson If this answer helped you, you should consider accepting it by selecting the checkmark in its upper, left-hand corner. It would help me greatly and make me very happy. If there is something else that I can add, please let me know.

There's no way to directly switch the active camera AND manage a transparency crossfade between the 2 cameras directly from a single scene.
What you can do is duplicate your scene by creating a second linked scene. Make Camera 2 active in the new scene. Then you can switch to the Video Sequence Editor and bring in a Scene strip for each of your 2 scenes. Now it's easy to cross fade the 2 camera views because it's just a like a video edit.

yeah cool!  Both answers are great.. did not think about cross fading two scenes strips..  Thanks for the solution.

source: Stack Exchange

license: 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/

sort: votes


text:
Why are some faces lighter than others?
As seen below, the faces in the centre are lighter than the others. All have the same material.  Recalculating the normals didn't help. What is causing this?

This is Due to your smooth shading.

Smooth shading fake smoothness by bluring the normals of faces,In some cases there isn't enough geometry to produce good approximation and this cause unexpected shading.

Here is a cube which is smoothed,It has very few faces which doesn't help in producing a good smooth results.

Read my article here for full demonstration.

Omar's answer is one possibility, and would probably have been the one I offered as first choice. But looking at the screenshot, I see another possibility: it may be an artifact of the spacing of modeling elements the the area immediately to the right of the part area which appears lighter. My basis for offering this as a possibility is that the density of edges to the immediate right is much higher than the density of edges to the left of the area. I would check the denser area for duplicate vertices, edges, and faces.

Well, the problem in my case was this: I merged verticles at the faces junction into one in that area. Just didnt know this can breake shading so bad.

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


text:
Can Blender Make 2D Flash Animations? (Like Adobe Animate)
I'm trying to use Blender as a 2D animation tool. Hard to do this if layers don't work the same way they do in Photoshop, or Adobe Animate.
Can't seem to add a plane background (and lock it), or add an object on a layer that goes on top of it.
Anyway around this? Or should I just give it up and use Adobe Animate?

Well, blender isn't really designed for this kind of thing. But the grease pencil tool has recently been given a host of new features which make it somewhat practical to use for this purpose. A quick search found this tutorial, perhaps it'll help you start off

Thanks a lot. I'll look at the video and give 2D in Blender another shot.

Since blender is a 3D modeling and animation program, with a three-dimensional scene you can't get that kind of layer workflow with Z ordering, "background" and "foreground" objects, or layer locking. That is simply not how a 3D scene works.
That being said Blender is fully capable of doing 2D animations, you simply physically stack your objects one above the other, in Z direction (or any other axis that is convenient to you) and you can use the outliner to lock whichever objects you don't want to select or want fixed in the scene. You can also lock their individual transforms if you want them selectable but unmovable.
You can use regular objects and constrains or rigging or whatever 3D method of animation is most comfortable to you, but "constrained" to a 2D plane, which should even simplify things. You can then easily render everything from an orthographic camera placed directly above all objects.
I have never used Adobe Animate but layers in blender work a bit differently, you can either use groups and the outliner to control object visibility and selectability en-mass, or you can get some cad-like layer management with third party addons like VTools Object Layer Manager
As of Blender 2.8#, the already existing Grease Pencil feature has been substantially improved, and includes a lot of new features and functionality. Grease Pencil objects are capable of being animated, rigged and work very close to bi dimensional objects, with brushes, fills and a digital painting workflow.
You can also add modifiers and effects to them, and use the new 2.8 collection system to organize and manage them.

Thanks for the quick response and thorough explanation. I really like what I've seen in Blender, but the learning curve is killing me. I'm on day 14 or something like that in trying to figure out how to do a simple 2D animation.
Even "exporting" the animation seems to be a convoluted process. I'll give it a few more days, and see if I can get this thing down.

Initial learning curve is indeed infamously steep, but once you overcome the initial difficulty it is very rewarding and worth your time, and in my opinion Blender workflow can be superior to other applications in some ways, if you get used to it. Exporting your animation should not be necessary, unless you want to tweak it in some other program or game engine, you just render it to video or image frames

Maybe this can help https://www.youtube.com/watch?v=6vY7waCP0aA

Thanks Duarte. I've been messing around with it all evening so far. I've probably watched 3 hours of tutorials so far. Some tutorials I've watched 3-4 times. There seems to be a LOT of potential with it. I'll definitely keep trying.

I've never used Adobe Animate, but if I had to do just 2d animation one valid option now is to use grease pencil. It support layers, animation keyframe (no tween interpolation), additive drawing (very useful) and the possibility to convert it to a mesh and many more feature.
The new sculpt stroke mode is great to do simple animation and "in between frames" movements
take a look at this video.
Edit:
Today news on blendernation made me aware of a new addon called Cut-out Animation Tools to address exactly what you are looking for!

Seems to be a lot of potential in Blender for cool animations. I plan on making simple animations using vector characters made out of shapes. Don't really, intend to draw with Blender (but hey, you never know). Thanks for the video.

ok so a basic rigging with IK it's the way to go! look for tutorial on Inverse Kinematics there are tons, just use a simple chain of bones. But this really depends on how refined you want the billboard movement to be

As of Blender 2.8, the grease pencil system has been revamped into a full 2D animation tool.
See the following links for more about how the new system works:

https://www.blender.org/2-8/#2d-animation
https://code.blender.org/2017/12/drawing-2d-animation-in-blender-2-8/
https://www.blender.org/institute/training/grease-pencil-fundamentals/

An open movie called Hero was made tot test it all out:
https://cloud.blender.org/p/hero/


text:
Are there any restrictions on model file-formats? (OBJ, 3DS, PLY... etc)
I know that Blender can be used for both commercial and non-commercial use, almost limitlessly.
My question is that I heard once that a file with a specific extension can have problems/restrictions (which sounds weird to me but I want to make sure), so I want to know if there may be any legal or technical restrictions exporting files and using files with the .obj extension or can it be used the same as a .blend file?
I need the .obj extension because when saving to a .blend, it rotates my model incorrectly when opened in Unity and when I export to .obj and add it to unity, it works fine.

There are no legal restrictions for using any of the file types that Blender natively imports or exports.
OBJ is open source are unpatented, so its use is not restricted in any way. The other model formats that Blender supports natively are similarly unrestricted.

This is an EXCELLENT question, and one that is asked by creators far too infrequently.
It's uncommon for file type usage to be restricted, though implementing (in code) certain codecs or algorithms can require licensing. Even patenting the codec or algorithm is uncommon because it only discourages your competitors from adopting it, if they have to pay licensing fees to implement in import and export script. You might be thinking of the MP3 codec that is patented by Fraunhofer IIS and Thomson. Even in that case, making a file of that type does not require a license, but being able to make a file does. This is why Audacity doesn't support MP3s natively. Audacity would have to pay a licensing fee (or some other royalty) for the ability to use implement those algorithms. Then they wouldn't be able to afford to release it for free, anymore.
The fact that Blender is free, means that they aren't paying any licensing fees, which means there aren't any licensed algorithms (assuming they're doing what they're supposed to be doing).

Thank you. Are .blend files open source and unpatented as well?

Yes, of course ;-)

...in fact, the license says that you are even allowed to sell Blender for profit, you're just required to link to Blender.org and clarify that it can be downloaded there for free ;-)


text:
How to tell if Blender has crashed?
I am unsure whether or not Blender has crashed / stalled.
The screen, especially the timer, haven't changed in over an hour (while usually the timer tells you how much time has elapsed since rendering began).
But I'm thinking, hey, maybe the timer's just slowing down because it's processing and thinking too hard to update?

Is there a way to know? As far as I know, when I hover over the different buttons in the properties panel, they change color (and so does the X for cancelling rendering), so it might just be working (that's what indicates my Activity Monitor as well, as seen in the image below).

But what's a certain way to know whether or not Blender has stalled / crash?

One hour seems too much for me. Try to clic that buttons, the File button for instance. If the menu opens, then Blender is not crashed. Anyway, the render might failed, which is rare in CPU rendering. Make some render with low samples/resolution for testing your scene before the final render.


text:
Is proportional 3D weighted decimation on cubic objects possible?
i´ve been thinking the last two days how to calculate this problem with blender, maybe im stupid and it´s simple. i need a specific decimation calculation to transform blue into green
img.A

img.B does this even make sense?

sorry but i have to say some introduction: I have a shape(blue, img.A) representing a baroque era chateau building. the extruding cubes in the middle and left and right are the so called risalits, while the two smaller parts connecting the three are called sidewings. the design Idea is the resulting 3dimensional proportional hierachy(key theme!)
The design transformation concept(img.B) is to collapse all vertical faces each in their weight median point so the polygon shape(green, img.A)) would result -. you see that the pointy edges extruding the new shape are supposed to be the equivalent of the 3dimensional risalit weight. so while the shape has less faces it still shows the proportional weight of the original but with pointy angles instead of cubes.
question is how to calculate this related transform? decimate mod. won´t work, it´s too lowpoly. smoothing doesn´t reduce the faces, and collapsing manually is too random..there has to be a calcualtion tool as basis, it´s essential for the concept to be digitally produced..that´s the problem :) thx in advance


text:
File format with per face colors
I am trying to export a mesh from some scientific experiment (in MATLAB) and load it in blender for rendering. I'd like to assign per-face colors (as opposed to per-vertex with interpolation over faces), and am willing to use any suggested solution (i.e., any file format, some trick with UV coordinates etc.).
What is the simplest way to go with this?

Short answer:

.x3d, an xml based format. Color can be either specified

per vertex of face
per face ( colorPerVertex='false' )

When imported via Blender's importer either method get converted to a per vertex per face scheme for the vertex_color layer.
Stanford .PLY format. (vertex colours are shared over all faces that use the vertex, only way to get color-per-face with this format is  wasteful duplication of each vertex)

or
homegrown code: essentially this code. all you need to write is the part where you map the current polygon.index to a color, so all vertices of that loop are assigned the same colour.
Take a cube.
import bpy

indexed_colors = [
    (1,0,0), (1,1,0), (1,0,1),
    (0,0,1), (0,1,1), (0,1,0)]

obj = bpy.data.objects['Cube']
mesh = obj.data

# you probably know how to create the color layer..
if not mesh.vertex_colors:
    # creates one 'Col' by default
    obj.data.vertex_colors.new()

color_layer = mesh.vertex_colors['Col']

i = 0
for poly in mesh.polygons:
    # print(poly.loop_indices)
    color = indexed_colors[poly.index]
    for idx in poly.loop_indices:
        # loop = mesh.loops[idx]
        # v = loop.vertex_index
        color_layer.data[i].color = color[:3]
        i +=1

More elaboration on mesh generation is here: How to create a mesh programmatically, without bmesh?
from_pydata (docs link) :
mesh = bpy.data.meshes.new("mesh_name")
mesh.from_pydata(vertices=[], edges=[], faces=[])
mesh.update()

obj = bpy.data.objects.new("obj_name", mesh)

scene = bpy.context.scene
scene.objects.link(obj)

Showing vertex colors

For both methods you still need to configure the Object's material once imported, if you want it to show the vertex_color layer. This configuration is relatively painless but slightly different depending on which render engine you intend to use.
For Cycles you use a node based material, shown here
For Blender's Internal renderer the process is covered here

I am sorry, I am rather new to blender - what do you mean by "short answer: Stanford PLY"? AFAIK the .PLY format doesn't allow for per-face colors.

I see what you mean,  I exported a cube from blender as .ply and imported  it again and in order to preserve per face-vertex colouring it duplicates all vertex data and gets vertex colour per face-vertex that way. It's a bit of a waste. https://gist.github.com/zeffii/a5c4376b5a2234353d90 (example of a cube). In lieu of a format which lets you specify color per face, it's just as easy to write your own custom format. But i'll keep looking, this bugs me.

Found one that does .x3d ! it at least represents colours per vertex more efficiently

Thanks, I went with the .x3d format and so far it is the most flexible format I've used!

only way to get color-per-face with this format is wasteful duplication of each vertex: this is not true, actually. You can add something like that in the header: `element face ####
property uchar red
property uchar green
property uchar blue
property list uchar int vertex_index` (sorry for the line breaks), this actually works in software such as Meshlab.

@Synxis just tried on Blender 2.79, and the colour per vertex import works. But the colour per face import does not,  unfortunately.

@Bram Yes, it does not work on Blender currently (I have a patch fixing that, when I have the time). However, it is completely legal from the point of view of the PLY specification to have face colors (and also edge colors)

X3D is interesting indeed. You can subsequently edit the scale of the object in meshlab and use mesh warp algorithms based on xyz in meshlab. it saves x3d per vertex ok if you uncheck normal in the save options.
here is example of simplest x3d per face if you write a parser, i did and it works fine.
[code]
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "http://www.web3d.org/specifications/x3d-3.3.dtd" "">
<X3D>
<Scene>
<Shape>
<IndexedFaceSet colorPerVertex='false'
colorIndex='1 0 2 3 4 4'
coordIndex='0 1 2 3 -1 7 6 5 4 -1 0 3 7 4 -1 0 4 5 1 -1 1 5 6 2 -1 2 6 7 3'>
<Coordinate point='
-0.095 -0.115 0.04
 0.095 -0.115 0.04
 0.095 0.115 0.04
 -0.095 0.115 0.04
 -0.095 -0.115 0.00
 0.095 -0.115 0.00
 0.095 0.115 0.00
 -0.095 0.115 0.00'/>
<Color color='
0.999 0.0 0.0
0.0 0.94 0.0
0.04 0.095 0.9115
0.095 -0.85 0.00
0.04 0.095 0.00115
'/>
</IndexedFaceSet>
</Shape>
</Scene>
</X3D>

[/code]


text:
load .x3d scene into a group
I have a .x3d file containing several meshes. When I load them into Blender, they are loaded into separate objects; I'd like all of them to be loaded into one group so I can manipulate them (e.g., rotate them) together.
To emphasize, I know how to group objects once they are loaded, however there are a lot of them, so being able to load them directly to a group would be more convenient. Is there a way to do it?

it could be added easily as a feature to the addon.  A completely reasonable request btw.

the .x3d standard does specify an element tag called <Group> which goes directly inside a scene. but the blender .x3d importer doesn't handle it explicitly, at least I don't see it in the code. You could file a bug report to acknowledge it.

While the .x3d specifies a Group tag, as of (May 2015) it doesn't appear that the blender .x3d importer does anything special with the tag
It might not be possible to avoid a bit of scripting..
The .x3d importer currently prepends the name 'Shape' to all objects it generates. A simple way to select all objects with that prefix is
import bpy

D = bpy.data
for obj in D.objects:
    if obj.name.startswith("ShapeCylinder"):
        obj.select = True

or also generate the Empty and parent them all in one go.
import bpy

objects = bpy.data.objects

# makes the Empty, adds to scene
MT = objects.new('Empty_Grouper', None)
bpy.context.scene.objects.link(MT)

# parent every new object to MT
for obj in objects:
    if obj.name.startswith("ShapeCylinder"):
        obj.parent = MT

These scripts can be executed from inside Blender's Text Editor. An alternative is to write a thin wrapper around the .x3d importer, something like:
wrapped_importer_x3d.py
In essence what the code below does is:

it loads the existing x3d importer code.
Before triggering it, it stores the list of existing object names
after the import is complete it figures out the names of the objects that have been added
then parents those to an Empty.

You could save this, and stick it into /scripts/addons/wrapped_importer_x3d.py, enable it so:

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

# <pep8-80 compliant>

bl_info = {
    "name": "x3d wrapped importer Parents",
    "author": "alias",
    "version": (0, 0, 1),
    "blender": (2, 7, 4),
    "category": "Import-Export",
    "wiki_url": "",
    "tracker_url": ""
}

import bpy
from bpy.types import Operator
from bpy.props import (
    BoolProperty,
    EnumProperty,
    FloatProperty,
    StringProperty)

from bpy_extras.io_utils import (
    ImportHelper,
    orientation_helper_factory,
    axis_conversion,
    path_reference_mode)

from io_scene_x3d import import_x3d

IOX3DOrientationHelper = orientation_helper_factory(
    "IOX3DOrientationHelper",
    axis_forward='Z',
    axis_up='Y')

class ImportX3DBETA(Operator, ImportHelper, IOX3DOrientationHelper):
    """Import an X3D or VRML2 file"""
    bl_idname = "import_scene.x3d_grouped"
    bl_label = "Import X3D/VRML2 Grouped"
    bl_options = {'PRESET', 'UNDO'}

    filename_ext = ".x3d"
    filter_glob = StringProperty(default="*.x3d;*.wrl", options={'HIDDEN'})

    def parent_new_objects(self, object_names):
        objects = bpy.data.objects
        MT = objects.new('Empty_Grouper', None)
        bpy.context.scene.objects.link(MT)

        # for every object in the scene which matches the start of the string
        # parent it to MT
        for obj in (o for o in objects if o.name in object_names):
            obj.parent = MT

    def execute(self, context):

        keywords = self.as_keywords(ignore=("axis_forward",
                                            "axis_up",
                                            "filter_glob",
                                            ))
        global_matrix = axis_conversion(from_forward=self.axis_forward,
                                        from_up=self.axis_up,
                                        ).to_4x4()
        keywords["global_matrix"] = global_matrix

        before = {obj.name for obj in bpy.data.objects}

        response = import_x3d.load(self, context, **keywords)
        if response == {'FINISHED'}:
            after = {obj.name for obj in bpy.data.objects}
            new_names = after ^ before
            self.parent_new_objects(new_names)

        return {'FINISHED'}

# Only needed if you want to add into a dynamic menu
def menu_func_import(self, context):
    self.layout.operator(ImportX3DBETA.bl_idname, text="Import x3d parented")

def register():
    bpy.utils.register_class(ImportX3DBETA)
    bpy.types.INFO_MT_file_import.append(menu_func_import)

def unregister():
    bpy.types.INFO_MT_file_import.remove(menu_func_import)
    bpy.utils.unregister_class(ImportX3DBETA)

if __name__ == "__main__":
    register()

    # test call
    # bpy.ops.import_scene.x3d_grouped('INVOKE_DEFAULT')

Thanks, but I think my question was a little unclear, please see the bold text in the revised question.


text:
Blender Orient an object (displaying Vector Arrows)
I need to orient a various number of arrows on the screen, each need to point to a direction calculated by Python.
Python have calculated the end points of each arrow (say tail at (0,0,0), tip at (1,1,1)). How do I place an arrow between those two points, with the tail and tip at the correct spot with scripts?
My current plan is place the tail, then calculate the degree of rotation needed to get to the right direction, then rotate it. Is there potentially an easier/more direct way?
Optional: If the code does not scale the arrow, that's fine, as long as the arrow point in the right direction.

definitely related: align-object-to-vector-using-python and python-script-to-align-object-to-edge-or-two-vertex-coordinates

related: http://blender.stackexchange.com/questions/16275/python-implementation-of-track-to-aim-constraint

Full credit should go to: align-object-to-vector-using-python for the API usage of Quaternion and to_track_quat.
downside to the following methods:
They aren't dynamic, unlike the proposed method that uses constraints.
Single Size Arrows
Model the arrow once, make duplicates :)
import bpy
import bmesh
import mathutils
from mathutils import Vector

scene = bpy.context.scene

arrow_mesh = bpy.data.objects['ArrowObject'].data

vectors = [
   [(0,0,1), (0,0,0)],
   [(0,1,0), (0,0,0)],
   [(1,0,0), (0,0,0)],
   [(1,1,1), (0,0,0)]
]

for head, tail in vectors:
    v1, v2 = Vector(head), Vector(tail)

    # duplicate mesh into new object.
    obj = bpy.data.objects.new("Arrow_duplicate", arrow_mesh)

    obj.location = v2
    obj.rotation_mode = 'QUATERNION'
    obj.rotation_quaternion = (v1-v2).to_track_quat('Z','Y')
    scene.objects.link(obj)

Be sure to have the Arrow's object origin on the tail, and coinciding with the axis of the Arrow. (just in-case)

It may be worth mentioning that this code won't stretch the arrow to exactly fit between head and tail vectors, but it will place the arrows tail/origin at exactly the tail vector and point to the correct head-vector.  As soon as you need the arrow to fit exactly between the two vectors you introduce a different problem, with several solutions
Adaptive arrow scaling
description:
- A cone which you can orient given similar code
- A stem which takes orientation and scaling in its length-wise axis.

code:
import bpy
import bmesh
import mathutils
from mathutils import Vector

scene = bpy.context.scene
objects = bpy.data.objects

arrow_stem_mesh = objects['Arrow_stem'].data
arrow_cone_mesh = objects['Arrow_cone'].data
arrow_cone_height = 0.448  # for example..

vectors = [
   [(0,0,1), (0,0,0)],
   [(0,1,0), (0,0,0)],
   [(1,0,0), (0,0,0)],
   [(1,1,1), (0,0,0)],
   [(2,2,2), (3,3,3)],
   [(4,4,2), (2,2,2)],
   [(4,4,3), (2,0,0)]
]

for head, tail in vectors:
    v1, v2 = Vector(head), Vector(tail)

    # Scale the Stem, and add to scene
    obj = bpy.data.objects.new("Arrow_duplicate", arrow_stem_mesh)

    obj.location = v2
    obj.scale = (1, 1, (v1-v2).length)
    obj.rotation_mode = 'QUATERNION'
    obj.rotation_quaternion = (v1-v2).to_track_quat('Z','Y')
    scene.objects.link(obj)

    # orient Cone, and add to scene
    obj2 = bpy.data.objects.new("Arrow_duplicate", arrow_cone_mesh)
    obj2.location = v1   # start at tail and work back
    obj2.rotation_mode = 'QUATERNION'
    obj2.rotation_quaternion = (v1-v2).to_track_quat('Z','Y')
    scene.objects.link(obj2)

The .blend
  (just hit run)

I will give it a try. Yes, I am modelling the arrow once and duplicating. It's just placing it.

Consider a [Track To] constraint  which will rotate the arrow toward the location of a given target.  The green arrow points to the red ball below, wherever the ball happens to be.

In the animation below we see a few alternatives with constraints and modifiers

The blue arrow is a curve in case you find the straight lines excessively boring.  Circular cross section bevel. The curves has hook modifiers for the end points.  A third point is added into the blender curve to introduce more [visual curve] into the blender curve. The visual curve is optional. The green cap is position with a [follow path] constraint.  Of course this flexibility requires more work.
The yellow arrow is an array modifier fit to curve straight line
The large green arrow is the [track to] constraint as before
The hook constraints

That require another object right? Not just a point? It would mean I need to create an "point" object for every arrow I make---which can be somewhere from 10 to 50 depending on the situation.

You can create en empty object which will not render. Any object can be set to NOT render.  If you can place an arrow, then you can place an empty. Blender can handle a few x "thousand" empties. Assuming your computer executes blender at all.  The red ball above was for illustrative purposes ... you may substitute an empty.  Then it will be easy to use all the other facilities of blender with less python if that suits your tastes

Could not get the above solution to work, so here is another one:
import bpy
import mathutils

# calculates a vector (x, y, z) orthogonal to v
def getOrthogonal(v):

    x = 0
    y = 0
    z = 0

    if v[0] == 0: # x-axis is 0 => yz-plane

        x = 1
        y = 0
        z = 0

    else:

        if v[1] == 0: # y-axis is 0 => xz-plane

            x = 0
            y = 1
            z = 0

        else:

            if v[2] == 0: # z-axis is 0 => xy-plane

                x = 0
                y = 0
                z = 1

            else:

                # x*v0 + y*v1 + z*v2 = 0
                x = 1 / v[0]
                y = 1 / v[1]
                z = -((1/v[2]) * 2)

    return (x, y, z)

def drawNormal(origin, normal):

    b3 = mathutils.Vector(normal)

    # find orthogonal basis vectors
    b2 = mathutils.Vector(getOrthogonal(b3))
    b1 = b2.cross(b3)

    # normalize
    b1.normalize()
    b2.normalize()
    b3.normalize()

    # build transformation matrix
    basis = mathutils.Matrix()
    basis[0].xyz = b1
    basis[1].xyz = b2
    basis[2].xyz = b3
    basis.transpose()
    basis.translation = mathutils.Vector(origin)

    # draw an arrow from normal
    bpy.ops.object.add(type='EMPTY')
    arrow = bpy.context.object
    arrow.name = 'arrow'
    arrow.empty_draw_type = 'SINGLE_ARROW'
    arrow.matrix_basis = basis

# tests
# ----------------------------------------

# given origin and normal
origin = (0, 1, 0)
normal = (0, 1, 1)

drawNormal(origin, normal)

'''
# given head and tail
head = mathutils.Vector((0, 0, 1))
tail = mathutils.Vector((0, 2, 0))

origin = tail
normal = head - tail

drawNormal(origin, normal)
'''

Explanation
This draws normals as single arrows, so no stretching either. I use a transformation matrix, and the way i build it is using the normal vector as 1 of its basis vectors, then calculate 2 random vectors orthogonal to this. So in the end i have 3 basis vectors. The getOrthogonal() can surely be done better too, but enough for me. It is based on the dot-product equation and could be actually done with some math library, not sure.


text:
How to make an animation so that it is smooth and plays at one speed?
I tried different settings, but I haven't received the desired result.
Either the animation is smooth but first it slow then speeds up and then slows down at the end (Bezier) or animation rude but it has one speed (Linear).
Example:

Is there a way to make the animation smooth and have it play with one speed without acceleration & deceleration?
The image above is the simplest way to visualize what i mean, but the image in this link shows the kind of objects i'm animating, and it behaves quite abrupt when Linear, but Bezier gives pronounced easing in-out:

All lifelike animation is done using Arcs, and a bit of easing in and out replicates the Inertia experienced in real world objects. Here are the 12 principles of animation, to reiterate

While different interpolations make simple animations easy, when you get into more complex animations like characters, you should expect to set a keyframe nearly every frame for key parts of the armature.

Due to the acceleration and deceleration the animation looks bad and than more intermediate frames than animation looks worse. That is why I would like to know how to make a smooth animation without changing the speed.

One possible solution to the question (before it was updated with a use-case):
You could build curves into the corners of a trajectory path, like:

Tighter corners will result in more jumpy (sudden, unrealistic) movement.
Here I start out with a Mesh Object, then use Ctrl+Shift+B to fillet the corners, then in Edit Mode use Alt+C and convert the mesh to a Curve Object.
Then Add a Follow Path constraint, and press Animate Path, then press Play to see what that looks like.

Sometimes It can be more convenient to see the path it will be on, rather than key-framing it.

It's useful if animate simple objects. But when animate characters (http://f-picture.net/lfp/s019.radikal.ru/i618/1506/6f/cd298ba1bb1e.gif/htm) I don't think that this method is good.

That's OK, it will be useful to someone who searches using the terms in your question.


text:
Adding Custom Menu "Run Script" Button Causes Duplicate
Is there a way to use the Blender Text Editor for adding a custom menu and not get a duplicate every time I click on "Run Script" to test the menu? For example, in the text editor, load the template like so:
Template -> Python -> UI Menu
Then notice every time you press "Run Script" you get another menu in your main menu bar. How can I update my menu without getting a duplicate?
I tried simply commenting out register() but then new updates don't show up.

Based on the answers already given, it really seems best practice to fully unregister before registering again to avoid the duplication I was getting.
Although the other answers do answer my question, it seems like the best answer, with the least amount of hacky, is to not to use the "Run Script" button at all for these types of register/unregister ui modifying scripts.
Instead one should have their file on disk in the addon directory. Once the script is loaded with the User Preferences -> Addon manager, you can use the F8 trick (thank you Adhi) to reload scripts which does cause both unregister and register to run.

Running a script from Text Editor won't call unregister() before registering all classes / the module again. Therefore, another draw callback is added to the header.
You could remove all extra draw funcs from the header like so:
def register():
    bpy.utils.register_class(CustomMenu)

    if hasattr(bpy.types.INFO_HT_header.draw, "_draw_funcs"):
        for f in bpy.types.INFO_HT_header.draw._draw_funcs:
            # could also test e.g. _draw_funcs[#].__code__.co_filename to be sure
            if not repr(f).startswith("<function INFO_HT_header.draw"):
                bpy.types.INFO_HT_header.draw._draw_funcs.remove(f)

    bpy.types.INFO_HT_header.append(draw_item)

or even
    if hasattr(bpy.types.INFO_HT_header.draw, "_draw_funcs"):
        func = (f for f in _draw_funcs if repr(f).startswith("<function INFO_HT_header.draw").__next__()
        del bpy.types.INFO_HT_header.draw._draw_funcs
        bpy.types.INFO_HT_header.draw = func

So, if not run through addon mechanism, or for testing purposes, is it better to redefine the draw handler (draw = func) rather than appending an extra callback function?

There is no draw handler in the code, see API docs. No, you shouldn't replace the draw function instead of appending a draw callback. It would remove the stock header and only what you replace it with would show up. I don't think that's what you want. Another approach, similar to my above code snippets, could be to find your own draw function in _draw_funcs (only exists if you added a custom draw func before). Then replace just this one with a new function.

I really like this solution, though it does feel a bit hacky. I do like the idea of only switching out your own function rather than deleting them all. It looks like I can compare against draw function names (as long as I have a relatively unique function name) using drawFuncPointer.name

@CoDEmanX could you please explain this _draw_funcs as I don't understand? I have a function named newdraw I'm calling info_header_draw = bpy.types.INFO_HT_header.draw then bpy.types.INFO_HT_header.draw = newdraw the problem if I press the Run Script button twice for example, the header is updated twice and the newdraw function is executed and draw twice

Execute Reload Scripts F8 first before re-running the script.
I think a custom menu function is supposed to run within an addon, where register() and unregister() are run in pairs. Each script execution yields different instance of each functions, even if their name doesn't change across each execution. So unless there is a way to check existing draw functions within a class by name (which I haven't found yet), Reload Scripts or restarting Blender is the way to go.

F8 can remove appended/prepended draw callbacks, but not remove draw handlers or timers (as unregister() is not called) - see bug tracker.

That obviously limits F8's use. At least it works for removing callbacks, as in @PolyMesh's case.

One way around this is to make your changes and save the script, restart Blender and run the script again.


text:
Slice the top of a cone
So I just started working with Blender 2.6 and the two books I have don't really discuss how to modify objects other than "here's edit mode..."
What I have is two cylinders with one slightly smaller than the other and protruding out of the larger one.  I need to "fillet" from the larger cylinder to the smaller one.  I decided to create a cone with the same diameter as the larger cylinder which then protrudes through the smaller one giving the illusion that the larger cylinder is reducing to the size of the smaller one.  Of course the problem is that the cone continues through and extends beyond the smaller cylinder.  My thought was to just cut a section off of the cone that lies inside the smaller cylinder.  Unfortunately my two books don't really cover doing anything like that.  So any suggestions would be greatly appreciated!

Use vertex bevel in edit mode.
To do that:

Press Tab to enter edit mode.

Right click the top vertex to select it.

Use vertex bevel (ShiftCtrlB) and use your mouse to adjust the bevel amount:

Press Tab to exit edit mode.

Okdoke, that worked really well.  Had to play around a little to figure out exactly what you were doing but now that I know it's easy enough to do.  Thanx!

There are more than ten ways of doing this. Since you just want to make fillet in-between, you may also consider this way:

Select the two loops you want to connect;
W > Bridge Edge Loops;

PS: In this case, the two cylinders have to first be become a single mesh, if not yet (J to join them).

it's probably best to do this with normal modeling:

Add a cylinder ShiftA> Add > Mesh > Cylinder

Switch to Edit mode (Tab)

Select the top part of the cylinder with AltRMB or B> Box select:

Scale it down S:

Or, if you want all three sections to be part of one object:

Add a circle:

Extrude (E)  upwards:

Extrude inwards:

Extrude upwards again:

Select the second edgeloop from the top and move it up on the Z axis (GZ):

However, if you actually want to slice the cone apart, you can use the Bisect tool or a Boolean modifier.

In the first example you selected the top of the cylinder using a box select.  For some reason I can't seem to do a box select on a cylinder.  I can do it on a plane and a cube but not a cylinder.  Any idea why?  A lot of projects I'm interested in doing will revolve around cylinders - thanx!

@user1572 What happens when you try? You can also select the top edge loop with Alt+RMB.

For your specific problem, modeling as described above is probably the best solution. However, there is some nice new functionality in Blender which should not be kept secret...
Blender has just gotten a "Slice the top" function. It's called "Bisect".
In edit mode (Tab) do the following:

Select all faces with A
Press Space> Search and enter "Bisect" in the search field that appears, or press the Bisect button in 3D view > Tool shelf.
Draw the bisection line.
In the tool side panel (the left one in the 3D view, which you can toggle via T), check "Fill" and "Clear Inner" (or "clear outer"), and you have cut a slice away.

For better precision, enter numerical values (for example Plane Normal xyz = 0.0, 0.0, 1.0 will give you a horizontal cutting plane.)

Ah, this saved my day ! +1


text:
Proportional Editing and Laptop Problem
I am using blender 2.7 and the laptop mandates the "Emulated Numpad." Upon attempting to use "Proportional Editing" in a "Bound" within the UV Editor while using projection process, I cannot use "Proportional Editing" while the attempt to grab with G. The attempt simply moves the entire "Bound." The only way I have been able to even move a vertex of the bound is to disable proportional editing. Any ideas? I have tried every imaginable hotkey combination.

On Mac laptop you need to press Fn and scroll (two finger gesture) up or down.

Proportional editing effects all items within a sphere of influence. If the sphere is very large then everything appears to move the same amount.
The two standard methods of adjusting this size are mouse scroll wheel and page up/page down. For a laptop there is also a trackpad pan setup, I believe apple trackpads do panning with a two finger swipe.
If you still have trouble you can modify this shortcut yourself, you can find it by going to the user preferences->Input, down the bottom of the list there is a group called 'Transform Modal Map' expand that and you will find Increase Proportional Influence and Decrease Proportional Influence for both keyboard and mouse, you can change these to any key combination that works for you.

Oddly, Proportional Editing works fine until I setup a projection to the UV Editor? The models mesh moves fine in edit mode until I select the models head area after having seamed the models head and selected all the head faces and then unwrapping! After having unwrapped the head area all appears fine in the uv map and the bounds appear fine while scale, rotate work fine for rough placement before I attempt proportional editing for a closer fit, however, the G key moves the entire bound even while the proportional incrementation numbers reflect a radius size change with PGUP/PGDN..any ideas?

The radius size may change but is it small enough to see the circle of influence? Is it less than 1.0?

On my Mac, you emulate Page Up and Page Down with fn + Up/Down arrows.  Hope that helps somebody.

On windows, Use Pageup or Pagedown after pressing G until the you see circle comming up and move track pad pointer to adjust the required modfication


text:
Keep objects from intersecting each other when positioning them?
I'd like to position objects in the 3D view, but constrain them as to not intersect with another. I don't want to snap them together, rather have some fixed 3D object like a wall and be able to move cubes around and not allow them to penetrate other cubes or the wall when manipulating them.

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

I really wish Blender supported this out the box and it could be as easy as enabling/disabling 3D manipulator. But the simplest way I found is the following. Assuming you started with default scene with a cube:

Enable Rigid Body for the cube in Properties > Physics and select the first Cube and Properties > Physics choose Passive for Rigid Body > Type.
Duplicate it (ShiftD) and move (G, X) new cube somewhere so it does not touch original.
Set End frame to big number, for example, 10000. Make sure Properties > Scene > Rigid Body World is enabled and set End in Rigid Body Cache to the same big number (10000 in this case). You also may want to disable Gravity.
Select the second cube and duplicate it and in Edit mode with pivot set to Median Point scale up the third cube slightly (for example, 1.01), set its Maximum Draw Type (in Properties > Object > Display) to Wire. In Properties > Physics > Rigid Body Collisions choose Mesh as Shape and (assuming 1 BU = 1m) Margin to 3mm (if it fly away immediately when you start playing animation at step #6 - try smaller value and return to frame 1 to start again). Go back to Object Mode.
Select the second Cube (the one you actually want to move) and in Properties > Physics choose Active for Rigid Body > Type.
Click Play Animation. To manipulate, select the third cube (displayed as Wire) and move it. Second cube will follow and Rigid Body Physics will do its best to prevent collisions, but if you force it too much, it may fly away; if it does, press Esc and go back to first frame to try again. To put it on other object without intersection, move it slowly, when it start shaking it means slight intersection happened, move it away a bit and when it stops shaking, stop moving. When done moving/rotating, pause animation, select all, CtrlA to Apply and choose Visual Transform and then go back to Start frame.

Obvious drawbacks is that you have to enable Rigid Body on objects and create temporary object to move object you want to move, then delete temporary object, not to mention the temporary object introduces problems - direct manipulation would be much more convenient.

In the latest version of Blender, right now it is 2.71, there is a selection called mesh in the collision tab. This seems to work very well for most active rigid body objects.
There is a tutorial by PHYMEC on YouTube addressing this very issue and he goes into great depth about the sphere of influence of an object on another object:
Great video on collisions for rigid bodies


text:
Spin tool is not shown in toolbar when trying to spin a curve
I am trying to find the spin tool in Blender version 2.68. It's not on the left panel. Should I check something in the preferences?
Here is a screenshot:

It's there for me.. Are you in edit mode? (You can also access the spin tool with Alt+R)

yes, in edit mode. neither Alr+R not working

The spin tool does not work with curves, it's specifically made for meshes. There aren't really any alternatives other than rotating around the 3D cursor.
To rotate around the 3D cursor:

Press . to set the pivot point to the 3d cursor.
Position the cursor at the center of the turn.
Extrude e and rotate the curve.

Tweak the handles so it's curved:

If you don't care if the object is a curve you could convert it to a mesh (Altc) and work with it from there.

@user1481 If this answer has answered your question, consider accepting it.

The spin tool is for mesh objects.
For curves you can get the same result using two curves, one for the outline and one for the 'spinning'. The outline curve is set as the bevel object to the spinning curve. For a 360 degree spin a BezierCircle is a good starting point.

Found this here -- I think you need to convert the Bezier curve to a mesh (Alt+C --> Mesh from Curve), then Tab to enter Edit mode, then A to select all points, then you can use the Spin command. I'm in a similar boat as you, and this worked for me.


text:
Can I change the color of the last selected face?
Can I change the color of the last selected face, so that it is the same as the other selected faces?
Here, I've selected the left face then the right face. Note the right face is some sort of checkered or dithered pattern, and just the outline has the nice orange 'selected' color.

Here I've selected the top face, note the right face has now the nice color.

And here I've deselected the top face. Now, both of the remaining selected faces have the nice color. This is the result I'd rather see instead of image 1.

Yes.
In CtrlAltU> User preferences > Themes > 3D view:

The Face Selected color controls the color of the selected face
The Active Vert/Edge/Face color controls the color of the last selected face.

However, I wouldn't recommend making these colors too similar, as there are differences between the selected faces and the last selected face (active) and it might be confusing if you can't tell if a face is active or selected.
Reducing the alpha can help smooth it a little.
Comparison of default setting and with it set to the same color as selected faces:

Note that this value also affects active vertices and edges as well as faces.

Thanks -- while this is better, the dithering is still there. How can I make it a smooth color, like the other selected faces?

@DavidS. AFAIK, I don't think you can, however how don't think you want these to identical (see my edit).

Yes, but it would still be nice to have a smooth color (it could be slightly different). I think it's just a lot better for the eyes without all that noise, and just more relaxing to look at a smooth color. If it indeed isn't possible to remove the dithering, I'll keep this as the accepted answer.

I don't think it is possible without modifying the source code, but reducing the alpha will help smooth some of the sharpness.


text:
How do I prevent Blender adding an index-suffix to the objects' names?
My problem is that whenever I delete all objects (selecting all objects and pressing 'Delete' then selecting 'Delete' from the drop-down menu) and import them back, the objects' names get an "index suffix", e.g. ".001".
For example, I import an .obj file, and there is an object in that file with the name "TableA". I delete it, import the same file, and now it has the name "TableA.001". I'm using a script afterwards which references the tables with their "original" name, so it's a little bit annoying I have to remove those indexes. Is there a way to circumvent this behavior?
Also, some sort of explanation would be nice - why does the program feel the urge to add that index though there is no existing object with the original name (because it has been deleted)?

When you delete an object, not all information about it will be deleted. Its mesh data will remain in the file. So if you want to delete the mesh data, open Outliner in Orphan data mode and click on Purge All - it will delete all mesh data that are not used in the scene, and free names.

Normally, object and mesh data can use different names, but the obj-import script makes these names the same. That's the reason why a new object gets the  old name, but obj-import gets a new one.

I see, indeed there were bunch of meshes in the file, but "Purge All" seems like does the job. Thanks!


text:
How can I snap the center of the bottom part of a box to the center of a plane?
How can I snap the center of the bottom part of a box to the center of a plane?
I have read the other posts related to this, but they are too confusing.

In edit mode select bottom face of cube, Shift+S Cursor to Selected
Object mode press Shift+Ctrl+Alt+C Origin to 3D cursor
Select the plane
Shift+S Cursor to Selected
Select the cube
Shift+S Selected  to Cursor, Offset

If you want to do it as Timaroberts and mooboots understand it, check if the plane and the box have their origins in the center of their mass. If they do, use Transform > Align Objects from the Object menu in the Object Mode. Otherwise select Origin to the center of mass before you align. If the box and plane are away from each other move the box along Z axis with SnapTo > Nearest face enabled.
OR, if you want to do it as shown below:
Select the bottom face of the box and poke it. Align box with the plane as I wrote above if necessary. Select the plane and click Cursor to Selected. Select the central vertex of the box' poked bottom face and click Selection to 3D Cursor to get the result shown below:

You could use the Snap to option (Face mode) to snap the cube to the face:

Then select the cube, shift select the plane to make it the active object and Object > Transform > Align Objects:

In the Operator box, choose Relative to > Active and press X and Y:

Add a large plane where you want the cube's face to end up.
Move the cube so the face in question is really close to the new plane (doesn't have to touch the plane).
From the controls near the top of the screen, select Snap To Face Nearest (from the little dropdown). Make sure the nearby magnet icon is not selected (i.e. don't snap during transform).
Left-click to select the cube, then shift-left-click to also select the plane.
From the Object menu select Transform and then Align Objects.
From the Align Objects floating control window, make sure that the Z line is selected, i.e. becomes blue (and the X and Y lines are not selected), select Negative Sides as the Align Mode, and select Active as Relative To.
Enjoy.

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


text:
Filling a box with tools
As in this image,

I want to fill a box with some tools. I applied rigid body (active) to the tools and box (passive). All objects are made in real-world scale. The object's shape is changed to MESH type. I decreased the margin to 5 mm and ran the simulation. And the result is:

Tools go away from the box. If you want to look at the settings I applied to the simulation, the Blender file is here:
test.blend

turn down collision margin to 0 here:

After that they will fall down.
You should also reduce friction to get a realistic result.


text:
How to put buttons, sliders, ect. in the N panel with an addon
My goal is to make an addon that makes a new tab in the sidebar with sliders and buttons and stuff that do nothing (it’s my first addon, so I’m just experimenting).
I stole some code from the cursor array addon tutorial found on the Blender documentation just to get the first button made (which I could only figure out how to put in the VIEW3D_PT_view3d_properties part of the side panel). Here is my code thus far.
I’m pretty sure I could figure out how to make all the buttons if I could figure out how to register and unregister multiple classes (as you can see, class pan is unregistered).
I am a beginner with Python so try to answer in simplest terms.

Here is a very trivial very small very complete add-on. It draws one button in one panel that shows up as the "TLA" tab in the 3D Viewport when the Viewport is in Object Mode.  It only has two classes, but it uses a common technique to register multiple classes by putting their names in an array and processing the array.
For each button you want, add an operator Class with a different name and a new col.operator.
# Very small add on to start from

bl_info = {
    "name" : "draw colors",
    "description" : "A skeleton addon",
    "author" : "Marty",
    "version" : (0, 0, 1),
    "blender" : (2, 80, 0),
    "location" : "View3D",
    "warning" : "",
    "support" : "COMMUNITY",
    "doc_url" : "",
    "category" : "3D View"
}

import bpy
from bpy.types import Operator
from bpy.types import Panel

class TLA_OT_operator(Operator):
    """ tooltip goes here """
    bl_idname = "demo.operator"
    bl_label = "I'm a Skeleton Operator"
    bl_options = {"REGISTER", "UNDO"}

    @classmethod
    def poll(cls, context):
        return context.mode == "OBJECT"

    def execute(self, context):

        self.report({'INFO'},
            f"execute()")

        return {'FINISHED'}

class TLA_PT_sidebar(Panel):
    """Display test button"""
    bl_label = "TLA"
    bl_space_type = "VIEW_3D"
    bl_region_type = "UI"
    bl_category = "TLA"

    def draw(self, context):
        col = self.layout.column(align=True)
        prop = col.operator(TLA_OT_operator.bl_idname, text="Say Something")

classes = [
    TLA_OT_operator,
    TLA_PT_sidebar,
]

def register():
    for c in classes:
        bpy.utils.register_class(c)

def unregister():
    for c in classes:
        bpy.utils.unregister_class(c)

if __name__ == '__main__':
    register()

ok so i got the button part but what about adding properties like bool or float?

I suggest the tutorial series "Scripting for Artists".  You can find most of it on YouTube and it has examples of these things.

Here I have extended Marty's answer with bool and float properties:
import bpy

bl_info = {
    "name" : "whatever",
    "description" : "addon",
    "author" : "Marty",
    "version" : (0, 0, 1),
    "blender" : (2, 80, 0),
    "location" : "View3D",
    "warning" : "",
    "support" : "COMMUNITY",
    "doc_url" : "",
    "category" : "3D View"
}

import bpy
from bpy.types import Operator
from bpy.types import Panel

class TLA_OT_operator(Operator):
    """ tooltip goes here """
    bl_idname = "demo.operator"
    bl_label = "I'm a Skeleton Operator"
    bl_options = {"REGISTER", "UNDO"}

    @classmethod
    def poll(cls, context):
        return context.mode == "OBJECT"

    def execute(self, context):

        self.report({'INFO'},
            f"execute()")

        return {'FINISHED'}

class TLA_PT_sidebar(Panel):
    """Display test button"""
    bl_label = "TLA"
    bl_space_type = "VIEW_3D"
    bl_region_type = "UI"
    bl_category = "TLA"

    def draw(self, context):
        col = self.layout.column(align=True)
        prop = col.operator(TLA_OT_operator.bl_idname, text="Say Something")

        col.prop(context.scene, "my_tool")
        col.prop(context.scene, "my_float")

classes = [
    TLA_OT_operator,
    TLA_PT_sidebar,
]

def register():

    for c in classes:
        bpy.utils.register_class(c)
    bpy.types.Scene.my_tool = bpy.props.BoolProperty(
        name='Bool',
        default=False
    )
    bpy.types.Scene.my_float = bpy.props.FloatProperty(
        name='Float',
        default=0.0
    )

def unregister():
    del bpy.types.Scene.my_float
    del bpy.types.Scene.my_bool
    for c in classes:
        bpy.utils.unregister_class(c)

if __name__ == '__main__':
    register()

result:

You do realize you owe me all of the reputation you earn from this answer.  ;)  I'll settle for you doing me the favor of adding a comment to your answer reinforcing my point that this is a 'tip of the iceberg' addition and the OP should follow the "Scripting for Artists" Tutorial to find out the bits they're missing.  Also, I edited your answer so that the code would be consistent with what I would have done and I removed the property group, which you didn't actually use, to make the code clearer.  (Always better for additions to match original style.)  Hope you don't mind.


text:
Scale instance to exact curve length
I have geometry with multiple curve elements. I need to scale the instance to the length of the curve that it sits on. Each curve is not all equal in length so the instance scaling has to work according to the curves length.
How can I translate the curve length to the scale of the cube so that it is all the same distances when it meets at the respective points?
Blender File

That can be the following:

Delete faces, split edges, convert to curve.
Make a cube with a given X/Y sizes and 1 unit in Z. Shift it half its height.
Instance on points with only first points of the curve.
Align cube Z to the curve tangent.
Scale on Z with the spline length.

Champion! Thank you so so much!!!!!!!!!! Elegant and simple. WOW


text:
Look dev not showing any objects
i have recently started using blender 2.8 and there is this look dev preview mode i tried but it doesn't show any of my model instead only black patches are visible in the place of my objects. here is how it looks. How do i fix it? Also eevee doesn't render any stuff on my pc so i use cycles..

Sounds like you may have trouble with your graphics driver, try to update it.

But cycles is doing well.. Does eevee need graphic card only and doesn't use pc for its proper function?

Yes, Eevee renders only on the GPU (https://wiki.blender.org/wiki/Reference/Release_Notes/2.80/EEVEE#Limitations). Rendering issues are typically happening because of problems with the  graphics driver (https://www.blender.org/download/requirements/)

Oh OK.. Thanks a lot.


text:
Why is cycles rendering blurry Boolean detail
Would really appreciate some help figuring why the detail in this render is all blurry?The mesh was an imported svg, converted to mesh, cleaned up and the difference and mirror modifier applied.Thanks
blend file here

Thanks @Jackdaw,turns out it was a bevel modifier in the stack. Took it out and it was good to. Lesson of the day... Always check ya stack

It seems like Cycles have a hard time figuring out how to deal with the N-Gons here. Try add a Triangulate modifier and change methods if needed.


text:
Baking procedural material from procedural model
I'm pretty new to Blender and so have only used it occasionally for small tasks that are not possible in 3DS Max. What however blew me away completely yesterday is the procedural stuff!
So I went ahead and turned an imported FBX model into rocks following this tutorial (pure magic tbh!):
https://www.youtube.com/watch?v=QA13LPCZ3dM
The result looks like this:

As you can see both the model and the material (because of the blending overlap required for the rocks) are now procedural. However I do need to export what I'm seeing here with UV Maps and a standard baked texture.
I tried a few tutorials for that (e.g. this one: https://www.youtube.com/watch?v=B2kFeMBBBjc) but the problem is that once I'm switching for the UV Editing tab for baking, this one only "sees" the base model, before the rocks have been generated:

Any help in pointing me into the right direction would be much appreciated!

If you are asking how to do baking, I would recommend watching some tutorials. That will be way more practical than anything anybody could write in a single answer. If you need help with the specific case, people will need to know everything about it so it would be best to share your .blend file. You can use https://blend-exchange.com/ to share .blend files on BSE. You are using normal map incorrectly, by the way - you need a Normal Map node. Else than that the screenshots don't help a lot since they are not showing anything meaningful at all.

Not sure if that's what you are looking for or if there are reasons this might not be enough, but you can apply the Geometry Nodes modifier to get the resulting geometry. You probably need to realize instances(there is a node for that) inside the geometry nodes and make sure it's all mesh data in the result before doing so.

My apologies, it looks like I missed your reply earlier. I agree that watching more tutorials would be helpful but at this stage I'm not even sure where you begin. Therefore it would be much appreciated if you could have a look at my file I uploaded here:


text:
3D Print Toolbox tab doesn't show up in Edit Mode
I installed add-on 3D Print Toolbox but can't see this tab in Edit Mode meanwhile in Object Mode it is.
How it can be fixed?

There seems to be a bug in the latest version. You should report it to the developer.
%AppData%\Blender Foundation\Blender\4.2\extensions\blender_org\print3d_toolbox\ui.py lines 16-23:
class Sidebar:
    bl_category = "3D Print"
    bl_space_type = "VIEW_3D"
    bl_region_type = "UI"

    @classmethod
    def poll(cls, context):
        return context.mode in {"OBJECT", "EDIT"}

Poll function fails in edit mode since it's supposed to be "EDIT_MESH", not "EDIT". You can edit the file and save it and it should work(after restarting Blender or reloading the add-on by disabling and enabling it in the preferences). You can open the file easily by right-clicking on anything in the add-ons UI and choosing Edit Source(it should be added to Blender's Text Editor):

You have to have Developer Extras enabled in the preferences for that though:

It would probably be better to wait till the devs sort it out properly though. Not sure what modes it is intended to work with.

Thank you! This solve my problem.
Reported to developer.

You may have it filtered.

Installed add ons are not visible as separate tabs in sidebar
If your still having issues

Trying uninstalling the add-on
Restart Blender then install the add-on from
https://extensions.blender.org/
https://extensions.blender.org/add-ons/print3d-toolbox/

Also this might be helpful
3D print toolbox is missing from Add Ons

I tried installing from extensions platform and wasn't even sure it was supposed to work in edit mode, but it seems it should work since there is a clear bug in the poll function of the panel where it has "EDIT" instead of "EDIT_MESH" when checking if edit mode is active. It seems this one is definitely a bug. Not sure how to report it for an add-on though...

Should be 1 minute fix once it's reported though.

@MartynasŽiemys strange I'm using 4.2.3 on Ubuntu using 1.0.0 see animation above. I guess a new bug was introduced.

@MartynasŽiemys to report the bug they use this site for this plugin. https://projects.blender.org/extensions/print3d_toolbox/issues

Might it be that you migrated the add-ons installed previously?.. I just double checked, it seems to be broken with fresh install from extensions platform. Must be new.

@MartynasŽiemys could be I guess I won't be updating yet :-D

Oh, wow. It happened yesterday https://projects.blender.org/extensions/print3d_toolbox/commit/90bed690a3f6d081a5c11eb2239b677c01afd637

Confirmed! Version 1.1.1 was fine, but updating just now to 1.1.2 shows the bug.

Looks like they made the change.
https://projects.blender.org/extensions/print3d_toolbox/issues/11

Now updated to version 1.1.3 and working fine.


text:
How do I fix Material Shrinking

To be clear, I am NOT using a texture; this is done using the material editor. I don't know how to fix this; moving the UV around does not do anything.

Hello please show a screenshot of the shader editor or even share your object: blend-exchange.com

Well, you are using a texture, and you need a "texture coordinates" node to drive the input of your texture, noise, whatever. Ideally you should create the UVs and take the UV from the "texture coordinate" node

As Daniel says, if you are not using the Texture Coordinate node before a procedural texture node, by default the texture will be projected with the Generated mode, which means that the object proportion will be taken into account, example with the Checker Texture on a flat cube (make sure that you've applied the scale of the object by the way):

To fix the problem, create a Texture Coordinate and a Mapping node before the Texture node, then use the Generated output and change the Scale Z value of the Mapping to correct the stretching, or use the Object output and change all the Z values of the Mapping to correct the whole texture proportion:


text:
Issue with subd+creases/bevels workflow
It is not the first time I encounter it, but I am sick of it enough to ask for advice. I have a number of surfaces, where I want smooth geometry to convert to sharp one. I am using creases or bevels, but this is what I run into:
example 1: I need this part to be sharp and the outside to be smooth...

...But outer smooth part goes through corner vertices and make weird inverted geometry:

Another example of this issue:

Loopcuts does not help. There are multiple ways to butcher the geometry and make the problem literally smaller, but it still does that (for example, beveling these corner diagonal edges makes it so this type of overlap occurs on a smaller scale on each individual turn). How do I get around this without retopoing whole mesh?

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

I agree with @RickT here. Sure, we can try to build some geometry that might or might not result in the same issues, but as long as it is not the same our solutions might work on our examples but not on yours.

are these blue lines Bevel Weights? Sometimes you need to manually bevel to have a good result, as Rick says, please share an example


text:
Edges not properly displayed in 3d view
I worked on a model in large scale and then scaled down the model. Now I am not able to clearly see the edges in the model in 3d view. Is this a known Blender issue. Is there a way to increase the thickness of the edges that are displayed in the 3d view port?

Probably adjusting clipping in 3d View may solve that

It would make it a little easier to tell what's wrong if you used a non-lossi format such as .png, the compression artifacts make it a little difficult to see.

I will upload a PNG once I reach home. Thanks

Just noticed that the text on the image has white background. How did that happen? Is it a stackexchange feature or imgur feature.

no @FazilAbdulLathif I replaced the text it was heavily artifacted almost illegible.

@zeffii Thanks for that. I am using stack exchange for the first time. It would have been a really good feature otherwise :)

I just tried changing clipping. Now it shows the model in 3d view in orthographic mode. This is enough for me to work for now. The size of the object is 3.5cm x 5.5 cm x 9.8 cm. And the clipping I have set now is Start 1mm and end 300m.

http://i.imgur.com/oSQKWgu.png

perspective looks weird though. I have had this issue before but never thought it was the clipping.

Try to adjust in properties panel the start clip.Should solve the problem. Or you can try to turn your modifiers off in the viewport to sea the lines more clearly.

As suggested by everyone, I tried changing the clip start and end. And I think it is better to work on the object with a larger size and reduce it when required. I have enabled metric and the lowest clip possible is 1mm. Which is small for the model which is in centimeters. So if I increase the size of model, I will be able to work easily and then scale and apply the object once completed.


text:
How to 'Select All' using the keyboard?
Is there a way - using key commands - to select all?
I have a sphere that has some vertices deep inside that only appear when I move the ball, and they are not selected no mater if I use the C or the B select keys.
If I could "select all" the program should be able to get these little rouge vertices that I can not seem to collect when I try either C or B.
Thank you

Yes, you can select all with A.
If there is anything selected then A will deselect everything, if nothing is selected A will select everything.  You can change this behavior immediately after pressing A at the bottom of the T toolbar, or with the F6 menu.

This is not correct.  Although the scene window shows all the objects selected, any further commands will only have an affect on the initial objects that were selected by hand.  Effectively, select all only LOOKS like all are selected, when in actuality, only the first hand-selected object is actually selected.

@tguy no not really.  When multiple objects are selected they really are all selected.  But some operations are only applicable to one object at a time, in that case the operations are only applied to the active object - the most recent individually selected object (indicated by a slightly lighter orange color).

You could also disable the Limit selection to visible option which is enabled by default.
Then circle and box select will also work.

Another tool that may be helpful is select linked. There are two ways to use it -

pressing L will select all vertices linked to the vertex under the cursor.
pressing ⎈ CtrlL will select all vertices linked to the currently selected vertices.


text:
How to align an object so one of its faces are axis-aligned? (make an object upright for eg)
I'm considering adding a feature to the 3d-printing tools, or to the Transform menu -- whichever is more appropriate.
Background: When 3d printing, one often must rotate an object so some face(s) lie flat on the xy plane, so it'll print flat.
Present method (which works, but is a lot of steps):

Select the desired face (in edit mode)
Shift+Numpad7 to view it from its local Top
Go to Object mode and add an Empty
Check Align to view (so the empty is aligned to the top-down view of the face)
Parent the object to the empty (empty becomes parent)
Select the empty and clear its rotation (Alt+R)
Select and unparent (Alt+P) the object, using Keep transformation
Success!

Desired methods:
A. Rotating the mesh in edit mode might be satisfactory, so:

Select face
Hit button (Make Face Bottom?) in 3d-Printing tools, which rotates the whole mesh so that face aims down.

Note: Sometimes someone may want to align so this is the top or side face, so the button might be better as: Align object to face, followed by a tool option which allows a selection of: "Top, bottom, left, right"

B. Rotating the object itself might also be desired by some, instead:

Select face
Shift+7 to view from face's "top"
Go to object mode
In the transform menu, select Align object view-rotation.  Tooltip: Rotates object to align the current view's rotation with an axis.(Or something more clear).
Tool-options allow overriding default of -Z with: Z-, Z+, Y-, Y+, X-, X+

Note: Tool-options may also allow a pulldown of the available Transform orientations, defaulting to global.

The easiest and fastest implementation might be a python addition to the 3d-printing tools, but I believe it worthwhile to consider the usefulness of this feature in normal modeling, and therefore its addition to the transform menu -- this has the secondary positive effect of it working on the object instead of the mesh, thereby retaining the object's local transform orientation.
Advice, suggestions, questions, or assistance are all welcome.

This seems like a feature request/discussion more than a question.

Blender doesn't have a tool built-in to perform this operation currently.
If you would write your own tool,
a method you can use to achieve this using Python.

Define the source vector (face normal in this case).
Define the destination vector (the axis vector).
Use the rotation between these vectors to define a 3D rotation(see Vector.rotation_difference).
Then rotate your object by this.

This example uses the normal of the first face, assumes object
import bpy
from mathutils import Matrix, Vector

obj = bpy.context.object
matrix_orig = obj.matrix_world.copy()

# for this example just pick the first face.
axis_src = matrix_orig.to_3x3() * obj.data.polygons[0].normal
# z-axis, could be any direction
axis_dst = Vector((0, 0, 1))

matrix_rotate = matrix_orig.to_3x3()
matrix_rotate = matrix_rotate * axis_src.rotation_difference(axis_dst).to_matrix()
matrix_translation = Matrix.Translation(matrix_orig.to_translation())

obj.matrix_world = matrix_translation * matrix_rotate.to_4x4()

what is matrix_prev here?

Corrected (matrix_orig)

My addon, Mesh Align Plus, can do this (and many other things):


text:
How to create a temporary mesh in object for exporting?
Is it possible to create a temporary mesh in an object, so that I can perform various operations on it, such as apply modifiers, run operators and what not? Then export the object with a python script. Revert back the changes. The ultimate goal is to prepare object for export, export and then leave the original object intact.

You can do this, see related question: https://blender.stackexchange.com/questions/7033/how-can-i-triangulate-a-mesh-without-changing-the-object/7036#7036 (not duplicate but close)

I need to do some of bpy.ops stuff in between the modifiers. How can that be done? For example, I need to first triangulate, then do "seams from islands" operator, then apply another modifier.

Probably best create a copy of the object, operate on this, then remove after.

You could just duplicate your object in current form.  Alt+C convert it to mesh.  This applies all modifiers and such.  Export it and delete it.


text:
Edit face triangulation without actually adding edge
If you make a plane and move two vertices on opposite corners, you will have a non-planar face. This will be rendered with an "invisible" edge along either of the opposite pair of vertices. Or in other words, the face will be triangulated by picking two opposite vertices.
In 3ds max, there's an option to actually edit this triangulation so that you can decide how it's rendered. This is done without creating any edges, it's just the face's triangulation that's edited. This way you can keep topology in quads while still controlling triangulation:

In blender, I see no other option than to manually add edges, disrupting the topology:

So, is it possible to edit the triangulation in Blender, without modifying topology?

Triangulation can't be controlled directly, it's not even done by Blender in object mode. Instead, it is left to the graphics driver to decide how to triangulate non-planar quads (which differs among drivers for different cards). Behavior may even change with VBO enabled or disabled.

You can use the triangulation modifier to get a bit of control with the beauty option, to divide across the shortest diagonal:

Too bad it can't be controlled directly, but I can definitely live with modifying to shortest diagonal. Thanks.

Note that in upcoming 2.70 new options will be available (different triangulation methods for quad and ngon): http://wiki.blender.org/index.php/Doc:2.6/Manual/Modifiers/Generate/Triangulate

There is now an operator which swaps the tessellation direction.
Flip Quad Tessellation

Nice! It was added in 3.5

Hi, thanks for the post. This site is not a regular forum, answers should be substantial, stand on their own, and thoroughly explain the solution and required steps. One liners and short tips rarely make for a good answer. If you can, [edit] your post and provide some more details about the procedure and how it works, perhaps add a few images illustrating some steps and final result. See How to write a good answer?.

There is a work around to do this
Step 1: to visualise them you will have to plug a wireframe node into the base colour input on a material. This will show you all the edges even the hidden ones.
Step 2: (this is not perfect but works) Delete a face you want to change the triangulation on, select one of the quads border edges and use F on the keyboard to fill it back in, this is where it gets a little tricky, depending on the edge selected it will predetermine what angle the triangulation will use, so you might need to try a few times to get the right one.


text:
Unable to add color to text
I am using blender 2.66. I have added a text object and then selected the Object tab in the properties window, went up to the bottom and the used object color picker to choose a color.
But even after choosing a color, when I render the scene as image the color does not seem to be applied to the text object. Is there anything I am missing?

Try creating a material.
Blender internal:

Create a material in Properties > Materials panel:

To simply add some color, you probably want to set the Diffuse color instead of the object color:

Object color only affects the render when enabled in Material > Options:

Object color is used to add some color variance per object without adding new materials.
Cycles:
AFAIK, Object color is not used at all in cycles.
Render:
To give an object a color in the render for cycles:

Create a new material in the Materials panel by pressing Add new:

This will automatically add a Diffuse shader.
Adjust the Color input of the diffuse shader:

Viewport:
To give the object a color in the 3D view set the Viewport color in Properties > Materials > Settings > Viewport color:

Note that the Viewport color is separate from the colors defined in the material which will appear when rendered. (It will only affect the 3D view)


text:
Export a file with textures to Unity?
How can I export my blender file to unity so it saves all materials and textures?

Related: http://blender.stackexchange.com/q/9184/599, http://blender.stackexchange.com/q/306/599, and http://blender.stackexchange.com/q/9215/599.

i did a was written in the secnd link: import new asset, got to my blen file. but when I try to place it in the scene it isn't letting me


text:
Blender saves a new file every time
When I click save or hit Command + S what appears to be a new version of the document is created. So if I save 2 times, I get 2 documents, filename.blend1 and filename.blend2.
What exactly are these files and why is Blender creating them?

These are backup files created by Blender and are fairly normal.
Excerpt from the wiki

Save and Auto Save
...To reduce the chance of
  losing files when those events occur, Blender can use an Autosave
  function. The File tab of the User Preferences window allows you to
  configure the two ways that Blender provides for you to regress to a
  previous version of your work...

Okay, that makes sense. Thanks for the quick and knowledgeable reply!

As an addendum, you can change the number of saves in the file settings (you can completely turn them off if you want to).

It doesn't make sense to me. Why would blender need to create a backup, when you are saving right then? Also, is it safe to delete those files because my OCD doesn't like them.

@OneStig Feel free to delete them but know that anything can go wrong regardless of how often you save, a powercut or the application crashes and suddenly the last hour of work is gone, a vital imported asset is missing or worst case scenario your file gets corrupted. Any professional in any tech related industry knows how crucial backups are. Error is uncertain and can come from anywhere so better safe than sorry.

The other two answers have covered this already, but I just thought I would go further and show you the preference concerning this feature.
If you go to File→Preferences→File, you will have a box that says "Save versions #" (Where # is the number of versions to save).

If you want it disabled (if for example, you use a cloud service for backups), set it to "0".

These are backup files, saved and incremented every time you make a save. Unless you really know what you are doing and aren't creating giant files I would leave this setting as it is.  One day you will want to retrieve critical blend information after an unexpected crash by loading one of those backups, and wish you hadn't disabled it. This can be an extra 'fail safe' in the unlikely event that 'recover last session' doesn't work.
These days storing data is so cheap, the only problem you might face is the organization of so many files. These files are fine to delete after a while if you really don't need them, or won't be working on a .blend anymore.

The blend1, blend2 etc. files are not saved on a timed basis, they are only saved when you make a manual save. Autosave files are saved to /tmp on a timed basis. See the wiki


text:
How can I get a list of the installed addons using the API?
How can I get a list of the installed addons and the version number so I can print out and use as a simple reference when checking for updated scripts?  I've looked at bpy.types.Addons and bpy.types.UserPreferences.addons but getting a list of the addon names is eluding me.  Any help would be appreciated.

Can you explain what you are using this for? (it can give us insights into weakness in the API if you are forced to use an undocumented are).

Blender has a module it uses for addon management called addon_utils, this isn't in the API docs and is only for internal usage. But its a fairly straightforward module.
This script prints all addon versions or (-1, -1, -1) if there is no version.
import addon_utils
for mod in addon_utils.modules():
    print(mod.bl_info.get('version', (-1, -1, -1)))

Note, that the modules may be fake, that is to say, a module object that only contains bl_info, this is done to avoid importing the module just to display it in the preferences (before its enabled).
Other functions of interest are...
addon_utils.enable(module_name, default_set=True, persistent=False, handle_error=None)
addon_utils.disable(module_name, default_set=True, handle_error=None)

# (reloads from disk)
addon_utils.modules_refresh(module_cache=addons_fake_modules)
# returns all modules
addon_utils.modules(module_cache=addons_fake_modules, refresh=True)

Suggest reading addon_utils.py, if you need more info.

Note, if you just want to access enabled addons, this is a lot more simple...
what about:
import bpy
print(bpy.context.user_preferences.addons.keys())

that returns something like:
['io_scene_3ds', 'io_scene_fbx', 'io_anim_bvh', 'io_mesh_ply', 'io_scene_obj', 'io_scene_x3d',
'io_mesh_stl', 'io_mesh_uv_layout', 'io_curve_svg', 'cycles', 'sire_o', 'space_view3d_move_orig
in']

So to get the modules you can do...
import bpy
import sys

context = bpy.context

for mod_name in context.user_preferences.addons.keys():
    mod = sys.modules[mod_name]
    print(mod.bl_info.get('version', (-1, -1, -1)))

@zeffii noted this in his answer which has since been deleted so including here.

Thank you for pointing out the addon_utils module.  I'll try this out

This worked great (although I'm sure this comes as no surprise to you!)

I have compiled Blender as a Python3 module so I don't have access to the GUI. I am installing an addon and enable it using the bpy module. I then save the user preferences using bpy.ops.wm.save_userpref() and exit Python.Next time that I do import bpy I don't see the addon API being added to the bpy module.Do you know how I can fix that?If I run the same exact script in Blender terminal (when using the GUI) everything works fine.(You may answer here)

To update the above, as of at least Blender 4.0 that code no longer works. It has changed slightly to something more like this:
for mod_name in bpy.context.preferences.addons.keys():
    print(mod_name)


text:
Is there any way to save background images in the .blend file?
I'm trying to use the background images option to model from blueprints.  After I cropped, loaded, positioned and scaled in each viewport, things were going pretty well with the modeling.  I saved the progress on the model and came back the next day and the images were not there.  Am I missing something?  Do I have to set everything else up again or do you have to get your modeling done in one session?

Just wondering if you moved the blend file after saving. Otherwise Blender should be able to load the images.

The most convenient way

File -> External Data -> Pack into .blend

In the report area it will say 'n files packed' Where n is the amount of images currently in the image list. Now hitting save will include those images in the .blend.
The problem you might have with this method is that it will auto-pack any subsequent images you add.
Alternatively (one by one, gives more control)
You do them individually, go to the UV image editor. For each image you want to pack you select the image so it shows in the view, then

Image > Pack Image

Again you have to save the .blend file before exiting.
Further reading
Obligitory Blender Wiki link: Pack and Unpack Data, it's an interesting read.

This solution did exactly what I had hoped it would.  I knew Blender had to be able to do this.  Thanks to all who responded.

@user809 take your time before accepting, you might get more complete answers, it's worth reading through all of them to make sense of the situation.

Without knowing exactly what you did to lose the images, I guess it is ok to share this tip as well, zeffii is right that packing is more convenient but packing images will increase your file size, more so if you have several and or they are large in size.
With regards to satishgoda's comment above, you wouldn't normally want to pack blueprints with your model. So, while it is what you asked for, based on your question, I can tell it isn't what you actually need. You can press the F next to the image(s) and save as you would normally. Checking this makes sure that they don't get removed even when they have no users (when they show up with a 0 beside their name which happens when you don't have the image in use), so as long as you haven't moved the file, you should be ok.

It sounds like the problem you're having is actually not related to saving the images, but instead having to do with how you're trying to view them. Background images only show up when you're in Orthographic mode, and using one of the preset view angles (Top, Side, Front, etc).
To toggle in and out of Orthographic mode, press numpad 5. The shortcuts for the preset views are the other numpad keys (Top = numpad 7, Side = numpad 1, Front = numpad 3).


text:
Resource for Blender addons?
Trying to keep track of the updates to all the great, user-developed add-ons is fairly frustrating (at least for me). Is there currently a centralized resource where all these amazing add-ons are kept and updated in one location?
If there isn't such a resource, would it be possible to have blender query the collection of installed add-ins and then iterate through on-line references looking at version #'s for add-ins?
Since, as far as I know, it hasn't been done...I have to ask if there are any major flaws in the concept. Of course, in my dream scenario, there would be a "voting" front-end that would allow users to see what the most popular and useful add-ons are and where you don't have to read pages (and pages) of threads.

There is such a 'store'.. it's called the wiki.. http://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts. Also, this question is a Feature request which is very much off-topic. You can refer to the help page for seeing what is off-topic here and before asking future questions.

possible duplicate of Resources for Blender

There are a number of online resources available that keep track of a number of Blender Addons, though I am not aware of any one centralized site that covers all of them.

Your first go-to resource is going to be the Blender Wiki's Scripts page, which keeps up-to-date information on all of the addons that come packaged with the Blender installation, as well as several others.
Another valuable resource is the unofficial Blender Addon List, a listing of many Blender addons maintained by Daniel Banasik.
Yet another resource is Graphicall.org. I am aware of a number of different user compilations of various scripts, but perhaps the largest of these is on this page.

The short answer to your question is that these resources are scattered everywhere, and while there are some that cover a large number of Blender addons, there isn't yet one location that keeps track of all of them.
Furthermore, the process of pulling these resources into one centralized location would be a logistical nightmare, with whole hosts of differences between how different scripts handle updates, as well as certain scripts being made obsolete by updates to new versions of Blender. I won't say it can't be done, but it would certainly be difficult to keep track of those things any better than the resources already out there.
Edit: zeffii also pointed out that you can get a zip with the most recent version of Blender and all user-contributed addons at builder.blender.org
Update: Added the Blender Addon List and removed a link to an inactive resource.


text:
Magic texture ignoring factor
I'm making this vaporwave scene and was trying to make the purple part of the floor be visible, but mask out the black part to just be black without any texture. What am I doing wrong?
Node setup:

Scene:

Blend file

do you mean that the black checkers should be pitch black?

I am not sure but if you meant this, you can use this node setup:


text:
How can I reduce the number of vertices on a sphere?
I'm trying to create a mesh like this:

However, I can't seem to figure out how to reduce the number of vertices like the above ref. I've tried limited dissolve or just straight out deleting them - but I can't get this result:

I'm confused about the wording here. You say that you're trying to create a mesh like the one in the first image, but then in the second paragraph you say that you "can't get his result:", as if you were trying to get the result shown in the second image. I looked in the edit history, and it looks like that : wasn't there until @PeterMertensen edited it. Perhaps you meant something like "but it doesn't work. Here is what it looks like now:"?

You can select the edge ring, then Select > Checker Deselect:

Then Select > Select Loops > Edge Loops:

And at the end, CtrlX to dissolve edges

The Reconstruction Method
Beginning in edit mode, select one loop on one side of the mesh. (preferably one that touches an axis.)

Delete all but that loop and add a Screw Modifier.

Set Steps Viewport to the desired resolution and turn on Merge and Calculate Order.

At this point, you can have whatever number of loops you want! Once you have chosen your absolute favorite number, simply apply the modifier and model on!

When you first create the sphere, use the Operator Adjust Panel to lower the number of Segments.  The panel shows up in the lower left when you add the object.  You may have to click the triangle to open it.

You can also reduce the number of Rings, of course.

Try to use Decimate modifier with un-subdivide option with 2 steps