From b7c3b5a7875f0fc95cd5c8e0851d1edb998ada0d Mon Sep 17 00:00:00 2001
From: Thomas Oster <thomas.oster@rwth-aachen.de>
Date: Wed, 31 Oct 2012 18:19:05 +0100
Subject: [PATCH] EpilogDriver Fix: Wrong resolutions for EpilogZing. Also
 split a job if the parts have different resolutions

---
 src/com/t_oster/liblasercut/drivers/EpilogCutter.java | 7 +++++--
 src/com/t_oster/liblasercut/drivers/EpilogZing.java   | 2 +-
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/com/t_oster/liblasercut/drivers/EpilogCutter.java b/src/com/t_oster/liblasercut/drivers/EpilogCutter.java
index 6d8fb8b..a5cff64 100644
--- a/src/com/t_oster/liblasercut/drivers/EpilogCutter.java
+++ b/src/com/t_oster/liblasercut/drivers/EpilogCutter.java
@@ -339,13 +339,16 @@ abstract class EpilogCutter extends LaserCutter
         toDo.remove(0);
       }
       else
-      {//vector parts can be prepended by one raster part
+      {//vector parts can be prepended by one raster part, but one job has
+       //to have the same resolution everywhere (??? if you have time, feel
+       //free to experiment)
+        double currentDpi = toDo.get(0).getDPI();
         if (toDo.get(0) instanceof RasterPart)
         {
           currentSplit.add(toDo.get(0));
           toDo.remove(0);
         }
-        while (!toDo.isEmpty() && toDo.get(0) instanceof VectorPart)
+        while (!toDo.isEmpty() && toDo.get(0) instanceof VectorPart && toDo.get(0).getDPI() == currentDpi)
         {
           currentSplit.add(toDo.get(0));
           toDo.remove(0);
diff --git a/src/com/t_oster/liblasercut/drivers/EpilogZing.java b/src/com/t_oster/liblasercut/drivers/EpilogZing.java
index b1d6c03..12e17a6 100644
--- a/src/com/t_oster/liblasercut/drivers/EpilogZing.java
+++ b/src/com/t_oster/liblasercut/drivers/EpilogZing.java
@@ -52,7 +52,7 @@ public class EpilogZing extends EpilogCutter
   
   private static final double[] RESOLUTIONS = new double[]
   {
-    300, 500, 600, 1000
+    100, 200, 250, 400, 500, 1000
   };
   
   @Override
-- 
GitLab