A function is defined to get a tuple. 

def searchObjectByRange(partObject, objectType, xRange, yRange, zRange): 
    """In the partObject, search objects (edge, face, etc.) within the 
    given region""" 
    TOLERANCE_GLOBAL = 1.0E-6 
    INFINITE_RANGE = (-1.0E309, 1.0E309) 
    tolerance = TOLERANCE_GLOBAL 
     
    #Convert into list type 
    xyzRange = [xRange, yRange, zRange] 
    for i in range(len(xyzRange)): 
        xyzRange[i] = list(xyzRange[i]) 
        if len(xyzRange[i]) == 0: 
            xyzRange[i] = INFINITE_RANGE 
        else: 
            if xyzRange[i][0] == None: 
                xyzRange[i][0] = INFINITE_RANGE[0] 
            if xyzRange[i][1] == None: 
                xyzRange[i][1] = INFINITE_RANGE[1] 
            if xyzRange[i][0] == xyzRange[i][1]: 
                xyzRange[i][0] = xyzRange[i][0] - tolerance 
                xyzRange[i][1] = xyzRange[i][1] + tolerance 
     
    myObjects = [] 
     
    #Find out the edges within the given region 
    if objectType == 'EDGE': 
        for edge in partObject.edges: 
            ptsList = [] 
            flag = 1 
            ptsList.append(edge.pointOn[0]) 
            #Get the vertices on the edge 
            for index in edge.getVertices(): 
                ptsList.append(partObject.vertices[index].pointOn[0]) 
            for ptCoords in ptsList: 
                if (ptCoords[0] < xyzRange[0][0] or ptCoords[0] > 
xyzRange[0][1]): 
                    flag = 0 
                    break 
                if (ptCoords[1] < xyzRange[1][0] or ptCoords[1] > 
xyzRange[1][1]): 
                    flag = 0 
                    break 
                if (ptCoords[2] < xyzRange[2][0] or ptCoords[2] > 
xyzRange[2][1]): 
                    flag = 0 
                    break 
            if flag == 1: 
                myObjects.append(edge)  
    myObjects= tuple(myObjects)  
    return myObjects

sub_1=searchObjectByRange(myModel.parts['Part-1'], 'EDGE', (), (), (0, 0))  
#Getting EDGES has the same z-coordinate, and I 166 edges are obtained.
myModel.parts['Part-1'].Set(edges=sub_1,name='sub_set') #I wish to get the set 
'sub_set', but doen't work.


  The error shows "TypeError: edges; too many arguments; expected 0, got 166". 


Is there somebody can help me with that? Thanks.


Baisong
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to