Very simple ?!

My problem seems to be very simple, but the simple things sometimes are the most difficult ones :wink:

I hope anybody can help me solving the following problem:

I want to model sails, both for boats and for shading purposes. They should have the forms of triangle, square, pentagon and hexagon and can be flat (like a plane). Each edge tends to move to the direction of the center when it is under suspension. If the edge-length is 10 meters for example, the middle of the edge goes approximatly 30 cm to the center. Look here:
Until here it is quite easy. I’ve done it using PET.

But I want to resize the sails in a fast and intuitive way, and the relations between edge-length and suspension distance should stay the same. For example: I would like (to show to customers) to put one corner of the triangle (square, …) to the corner of a house, but I don’t want to model the exact form every time newly.

Do I need a Python script to achieve a solution?

Thanks for everybody’s help!!


I’m guessing the progression of your edge-length / suspension distance is non linear, so you can’t scale it without messing the ratio ?

Perhaps you can find a way to use your triangle without the deformation due to suspension on its edges, and find a good setting with cloth simulation using goal and edge stiff to have the same result.

Model a base shape for each form (triangel, rectangle,…) and then try out Lattice objects:

PS: and don`t duplicate threads.

Actually I don’t really see the problem here, as long as you scale the whole thing, the ratio should stay the same? Maybe I’m just overlooking something here…(although I do agree, lattices provide a good way for deformations and scaling…)

PS: Hallo aus Wien! Soweit ich weiß, organisieren sie doch die Blenderkurse, nicht wahr? (ich war ja auch schon einmal dabei)

Lattices I already have tried, but it does not meet my expectations. If I scale a form the form and the relation between edge length and the distance in the middle (blue line) always changes and is actually not to control exactly.

I think the script will be the solution. If I get it right, you want to quickly adjust the corner position of the sail while maintaining the length-shift ratio. I don’t know about any modeling tool in blender, that will enable this.

The script might use as its input a mesh with possibly the outer edges selected, value of shift of middle vertex and maybe the curve that will define the bend. That would enable you to create also concave shaped sails, but I have no idea how to fill well the mesh in case you wanted it to have not planar. That’s my suggestion, because what you need is precision, right?

Hi Myke,

the problem is, that it should be possible to adjust the length of one side or just pull the triangle on one corner and pull it to a certain place. It must be done in front of customer’s eyes to show him how shadows will change (for example on a terrace). It sounds so easy, but I still could not find an apppropriate way to do this.

PS.: So hört man wieder voneinander. Freut mich, dass Du weiterhin blendermäßig so aktiv bist.

Yes, probably a script is the only way to get this job done! Actually the filling of the mesh should not be a problem, it can be done with Shift-F after creating the edge with the help of a script, because the mesh always stays planar. Even total precision is not very important. The ratio should stay more or less the same after scaling an edge or moving a corner, and the concave shape should remain too.
Anyone has an idea about the mathematical formula or even has a piece of Python code solving the problem?
may help, you could also try using soft selection to imitate tension.

this is a lot of awfull stuff! But it is still not what I am looking for. The hangcurve script found here, goes into the right direction:
It connects two object with a hanging curve. If the script could just connect two vertices with an edge in a concave shape it would be great. This would allow me to set 3, 4, 5 or more vertices with the same z-height in the viewport and then let the script make concave curves between them and at last fill it with shift-f.
Of course the possibility of doing this interactively would be even better.

Maybe this short video describes better, what I am looking for :wink: