Fix self intersecting curves

I don’t often run into this situation, but when I do it is a chore to fix.

Lets say I have a four separate lines drawn like a square. If I duplicate one of those lines and join the five lines, I will have a self intersecting curve. How do I fix this curve? Is there a way to highlight the intersecting segments so I can go in and delete them? My situations are not usually this simple- the shapes are more complex and I only find out that the lines are self intersecting when I see the pop-up window as I attempt to extrude the curve.

Hi Lawrence - if it is a case of duplicate segments, then Explode the curve, SelDup, Delete, and then Join it all back. More general self-intersections are harder, especially if they overlap and don’t just cross. CrvEnd and CrvStart may help - if these are not the same point on a curve that looks closed then… Also SelOpenCrv - if that gets curves that should be closed (overlapping at the ends) then at least you know what to look for.

-Pascal

5 Likes

It sounds like your curves are planar. CurveBoolean might help.

5 Likes

Thank, it’s good to know there are commands like crvstart and crvend. I guess those would help in situations where the overlapping curve is a partial segment of the square as opposed to a duplicate segment.

This worked great!! Thanks!

hi may you please help me with curves selected to extrude include self-intersecting curves

Hi - please post your 3dm file and a clear description of what you are trying to achieve.
Thanks!

Hi! Just chiming in to say that sometimes selecting the problematic curve and using Make2D works for me to solve this problem. I can’t really explain why, but I’m guessing maybe this happens when the curve has multiple points stacked on top of each other that are too close to see that they’re “off” (this is always on super complex curves that have been adjusted and combined a million times, so trying to go point by point to find the problem is too time consuming!). Anyway, hope this helps someone!

2 Likes

You’re a damn Saint! And a genious one, I may add. None of the other solutions worked for me, but yours did it.
Stay smart and cool, Lia Michelle Burton! :smiling_face_with_three_hearts:

1 Like

There’s a curve|self grasshopper component that makes it easy to FIND the places a curve self-intersects.

2 Likes

This is going to save so many hours of searching. A true gem. Thank you, @Mdmowry !

1 Like

I can’t believe I never thought about making a 2nd make2D of a cleaned up silhouette. This really made a difference.

Let’s hope one day we’ll have a make2d that really works 100%.

Hollly… that was the answer, don’t forget to tune down your tolerances if you get invalid Make2D, that’s often the problem.

1 Like

This here is the problem! I had my unit tolerances in the model space set to 1. Turned down to 0.5 and back to making surfaces from planar curves! Thanks, user1176!

Hi Salonee - please model with tolerances at most 0.01 units, and at the smallest, 0.000001 units.
https://wiki.mcneel.com/rhino/faqtolerances

-Pascal

1 Like

it worked after explode, then curveboolean, then rejoin.
thanks!