TransWikia.com

How can I make a polar array?

Blender Asked on September 29, 2021

Every tutorial offers this option – create an empty, add the array modifier to your object, choose object offset and select the empty. Then turn the empty and you get polar array.

However what I get is far from it. Each next copy in the array becomes exponentially larger and when I spin the empty the whole whatever I’ve got turns and it’s far from the result I wanted. I’ve noticed that when scaling my object to 1, it sort of fixes it, but then its still very weird. My empty becomes the center of the 2nd object in the array and me turning it makes all the other objects curve relative to each other and in result the center point of my ‘polar array’ keeps shifting. I want the center to be where my empty is.

There must be something I’m missing… After all I’m new to blender.

One Answer

Glossing over some things a bit..

Every geometrical entity in Blender is made up of two parts: they are Objects, which contain Data.

In the case of a polygonal object, the Data is a representation of the Object's mesh - the location of all its vertices, which vertices constitute which edges and faces,and so on. The vertex locations in the Data are not measured in World Space, but in the space of their Object. You can see the space of an Object by switching on 'Axis' in the Object > Properties > 'Viewport Display' panel.

enter image description here

The top face of the default 2x2x2 cube on the left is at Z = 1, in its object's space. Because the object has no transform, the top face is also at Z = 1 in World Space. The cube next door has been scaled in Z, and the one on the right rotated, too. As far as the Data are concerned, the top faces of those cubes are still at Z = 1, in their object's spaces. They are then given their object's transform, which puts them at different locations and rotations in the world.

In Edit Mode, you are transforming elements of the mesh in their object's space. In Object Mode, you are transforming the object (i.e its space, along with the vertices in it.)

When you Apply the transforms of an object, the World transform of the object is given to all of its vertices in their object's space, and, to compensate, the inverse of the transform is given to the object itself. That results in the mesh remaining where it was in the world, and the object's transform being returned to 0 translation, 0 rotation, 1 scale...

enter image description here

Counting from 0, an object-targeted Array modifier gives each iteration of the mesh [iteration-count] times whatever transform would would map the zeroth (original) arrayed object on to the target object. (The inverse of the arrayed object's transform in the target object's space.) The first copy's axes, if it had them, would always match the target's axes. Try it with some simple transforms, and the axes showing, to get the idea.

Answered by Robin Betts on September 29, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP