Matching data structure of points to nearest line

Hi all,

I have a definition that “snaps” each in a cloud of points to the line nearest that point. I’m trying to cut each of these lines with a shape based on that point, but because my point data structure doesn’t match the data structure of the lines they intersect, the shapes (circles) are cutting adjacent lines as well.

I am aware this would be a much easier problem to solve if the points were being generated from the lines themselves, but that’s not a workable solution for this project.

I’ve figured out how to separate lines that don’t have points from those that do, but matching the points themselves to a line has so far eluded me. File and picture attached–any insight available?

attempted_curve_chop.gh (20.3 KB)

Thanks!

i tried to understand you but i can’t
where is the problem ? which lines you want cut? and you already separate them

I only want the circles to cut their “own” lines. Of the lines shown in the attached picture here in green, I only want to remove the line at the CENTER of each circle.

The two cull components you highlighted do half the job, keeping lines without any points on them from being cut, but the circles are still cutting the lines to either side of them when those lines also have points. A real solution might not require those cull components, but I thought separating the lines without points may help when trying to somehow match points to their closest line.

i think you mean that ?

yes, exactly

maybe this help
attempted_curve_chop_2.gh (24.6 KB)

1 Like

you can also use simple method trim lines by vertical circles ( rotates them )
attempted_curve_chop_3.gh (23.4 KB)

Thank you very much! Exactly what I was looking for.

the second one is more simple

Both solutions above work, but leave a lot of extra/overlapping curves because they’re testing each curve against each circle and leaving the results from every subtraction. Since I’m manipulating the curves in another step after this, I don’t want those extras.

Is there a way to structure the point data so each curve is only interacting with the circles based on the points that intersect that curve? So each curve is its own branch, and each branch of the point data has the points on that curve.

I think I solved it…
attempted_curve_chop_4.gh (14.3 KB)

To avoid duplicates lines you need match data between curves, circles and points
and you can use pull point instead of curve closest point

attempted_curve_chop_5.gh (26.8 KB)