Unable to join planar curves


I’m sure there is a very simple solution to this,
but i have tried for hours to no avail.

I intersected my imported STP nurb surface file with a plane (brep | plane),
and got a list of 5 different planar curves which, for the life of me,
i cannot join.

I need them to join because i eventually require a consecutive list co-ordinates around the entire surface intersection of the part.

Please help


That’s the second time I’ve read that here in the past three hours! It’s only “simple” if you can do it.

@JungleFrank It is difficult to diagnose a problem just by looking at a picture. Can you post a .3dm file with the cuves which are causing problems?

Sorry Joseph, you’re right.
And apologies to you and david for not providing enough information.

I didn’t attach any files because the part is proprietary at the moment.

I have attached my GH attempts on this problem.
If this is not enough for you to help me, then i will have to make a plan to send you the files.

In the bottom section, i tried to isolate each of the 5 curves and join them end to end in sequence.

Really appreciate you trying to help me out :slight_smile:

Seems like your STP geometry is open. That polysurface is not closed.
On rhino, select it and use the “Show edges” command and select the “naked edges” option.
Is it closed?

Hi Joseph,

I’m not sure why you have linked me to this post? Have I not provided enough information?



Thanks Riccardo, but I had already used rhino’s join command to join all the surfaces.
The confirmation msg was “18 surfaces or polysurfaces joined into one closed polysurface.”
I also used the brep join component but it didn’t make a difference.

I know this

is actually a problem…
but without analyzing the data directly is difficult to tell.

If you want, you can send me via private message the geometry.
(nobody is truly interested of a random geometry in the web… i’m more interested on the problem here)

Or, at least, attach here the curves resulting of the Brep-Plane intersection.
Just the section curve… that should not be a problem.

Thanks Riccardo, here are the 5 baked planar curves resulting from the Brep-Plane intersection.

5 Planar curves.3dm (38.5 KB)

Your curves don’t touch each-other! if you zoom in enough you’ll see it directly on screen.
Almost certainly because the original solid geometry has gaps, maybe it was made with low accuracy or the exportation to rhino lost some details.

On rhino, if you use the command “Join” and select the curves 1 by 1, rhino will trigger a message and ask if you want to join even with large gap. (If you select all them at once it will just silently fail).

I’ve made a simple c# join curve with custom tolerance:

private void RunScript(List<Curve> C, double t, ref object A)
    A = Rhino.Geometry.Curve.JoinCurves(C, t);

2020-03-06 18_11_03-Grasshopper - join curves tolerance
join curves tolerance.gh (15.7 KB)

Edit: i guess, if you explode your “closed” solid and then launch “Rebuild edges” command, you won’t be able to join it back again in a closed polysurface.

1 Like

Riccardo you star, thank you.
You were perfectly right.
I checked the end and start points of those planar curves, and about 4 decimals down, they were microscopically different.
Seems like it happens when importing my igs files into rhino. The surfaces of solids don’t all meet up edge to edge.
So I tried another format, and rhino read it as a fully closed solid, and all my planar curves were closed.
And your definition worked too!
thank you thank you