Here is another script that finds self intersections:
from GlyphsApp import GSPathFinder
master = Font.masters[Font.masterIndex]
def findOverlaps(layer):
segments = []
#for component in layer.components:
# AllPaths.append(component.bezierPath)
for path in layer.paths:
segments.extend(path.pathSegments())
if len(segments) == 0:
return
operator = GSPathFinder.new()
origCount = len(segments)
operator.addIntersections_(segments)
resultCount = len(segments)
if origCount != resultCount:
print "Intersection", layer.parent.name
layer.color = 2
return
for glyph in Font.glyphs:
layer = glyph.layers[master.id]
findOverlaps(layer)