Array Modifier, Relative Offset, End Caps location doesn't make sense
Closed, InvalidPublic


Blender 2.65.0 r52859 Linux 64 bit

At best the array relative offset behaviour for the end caps is confusing to me, perhaps this is a bug ---

In the attached blend, I have 3 objects, a cylinder with open ends, and two cones that should serve as end caps. The cylinder has a height of 2 with 1 unit extending below the z plane and one unit above the z plane. The top and bottom end cap cones have their origin at 0.0.0. I have added an array modifier and set it to Relative Offset (0,0,1). I expect the end caps to sit nicely at the end of the cylinder. What I get is end caps that float 1 unit above and below what I would expect.

Are my expectations weird?



I see what you are getting at, but there is really no way for the code to know where you have chosen to place the origin point. The origin point of your cone is 1 unit away from the boundary of the bounding box of the cylinder, as you have specified in the Relative Offset value. If you had placed the cone origin point at the tip of the cone you would see no gap.

I will ask Ben if he can confirm it as "known limitation by design".

I think it could use the size of the bounding box of the caps to position them, now it's always using the bounding box of the mesh with the modifier. I'm not sure if that's always good though, and it would break backwards compatibility unless an option is added for this.

The thickness of the end caps isn't what's bothering me here. If you set the count to 1, the bottom end cap is placed down one cylinder height and the upper cap is placed 1 one cylinder height (or more fully count*cylinder height) up. The total distance is always one cylinder height too much IMHO.

I agree that changing this behaviour would be a compatibility breaker. I guess if you checked version numbers and adjusted the old files for the new behaviour, would help some. But it still could trip up the expert user who was used to the old behaviour.

(User interface design wibbly-wobbly and compatibility breaker to boot. I wouldn’t blame you a bit if you marked this as “low priority” and ignored it. )

Checked on this and its not changed since 2.4x,

The way it works is the offset is a multiplier of the height.

In the example you uploaded set offset to 0.5.