Intersections between circles

Hello all,
Please, I’m trying to write a script that checks for the intersection between inclined circles on Rhino and calculates the length. I tried using curvecurveintersection, but it’s always returning no intersection, wvwn when the circles are intersected.

NB: my circles are guid objects I inserted in a box, then saved the GUIDs in a list, so I want to use the list to find intersection between the circles

Can you post some code with a sample file that’s not working?

Blockquote

> def LengthOfIntersection(circle_list):
>     length = 0
>     print circle_list
>     for i in range(len(circle_list)):
>         curveA = circle_list[i]
>         for j in range(len(circle_list)-1):
>             if j != i:
>                 intersection = rs.CurveCurveIntersection(curveA,circle_list[j])
>                 #print intersection
>                 if intersection != None:
>                     
>                     length += math.sqrt((intersection[1][1][0]-intersection[0][1][0])**2 + (intersection[1][1][1]-intersection[0][1][1])**2)

The circle_list is a list of GUIDs

I have now converted the circles into surfaces for the intersections to be detected. But I am getting a weird error

def LengthOfIntersection(surface_list):
    length = 0
    for i in range(len(surface_list)):
        curveA = surface_list[i]
        for j in range(len(surface_list)):
            if j != i:
                intersection = rs.CurveCurveIntersection(curveA,surface_list[j])
                #print intersection
                if intersection != None:
                length += math.sqrt((intersection[1][1][0]-intersection[0][1][0])**2 + (intersection[1][1][1]-intersection[0][1][1])**2)
        else: continue       
print length    

Message: unable to convert ef49509a-0bb4-46d9-b03d-e966960c84e2 into Curve geometry

Traceback:
line 1447, in CurveCurveIntersection, “C:\Users\falol\AppData\Roaming\McNeel\Rhinoceros\6.0\Plug-ins\IronPython (814d908a-e25c-493d-97e9-ee3861957f49)\settings\lib\rhinoscript\curve.py”
line 1002, in coercecurve, “C:\Users\falol\AppData\Roaming\McNeel\Rhinoceros\6.0\Plug-ins\IronPython (814d908a-e25c-493d-97e9-ee3861957f49)\settings\lib\rhinoscript\utility.py”
line 171, in LengthOfIntersection, "C:\Users\falol\AppData\Roaming\McNeel\Rhinoceros\6.0\scripts\sec.

This is the function generating and converting the circles to surfaces.

def AddCircle(n,radius,boxlength):
    """
    A function to add a fixed number of circles in a cube
    """
    #initialize a list to store circle GUIDs
    circle_list = []
    surface_list = []
    #a loop to insert the fixed number of circles
    for i in range(n):
    #create a center point for the circle
        x = random.uniform(0+radius,boxlength-radius)
        y = random.uniform(0+radius,boxlength-radius)
        z = random.uniform(0+radius,boxlength-radius)
        #store the random origin
        origin = [x,y,z]
        #convert the origin to a plane
        plane = InclinePlane(origin)
        #insert the circle in the cube
        my_circle = rs.AddCircle(plane,radius)
        #append the circle GUID to the list
        circle_list.append(my_circle)
        surf = rs.AddPlanarSrf(my_circle)
        surface_list.append(surf[0])
    print surface_list
    return surface_list