# Scale a face to always fit the same point in global space in an array modifier

I'm new to Blender and trying to learn how to create very basic geometric objects for development in Unity.

I thought it would be a fun project to attempt to build a roller coaster rail using an array modifier. This worked fine, except I would like the main support cylinder to always be set at a set world space, or for lack of a better term 'the ground'.

In the image below, the brown line represents the ground.

I would be willing to rebuild the model and start again if necessary.

Sketchfab File

• I'm not sure it's possible to do without accepting Array modifier or adding another modifier in stack together with Array (e.g. Boolean which could cut everything located below the "ground" plane) Dec 22, 2015 at 22:03
• Array modifier alone can't do the job, it's just capable of repeating a given geometry, but surely you can model a rollercoast the way you have in mind. Could you be more precise about what you want to achieve and the given limitations (e.g. no pyhton, no boolean, no..)? Dec 23, 2015 at 13:48
• I don't necessarily need to use the array modifier. This was just an exercise in 3D modelling in Blender. I don't have any specific limitations. Dec 23, 2015 at 13:50

Some of possible solutions are to add one more modifier or to apply exhisting one and to continue working with mesh with changed geometry due to that.

### Non-destructive way - adding Boolean

Place the rollercoaster where it should be; create ground plane and position it accordingly (so no flying meshes etc). Don't apply Array modifier; instead add one more to stack - Boolean.

Before:

After:

Note that you should position Boolean modifier after Array modifier, so there to be information for Boolean that rollercoaster is arrayed.

Note that Boolean is modifier dependent on mesh itself; results of its work depend on topology of your meshes, their complexity etc.
There are cases when Boolean modifier fails, see related question. That's why it's a good idea to check your meshes for both double vertices and non-manifold geometry. Also check them on Ngons which boolean might not like too.

### Destructive way - apply Array

You may apply Array modifier and modifications made by it will become real. You can continue edit them in any possible way:

• Turn on snapping, set it to Face mode, select bottom face of the rollercoaster's support, and grab it by Z axis;

• It's possible to even join meshes, select all and use Mesh > Faces > Intersect function (when selecting all choose Self-Intersect mode of the operator in Last Operator panel or by pressing F6).

Joining faces may be undesirable, of course (you may separate them after cutting though).

• you can add a loopcut to support, turn on again snapping and grab it by Z axis to position loopcut accordingly (pretty much the same as grabbing face).

• I get the error 'Cannot execute boolean operation' for the first method. i.imgur.com/HPiSfbM.png Dec 23, 2015 at 18:35
• Adding the subsurface modifier fixed it for me for a moment but then it stopped working again. Dec 23, 2015 at 20:19
• @Ambo100 It's not completely clear for me, you accepted the answer but told that it stopped working. So did it work for you? What is the problem? If you feel it's long to explain add a file to blend-exchange and I will try to repair it, or you may stick to using file I uploaded. Dec 23, 2015 at 20:52
• Here is my model. (Before I added the subsurface modifier to the plane. When I do that, and add the boolean modifier to the track, some of the support beams are cut off by the plane and others are not. I have tried scaling the plane to be large but it doesn't seem to help. This animation might help to explain what I mean. Dec 23, 2015 at 20:59
• It would be very good if downvote could be explained; I'm just interested in the reason for that. Jan 17, 2016 at 11:04

I don't think there is really any other way other than making the cylinder longer at the bottom. That way, you could "Apply" the Array Modifier, and then cut through all the cylinders in one straight line with the Knife Tool (K).