diff options
| -rw-r--r-- | embroider.py | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/embroider.py b/embroider.py index 5e0899b7..b6e0ab51 100644 --- a/embroider.py +++ b/embroider.py @@ -1245,11 +1245,15 @@ class SatinColumn(EmbroideryElement): result = [] for rail in rails: + if not rail.is_simple: + self.fatal("One or more rails crosses itself, and this is not allowed. Please split into multiple satin columns.") + # handle null intersections here? linestrings = shapely.ops.split(rail, rungs) - if len(linestrings.geoms) < len(rungs) + 1: - raise Exception("Expected %d linestrings, got %d" % (len(rungs) + 1, len(linestrings.geoms))) + if len(linestrings.geoms) < len(rungs.geoms) + 1: + print >> dbg, [str(rail) for rail in rails], [str(rung) for rung in rungs] + self.fatal("Expected %d linestrings, got %d" % (len(rungs.geoms) + 1, len(linestrings.geoms))) paths = [[PyEmb.Point(*coord) for coord in ls.coords] for ls in linestrings.geoms] result.append(paths) |
