# How can I make a shape follow a profile without it following the profile normals?

I'm trying to make a column, just like this picture:

How can I make the red shape follow the yellow profile?

I try converting them to curves, and then assign the red curve as a bevel object for the yellow, but the resulting shape follows the yellow curve normals, like this:

My Blend file in case you need:

Edit: I've just trying to make these columns all this morning, and found out that this simple looking problem turns out to be very hard. Let me explain.

At first, I tried the manual method, which is to extrude and scale the red shape so that it has the profile that matches the yellow shape. However, scaling the red shape leads to uneven results, illustrated here:

This leads me to use the Offset addon here (https://blender-addons.org/offset-edges-addon/). But this method has another problem, which is:

You can see although it creates an edge that has even distance with the original edge, the circular feature becomes distorted.

So how can I make this column with perfect circles like in the first image? It looks simple, but the more I dive into, the more I find it hard.

• What do you mean when you say "make the red shape follow the yellow profile"? How is this different from following the yellow shape's normals, as in your last picture? – NeverConvex Dec 18 '19 at 5:57
• @NeverConvex: I'm trying to make a column. The red shape is how the column looks like from the above, and the yellow shape is its profile, looking from the front. – Đặng Hải Phụng Dec 18 '19 at 6:47
• blender.stackexchange.com/questions/70394/… – Duarte Farrajota Ramos Dec 18 '19 at 11:59

## 2 Answers

In this example I use two objects "Pillar" and "Bevel" ...

• select "Pillar" curve and search for Set Origin to Geometry
• search Convert to Curve (both objects should be a curve)
• Search Spline type > Bezier and set handle types (V) > Automatic
• under Properties Editor > Object Data > Bevel assign a curve "Bevel"
• with curve "Bevel" selected go to edit mode (TAB) and rotate vertices in X -90° (so curve goes in Y axis) and move all control points to bring bottom vertex to origin position

Note:

• always good to Apply Transformations (Ctrl+A) like Scale in here
• switch curves to 2D (Properties Editor > Curve Data)
• I had to scale up the Pillar shape (in edit mode) up to 3 to get result where Bevel curve doesn't generates weird in thinner curvature

Edit: just from what I see on your reference image, you should probably start with five circles object, because when you bevel on final floor shape you get wrong intersections of small circles with big one. Step by step is the same. Except for Bevel Curve move control points a bit far from origin. Here is the result.

• Hi vklidu, that's what I did with the second picture. The thing is, I want the red shape to follow the curve straight up, not along its normalls. – Đặng Hải Phụng Dec 18 '19 at 7:41
• How can you make it not follow normals like that? I can't replicate what you did there. As I said, I did what you did to achieve the result in the second image, but your result is what I'm looking for. Am I missing something? – Đặng Hải Phụng Dec 18 '19 at 8:34
• I managed to make it work, but the resulting shape is not like in the sample image. The circular shapes get heavily distorted in the column body. It now seems boolean is the only method. – Đặng Hải Phụng Dec 18 '19 at 8:50
• you should probably start from five circles (see edited answer) – vklidu Dec 19 '19 at 0:25
• @ĐặngHảiPhụng .. Not sure if it's the problem, but note that the sweep curves are 2D. – Robin Betts Dec 19 '19 at 7:33

Lets say I've got some starting object, like you do, which is basically flat:

First, I add an array modifier in the Z direction:

Then, I make a curve object for the shape to follow:

Now, I just add a curve modifier to the object, select the curve, and it will follow the shape:

You will notice that this is in no way perfect, and, depending on the shape, may require some cleanup, but I think that it is the best that blender can do.

Additional note: you can increase the resolution of the final curve by making the starting object thinner, and then increasing the array count accordingly.

• Your solution gives the same result as the second picture. – Đặng Hải Phụng Dec 18 '19 at 6:48
• can you show the modifier stack on your second picture? it looks like you might just need to increase the array count – person132 Dec 18 '19 at 7:12
• I don't use the array modifier for the second picture. Instead, I convert them into curves, and assign the red curve as the bevel object of the yellow curve. My problem is, the shape follows the curve normals, just like in your example. You can see it being rotated a bit, while I want it to go straight up. – Đặng Hải Phụng Dec 18 '19 at 7:25
• ok, i dont think i understand what you want. it is supposed to go straight up, but it is also supposed to follow the curve? – person132 Dec 18 '19 at 7:26
• If you have a picture of the result you are trying to emulate, that would be great – person132 Dec 18 '19 at 7:27