Creating a set from picked points using pointOn and findAt

I accidentally posted this over at SwYmers' Hall, and was told I'd have better luck here.

 

Does anyone know how to create sets via scripting using picked faces?

I've tried several options, but haven't gotten anything to work yet.  I see that the findAt function requires a tuple so I've tried various ways to form a tuple to since my script allows for an unknown number of faces to be selected.  I'd hope there is a simple command to do this regardless of the number of faces, but I cannot find it.

Here i one of the attempts that I've tried.  The first if statement works since it is only creating one face in the set, the else statement does not work as intended.

Example of the faces sent to the script:   setITsurf = (f[373], f[380])

f = p.faces  

surfaces_cnt = len(setITsurf)   

if surfaces_cnt == 0:       

     fsequence = setITsurf[0].pointOn       

     sel_face = f.findAt(fsequence)       

     p.Set(faces=sel_face, name='OTx')   

else:         

     fsequence = []       

     for incr in range(0, surfaces_cnt):       

          fsequence += setITsurf[incr].pointOn       

     fsequence = tuple(fsequence)       

     sel_face = f.findAt(fsequence)       

     p.Set(faces=sel_face, name='OTx')

 

 

Most of the other attempts I've tried produce a TypeError with the findAt function.  [TypeError: arg1; too many arguments; expected 1, got 2]  This is when setting fsequence to a tuple such as (((-13.580049, -16.018185, 18.616666),), ((-7.36733, -20.486708, 18.616666),))

 

Thanks