Points for curve

Hi there,
i’m trying to create a spline tangent to the hull and struggle to collect the points free in space.
Instead two curves are created by the one Interpolate modilue.
I have marked the points to collect for the curve in red circles below.


Hi Bauer,

Having a look of the file with the points and the surface internalized would be a great start!
I cannot seem to understand what is happening in the rhino viewport (which points are to be used and which lines are the ones generated by the interpolate component) but you could start by using a merge component and flattening it so you can control the input order of those vertices.

I have internalised the data and uploaded the definition.
Just tried to use a “merge” for data streams. The component works, but the 2 defined points are still not part of the curve. Instead still a second line is drawn, what I do not want…

Yacht.gh (46.0 KB)

Her’s the definition with the merge component.
After the upload I have flattended the result in the merge comp and I tried also flattening the input in the curve comp.
And I tried both at the same time.
I don’t understand why the points which I put in the right order into the merge component do not appear in the same order on the curve
Obviously I’m quite new to grashopper, though I have tried a few projects I still don’t understand the data mangement.

yacht merge component.gh (34.8 KB)


Your code is too complex for me to sort through this morning but I did find the brep of the hull (34K units from the origin?). Without referring to your code, can you describe in simple terms what you are trying to accomplish with this hull?

1 Like

I have isolated the components, internalised the data and wrote a description in a panel.
Could you have a look again?
merge component.gh (31.1 KB)

Yeah, I was just looking at your yacht merge component.gh file and can see the problem, without yet fully grasping the intent… The problem is that Merge can mix up the sequence of inputs (points in this case) due to data trees. You can replace it with Entwine and flatten the output:

Yacht_2022Oct26a.gh (31.2 KB)

For the benefit of others, here is the description you wrote:

Flatten integrates the 2 points far above the hull (those created with coordinates by sliders) but the curve should start at the hull and end at the other tangent while the 2 free points shall control the curvature
So I failed to put the points in the right order.
Sorting them by X Value would be an option?

1 Like

I have baked the points and drawn the curve in red in rhino.
The curve is not faired yet of course, but the order of points is correct.
The points should be sorted by X-Value so the most aft point goes in first and so on.

Sorry, wrong jpeg…

I already fixed the problem above.

Just saw it. And rebuild it on my own to understand what you did.
Great, thanks!!

You might want to consider a Nurbs curve for this instead of Interpolate.

Here’s another idea. Place the curve points on a surface extended up from the top edge of the hull:

Yacht_2022Oct26b.gh (37.8 KB)

1 Like

Yacht_2022Oct26c.gh (42.0 KB)

P.S. Adjustments to the two highest points so the nurbs curve, which tends to be more fair, matches the interpolated curve more closely.

Yacht_2022Oct26d.gh (42.2 KB)

I love boats! :sunglasses:

It might work better to project these points to the centerline XZ plane, make the curve there, then project the curve back to the ruled reference surface.

1 Like

This might be IMPORTANT?

Even better would be to project the angled plane intersection curves to the centerline XZ plane and work from there. As I did that, I realized we have been violating tangency with the intersection curves!

So I modified things to make sure that a nurbs curve using these points never strays from tangent. All the points are now inline with one or the other intersection curves. I modified the point positions and slightly changed the angle of the forward intersection plane to match the original interpolated curve. This looks better to me, what do you think?

Yacht_2022Oct26e.gh (45.4 KB)

Boats need to be fair!

1 Like

Hi Joseph,
thank you very much for your deep thoughts into this.
I want the curve to point inboards above the tangent section curves, that’s why projecting the curve anywhere won’t work. It’s got to be threedimensional from the start.
But I will reuse that curve for the other curves on CL.
Nevertheless I will look into your file and see if I can learn new things from there.

Thanks again.

It may not work for you to project the curve onto the white surface, I get that. However, where this curve is located in top view is a separate issue from how it is shaped in front view. Working on the CL as I did in version Oct26e.gh is the best way to guarantee that the curve is fair in front view.

For example, the white surface (below) is not vertical. It is constructed from rotated vertical lines.

Yacht_2022Oct27a.gh (45.0 KB)

1 Like

This Sweep1 projection surface is angled at 15 degrees (exaggerated?), but completely independent from the fair nurbs curve on the centerline:

Yacht_2022Oct27b.gh (40.0 KB)

1 Like

Thanks Joseph,
the Curve shall be tangent to the hull in both directions and then above have an curvature inboards. Fore and aft different of course, therefore the tangents fore and aft had to be seperately adjustable Which they are.
So I will keep the curve as I thought initially.

The curve I saw from that approach was wiggly, not fair, which is why I made my suggestions.

This is the end (‘Right’) view from version Yacht_2022Oct26a.gh yesterday:

The ‘Front’ view shows a dip in the forward part of the curve: