# How to generate a curve group along two rails with different starting and ending size?

Dear Grhprs,

As you see in the picture. I want to start my pattern at the bottom with a curved base which is the perimeter X, Y, and end up at the top with the same pattern with same Y’ and different X’(blue in the picture). XY does not have any reference with plane XY.
The curve pattern works algorithmically I tried to generate contours and from them generate my pattern inside the curves going to the top (red curve with arrow). The goal of the pattern is to generate a loft between them. So the curves should clean to loft.

I would really appreciate your opinions.
Thank you so much Grasshoppers.

pattern curve.gh (43.4 KB)

Hi there!

Not entirely sure if I’ve understood your problem all the way, but here’s a shot - is this what you’re looking for?

As a quick explanation - I’ve used your original planar curves to create surfaces, evaluated the pattern you’ve generated in terms of the surfaces (and the interior surface), and blended between them in the surface UV space. From this we get the curves we need to make a loft. From those curves we can also get all of the intermediary divisions one might want between the original two curves along the surface trajectory.

Let me know if this works, and if you have any questions. Happy to help!

pattern curve loft.gh (61.6 KB)

Hi Dan,

It works with this volume but when I want to change the parameters everything got crazy ;(

Hello Dan,

Basically, I would like to rebuild the brep’s shape with a new pattern (left side picture) from the bottom to the top as a loft. Next to that I have other breps that I will be working on.
I got many problems while trying to do it. I tried many solutions and I could not get the outcome expected. I am sure that the principle should not be complicated.
I create a contour from the brep and the tried to fit the pattern in the curves but on top is not matching.
I will really appreciate your advice or if you know literature or tutorials regarding this loft pattern matter please let me know.

Best regards,

Hi Carlos -

The method behind the solution relies on the UV-space of surfaces to provide the mapping of points for the loft. If you haven’t already, you’ll want to look into that and understand how that mapping works. (A search on youtube yields this video, which deals with the concept).

Essentially, we create a mapping of our pattern in UV-space, move our surfaces (which carry the desired mapping around with them) to all of the desired locations and orientations in our loft (in your example, top, middle, and bottom), and then get the XYZ-space points from them by evaluating the surfaces, now in different locations, at the same UV parameters as the original surface. This way we only need to create the pattern once, create a surface (which is easy, since you already have the outlines), and then perform the remapping.

I’ve included a definition that does exactly this (modifying the one I sent you earlier). Since I don’t have your file, it uses internalised geometry made in Rhino, but you should be able to see the concept in the inputs and replace them with your algorithmically-generated pattern curves as need be - it should be able to work with any pattern curve (I’ve included two examples) or surface collection, as long as they are ordered and oriented correctly. The essence of the problem lies in structuring the data correctly for the loft. See the file for details - feel free to let me know if you have more questions!

pattern curve loft.gh (57.7 KB)

Dear Dan,

Thank you for the reply. I followed your advice. I created a file and I am still doing something wrong. Would you like to have a look of that file? Thanks for the support

Kind regards,

pattern curve loft test.gh (69.2 KB)

Carlos -

Got it! Apparently EdgeSrf and Boundary Surface are not so consistent in the way they produce UVs, even when given curves with the same ordering… I took the approach for this to manually use Sweep2 to construct them manually instead. This seems to work for now. Also the partitioning needs a (+ 1) to account for the extra point created by Divide. This is a functioning version for your file, as far as I can tell.

pattern curve loft test 2.gh (80.7 KB)

Dan,
Good knowledge from you. I am testing the file with some breps the file works good. I am modifying some parameters to check different results. I will be working in a non regular surface today I’ll let know the result
For curiosity where did you learn grasspohher? I really want to master this matter. Super thank you for your advices