From 4b7810263284a4dd0c1975735b837f7640443f3d Mon Sep 17 00:00:00 2001 From: Lex Neva Date: Wed, 27 Sep 2017 00:59:32 +0100 Subject: bugfix and useful warning --- embroider.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'embroider.py') 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) -- cgit v1.2.3