Cloning objects without array?

Hi,

I’d like to make 24 clones of a chair (Blender 2.54) for a classroom and put them freely around in the room.
Is there a way to make some kind of clone, instance, ghost or something of one object without an array?
The array makes nice clones but only in perfect X, Y , Z directions and therefore can’t be used for freely positioning the chairs.
Only way i can think of now is the SHIFT+D for making duplicates, but that makes the scene very slow to move around in.
It would be perfect to make once chair, and only have several virtual clones of it… kind of like an non fixed array.

Thanks

You could use a particle system to place multiple chairs randomly an an emitter plane. Increase the particle number to increase the number of chairs. You could even weight paint the plane to control where you want/don’t want chairs to be placed.
chairs.blend (606 KB)


When cloning manually, try ALT-D instead of SHIFT-D: that way the copies will share their mesh geometry, making editing more convenient. Another way would be to use dupliverts but I don’t think that would make things easier in this situation.

In order to speed up the viewport you could use the “bounds” drawtype instead of “shaded” (object buttons, draw panel) so that the chairs will be displayed as simple boxes in the viewport. Personally I would just put them on a separate layer instead and only switch on that layer when you really need to see them.

Thanks guys!

@Richard
I can’t place each chair exactly where i want them with the particle system.
In my picture i’ve placed some chairs up side down on the table and the rest like they are randomly used by students.

@abelabel
Thanks for the ALT+D i didn’t know about that one, it will come in handy when i need to edit all chairs :yes:
The viewport becomes just as slow as with SHIFT+D though but using the “bounds” drawtype as you suggested makes it fast again.

I’m still curious why there isn’t a way to make virtual clones, i remember you could make an object in Flash and pull in as many instances of an object or movie clip you needed into the scene without making things slow, but if you copied lots of object things became slower.
Maybe some talented programmer could develop something like a cloning thingy :confused:

Cheers

http://content.screencast.com/users/Johny/folders/Jing/media/3a364df9-d95c-45e1-a3c1-5571f95dff90/00000060.png

Paint objects http://blenderartists.org/forum/showthread.php?t=199430
Render instancing http://www.blender.org/development/release-logs/blender-254-beta/ray-tracing-optimization/

for object duplication with different rotation
you can try the following:

create a small plane, like a floor-panel

select the chair and the plane and hit ctrl-p
to make the plane the parent of the chair

then in the object-options of the plane
set the duplication for faces (you may have to scroll down in object-options to see it, there are duplication option settings for vertices, groups … etc.

now you will have one chair with the orientation of this plane

tab into edit-mode of this plane
and select all four vertices of this plane
duplicate those and move them to a new place
and you may rotate them upside down.
Duplicate again and again at every place you want a chair
and rotate the duplicated new plane like you want the chair to be.

if you dont want to see the duplicated chairs
simply disable the duplicate for faces of this object.

Very interesting discussion

What you can also do with an array is apply the array modifier. You will then have all those chairs as a single mesh. Then put that mesh in edit mode and do separate loose parts. Then you will have all those chairs created and you can position them as you see fit. There may be pivot issues with that technique, however, and have to re-center the axis on each chair.

Seems like for 24 chairs, any approach is going to take about the same amount of time. Now 2,400 chairs you may want to consider a code solution.

Do you have a web link an example of a code solution?
I recently posted a similar question … yesterday using my name
I am using 2.55

Jakerlund
You probably already know this but you can use
Linked libraries … Appended Libraries… which is also a form of duplication and workes on a scaleable cross file level.
I make no statement how this affects speed … I suspect it does not provide speed improvement.
File size I expect links to reduce that.
Lets assume you chair is in a group for convenience … but it does not need to be.
You can use menu file append or menu file link to create duplicates

If you save your current file under a name such a my_chair_library you may create duplicates or link to your chair.
Once you file append … navigate to your group that contains the chair …

It appears you only want to translate rotate and scale your chair at this point but …
Just be warned of trying to animate the vertex structure of linked chairs with armatures … with links one armature will control all chairs under the current software. We can only hope for the future improvement.
Of course there is better documentation for this at

http://wiki.blender.org/index.php?title=Doc%3AManual%2FData_System%2FLinked_Libraries&diff=126255&oldid=113079#Linked_Libraries_Overview

and yuuutuube has videos as well … one with mancandy from blender foundation is one I remember.
I have a similar problem to yours.

possibly whacky suggestion: You could use dupliframes for this. Make keyframes for the chair in each of the places you want it, turn on dupliframes, and you get lots of copies of your chair at the last frame.

(Note: I’m still pretty new to Blender, so this is probably a stupid idea. But it might be interesting to try?)

~Felix.

you could also use dupliverts. make a simple mesh, which will also give the orientation you want for the chair by the form of the mesh (i have actually only used it so far to arrange objects like columns in a circle). then with dupliverts, you can add a chair to each vertex of this mesh.