From 9df3a6924299dae4518b5adec96b81ceda734280 Mon Sep 17 00:00:00 2001
From: Neil Gershenfeld <gersh@cba.mit.edu>
Date: Sun, 10 Sep 2017 17:55:00 -0400
Subject: [PATCH] working on Epilog

---
 modules/toolpath/machines/laser cutter/Epilog | 134 +++++-------------
 1 file changed, 39 insertions(+), 95 deletions(-)

diff --git a/modules/toolpath/machines/laser cutter/Epilog b/modules/toolpath/machines/laser cutter/Epilog
index f1e42f9..eaa4ef2 100644
--- a/modules/toolpath/machines/laser cutter/Epilog	
+++ b/modules/toolpath/machines/laser cutter/Epilog	
@@ -25,7 +25,11 @@ var name = 'Epilog laser cutter'
 // initialization
 //
 var init = function() {
-   mod.speed.value = 2
+   mod.power.value = 25
+   mod.speed.value = 75
+   mod.rate.value = 100
+   mod.x = 0
+   mod.y = 0
    }
 //
 // inputs
@@ -75,7 +79,7 @@ var interface = function(div){
       div.appendChild(input)
       mod.power = input
    div.appendChild(document.createElement('br'))
-   div.appendChild(document.createTextNode('speed (cm/s): '))
+   div.appendChild(document.createTextNode('speed (%): '))
    var input = document.createElement('input')
       input.type = 'text'
       input.size = 6
@@ -141,114 +145,61 @@ var interface = function(div){
 //
 
 function make_path() {
-
-var dx = 25.4*mod.width/mod.dpi
-var dy = 25.4*mod.height/mod.dpi
-var nx = mod.width
-var ny = mod.height
-var force = parseFloat(mod.force.value)
-var speed = parseFloat(mod.speed.value)
-var str = "PA;PA;!ST1;!FS"+force+";VS"+speed+";\n"
-var scale = 40.0*dx/(nx-1.0) // 40/mm
-var ox = 0
-var oy = 0
-if (mod.botleft.checked) {
-   var xoffset = 40.0*ox
-   var yoffset = 40.0*oy
-   }
-else if (mod.botright.checked) {
-   var xoffset = 40.0*(ox-dx)
-   var yoffset = 40.0*oy
-   }
-else if (mod.topleft.checked) {
-   var xoffset = 40.0*ox
-   var yoffset = 40.0*(oy-dy)
-   }
-else if (mod.topright.checked) {
-   var xoffset = 40.0*(ox-dx)
-   var yoffset = 40.0*(oy-dy)
-   }
-
-   var dx = globals.width/globals.dpi
-   var dy = globals.height/globals.dpi
-   var nx = globals.width
-   var ny = globals.height
-   var power = parseFloat(findEl("mod_power").value)
-   var speed = parseFloat(findEl("mod_speed").value)
-   var rate = parseFloat(findEl("mod_rate").value)
-   var ox = parseFloat(findEl("mod_x_origin").value)/25.4
-   var oy = parseFloat(findEl("mod_y_origin").value)/25.4
+   var dx = mod.width/globals.dpi
+   var dy = mod.height/globals.dpi
+   var nx = mod.width
+   var ny = mod.height
    var scale = 600.0*dx/(nx-1) // 600 DPI
-   if (findEl("mod_bottom_left").checked) {
+   var power = parseFloat(mod.power.value)
+   var speed = parseFloat(mod.speed.value)
+   var rate = parseFloat(mod.rate.value)
+   var ox = parseFloat(mod.x.value)/25.4
+   var oy = parseFloat(mod.y.value)/25.4
+   if (mod.botleft.checked) {
       var xoffset = 600.0*ox
       var yoffset = 600.0*(oy-dy)
-   } else if (findEl("mod_bottom_right").checked) {
+      }
+   else if (mod.botright.checked) {
       var xoffset = 600.0*(ox-dx)
       var yoffset = 600.0*(oy-dy)
-   } else if (findEl("mod_top_left").checked) {
+      }
+   else if (mod.topleft.checked) {
       var xoffset = 600.0*ox
       var yoffset = 600.0*oy
-   } else if (findEl("mod_top_right").checked) {
+      }
+   else if (mod.topright.checked) {
       var xoffset = 600.0*(ox-dx)
       var yoffset = 600.0*oy
-   }
-
-   var str = "%-12345X@PJL JOB NAME=" + globals.input_basename + "\r\n"
+      }
+   var str = "%-12345X@PJL JOB NAME=" + mod.name + "\r\n"
    str += "E@PJL ENTER LANGUAGE=PCL\r\n"
-   if (findEl("mod_autofocus").checked)
-   //
-   // init with autofocus on
-   //
+   if (mod.focus.checked)
+      //
+      // init with autofocus on
+      //
       str += "&y1A"
    else
-   // 
-   // init with autofocus off
-   //
+      // 
+      // init with autofocus off
+      //
       str += "&y0A"
    str += "&l0U&l0Z&u600D*p0X*p0Y*t600R*r0F&y50P&z50S*r6600T*r5100S*r1A*rC%1BIN;"
    str += "XR"+rate+";YP"+power+";ZS"+speed+";\n"
-
-//
-// loop over segments
-//
-
-for (var seg = 0; seg < mod.path.length; ++seg) {
-   x = xoffset+scale*mod.path[seg][0][0]
-   y = yoffset+scale*mod.path[seg][0][1]
-   str += "PU"+x.toFixed(0)+","+y.toFixed(0)+";\n" // move up to start point
-   //str += "PU"+x.toFixed(0)+","+y.toFixed(0)+";\n" // hack: repeat in case comm dropped
-   str += "PD"+x.toFixed(0)+","+y.toFixed(0)+";\n" // move down
-   //str += "PD"+x.toFixed(0)+","+y.toFixed(0)+";\n" // hack: repeat in case comm dropped
-   //
-   // loop over points
-   //
-   for (var pt = 1; pt < mod.path[seg].length; ++pt) {
-      x = xoffset+scale*mod.path[seg][pt][0]
-      y = yoffset+scale*mod.path[seg][pt][1]
-      str += "PD"+x.toFixed(0)+","+y.toFixed(0)+";\n" // move down
-      //str += "PD"+x.toFixed(0)+","+y.toFixed(0)+";\n" // hack: repeat in case comm dropped
-      }
-   str += "PU"+x.toFixed(0)+","+y.toFixed(0)+";\n" // move up at last point
-   //str += "PU"+x.toFixed(0)+","+y.toFixed(0)+";\n" // hack: repeat in case comm dropped
-   }
-
-
    //
    // loop over segments
    //
-
-   for (var seg = 0; seg < path.length; ++seg) {
+   for (var seg = 0; seg < mod.path.length; ++seg) {
       //
       // loop over points
       //
-      x = xoffset+scale*path[seg][0][0]
-      y = yoffset+scale*(ny-path[seg][0][1])
+      x = xoffset+scale*mod.path[seg][0][0]
+      y = yoffset+scale*(ny-mod.path[seg][0][1])
       if (x < 0) x = 0
       if (y < 0) y = 0
       str += "PU"+x.toFixed(0)+","+y.toFixed(0)+";" // move up to start point
-      for (var pt = 1; pt < path[seg].length; ++pt) {
-         x = xoffset+scale*path[seg][pt][0]
-         y = yoffset+scale*(ny-path[seg][pt][1])
+      for (var pt = 1; pt < mod.path[seg].length; ++pt) {
+         x = xoffset+scale*mod.path[seg][pt][0]
+         y = yoffset+scale*(ny-mod.path[seg][pt][1])
          if (x < 0) x = 0
          if (y < 0) y = 0
          str += "PD"+x.toFixed(0)+","+y.toFixed(0)+";" // move down
@@ -256,20 +207,13 @@ for (var seg = 0; seg < mod.path.length; ++seg) {
       str += "\n"
    }
    str += "%0B%1BPUE%-12345X@PJL EOJ \r\n"
-
-str += "PU0,0;\n" // pen up to origin
-outputs.file.event(str)
-
-
    //
    // end-of-file padding hack from Epilog print driver
    //
    for (var i = 0; i < 10000; ++i)
       str += " "
-
-   return str
-}
-
+   outputs.file.event(str)
+   }
 //
 // return values
 //
-- 
GitLab