Groups and Arrays, or variables

Groups and Arrays, or variables

Hi. I have an object made of three boxes that is a section of a wood railing. One box is the upright, one is the top rail, one is the bottom footing. I've grouped it, the idea being that I could create a railing of any length via the array modifier.

So I tried adding an array to the group in order to multiply it across space. Didn't seem to do anything. So I added Array to each of the three boxes, and that did work, but requires me to set each array independently to actually array the group.

Either array should work with the group (please), or perhaps we need the ability to set a variable to a number, and then use the variable in the arrays so that they don't have to be set independently each time one uses the object at a different size. Or I'm missing something important about how to make array work with groups (hopefully)

With my basic railing, it's only three arrays. With a more complex object, this could become quite inconvenient. So perhaps there is something to be done?

Thank you

--Ben
 
Maybe the "Particle-Array" (with "Particle order: Repeat or Sorted) will get you there.

Cheers
Frank
 

Attachments

  • ParticleArrayOnSortedObjects.jpeg
    ParticleArrayOnSortedObjects.jpeg
    43.7 KB · Views: 235
well perhaps

ok, I tried that, and it does duplicate the three boxes, but it's *really* weird.

The grouped object is 4.0 on x. I want to make 5 repeats. I have to enter 5 x particles and 16 x array size.

Now I want to make 16 repeats. I have to enter 16 x particles and 60 x array size.

I have no idea how these numbers relate, I determined them by experimenting when the results were unexpected; I had hoped to be able to enter either 1.0 for x or 4.0 for x, and a repeat count I could change, rather than two numbers related by a mystery.

Can you enlighten me?
 
Help?

I'm pretty much stuck until I can get this repeat / array problem resolved. Can anyone help?

I simply want to be able to repeat a grouped object N times along AXIS at constant spacing S. Surely Cheetah 3D can do this? There are fewer more basic operations in all of 3D.
 
Last edited:
try to upload zipped file

ok, I think it uploaded.

A railing section, as shown in both examples, is a vertical rail and a top and bottom cap.

I want to be able to extend this to a railing of arbitrary length in multiples of one vertical rail. The rails are 3.5; the caps 4.0.

So to extend, I want the objects to repeat at intervals of 4.0, which leaves .5 inch gaps between vertical rails, and butts the caps together.

The shorter example shows exactly this, but with individual array multipliers. It takes three repeat counts to make it work.

The longer example uses the particle array. It takes only one repeat count (excellent) but requires an unrelated number, neither 4.0 (the desired repeat interval) or 1.0 (the length on X as a unit), in order to get the repeats to occur at the desired interval.

--Ben
 

Attachments

  • railing-multi-array.jas.zip
    21.6 KB · Views: 207
Don´t use Scale, use Width/Height/Length on parametric objects instead and it will make perfectly sense:

Cheers
Frank
 

Attachments

  • ParticleArraySized.jpeg
    ParticleArraySized.jpeg
    71.5 KB · Views: 216
  • railing-multi-array Sized.jas.zip
    21.6 KB · Views: 202
behaves exactly the same way

I changed to width height length, same requirements to get spacing:

5 (good - I want to vary this for number sections)
16 (varies with above #, no good THIS IS THE PROBLEM, SHOULD BE CONSTANT "4")

desired behavior:

count: 5 - I need to vary ONLY this to change rail length
spacing: 4 - this MUST be constant in order for above to work properly

I have hundreds of railings to build. They vary only in length. So I need a solution where I can lengthen them.

Let's say there were no endcaps. Just the vertical element. Now, I can use array, and just increase the count, with a spacing of 4, and the railing lengthens perfectly. This would be just the thing, except I have to represent the top and bottom rails as well. But as soon as I add them, array breaks, we have to move to this particle thing, and it doesn't work the same way at all. It seems to want the overall length - 1 as the one parameter, and the count as another. Instead of SPACING, which is what really needs to be there (and is how the basic array command works... until you have a group, then it simply fails to do anything.)

You can see in the array (x3) example that I can lengthen that railing by increasing each of the three array commands independently. This is EXACTLY the desired behavior, only there should be ONE command to do it for the group. Or, another solution, would be if the array command could use a variable, then setting the variable would set all three subarrays. Conceptually:


group
variable length = 4 # one change gets you 3 because of variable substitution:
box1
Xinterval = length
box2
Xinterval = length
box3
Xinterval = length
 
Last edited:

Is this helpful? Just changing the number of items in the array.


 

Attachments

  • Railing.gif
    Railing.gif
    438.3 KB · Views: 226
Seems I´m not getting your point.
Regarding Cheetah3d is a SubDiv modeling/animation/rendering suite you might need a procedural modeler like Houdini™. ;)

Cheers
Frank
 
Zoohead!

Zoohead, that looks EXACTLY like what I want. How did you get the three items into one "box" that you could apply the array to?
 
argh

Frank, I don't think you're reading what I'm posting.

I have three objects in a GROUP. A post, a cap, and a base.

I want the GROUP multipled. One value to say, N of these along AXIS at SPACING.

Clear now?
 
Zoohead, that looks EXACTLY like what I want. How did you get the three items into one "box" that you could apply the array to?

This should get you started. You can do it with separate boxes if
they are part of the same object. That requires making one the
parent of the others, then use the Import Children command and
then delete the original "children".

 

Attachments

  • Railing-build.gif
    Railing-build.gif
    126.2 KB · Views: 189
Hey there Ben,

Thanks for your file - I took your original three boxes that made the single section of your rail fence

-- I double clicked on each of them to make them editable polygon objects
-- I then placed them each at zero X and Z locations and left the Y (height) as it was
-- then I chose one object to be the parent and dragged (in the object browser) each of the other two onto the parent
-- we see the other two "inside" (like a group folder) the parent
-- with the parent object selected, Go to TOOLS >> Import Children
-- now delete the two children and we have one single polygon object.

Apply the Array modifyer to the single polygon object and extend to your hearts content.

Copy and paste this wherever you need in your project -- sample .jas file included
 

Attachments

  • New-RAIL-sample.jpg
    New-RAIL-sample.jpg
    170 KB · Views: 174
  • New-RAIL-array.jas.zip
    9.3 KB · Views: 182
Back
Top