Hi Uwe, You need to set the edge Range in IntTools_EdgeFace. See below:
ef = IntTools_EdgeFace() ef.SetEdge(e.Edge()) ef.SetFace(f.Face()) ef.SetRange(0.0, 1.0) ef.Perform() cprts = ef.CommonParts() print 'Range', ef.Range().First(), ef.Range().Last() print 'e intersects f?:', 1 - cprts.IsEmpty() I couldn't find documentation to understand the arguments for the SetRange function well, but I think they're parametric parameters, in which case, the 0.0 to 1.0 arguments are probably correct. You can iterate over the common parts like this: for count in range(cprts.Length()): cprt = cprts(1 + count) if cprt.Type() == TopAbs_VERTEX: print 'intersected at a vertex' elif cprt.Type() == TopAbs_EDGE: print 'intersected at an edge' To actually find the point of intersection, you'll need to investigate yourself. cprt is not a TopoDS structure. To discover these answers, I grep'd the OCC source code for IntTools_EdgeFace. I found some examples in BOPTools_Paver, or something like that. Then, I ported it to pythonocc. It's messy, but that's the way I've been wading through OCC. Perhaps that methodology may help you. - Charles _______________________________________________ Pythonocc-users mailing list Pythonocc-users@gna.org https://mail.gna.org/listinfo/pythonocc-users