I’m trying to solve what would seem like a straightforward problem but can’t seem to get it to work. I’m trying to find duplicates between 2 lists of curves. The first list is made of subdivided smaller lines while the second list is made of joined polylines. I need to identify curves that aren’t duplicates and add them to a separate list. I think the logic is pretty straight forward:
For every curve in list A, get end points, find closest point in list B, if distances>0, add them to another list
#ID PROJECTED CURVES #FOR EVERY CURVE IN A, GET END POINTS, FIND CRVCLOSEST POINT IN B, IF T0 + T1 = 0, CULL def IDprojectedCurves(curves1, curves2): a =  b =  totalDist = 0 #START VALUE OF TOTAL DIST maxDist = 0 #START VALUE OF MAX DIST for x in curves1: #ADD CURVES1 TO LIST A a.append(x) for y in curves2: #ITERATE LIST OF LISTS [FLATTEN INTO 1 LIST] for j in y: b.append(j) for crvA in a: #FOR EACH CURVE IN A crv = rs.coercecurve(crvA) t00 = rs.CurveStartPoint(crv) #START POINT t05 = rs.CurveMidPoint(crv) #MID POINT t10 = rs.CurveEndPoint(crv) #END POINT rs.AddPoint(t00) rs.AddPoint(t05) rs.AddPoint(t10) for crvB in b: #FOR EACH CURVE IN B dist0 = rs.CurveClosestPoint(crvB,t00) #FIND CLOSEST POINT IN CURVE B dist1 = rs.CurveClosestPoint(crvB,t10) #FIND CLOSEST POINT IN CURVE B dist2 = rs.CurveClosestPoint(crvB,t05) #FIND CLOSEST POINT IN CURVE B totalDist = dist0+dist1+dist2 #ADD DISTANCES AND SAVE TO TOTAL DIST if totalDist > maxDist: #IF TOTAL DIST > MAX DIST totalDist = maxDist # TOTAL DIST = MAX DIST else: maxDist = maxDist #ELSE MAX DIST = MAX DIST if maxDist>0: #IF MAX DIST>0 projected = crv projectedCurves.append(projected) #ADD TO PROJECTED CURVES LIST
For some reason, the values of totalDist & MaxDist never change from 0 so the condition is never met. Im not sure where I’m going wrong. If anyone has any ideas or suggestions on what I’m doing wrong, I would be very grateful.