diff --git a/files.html b/files.html index dc07bc046cb9d27a25cfd017cea27ed5d71547df..10778e2b9c492058df1b8c255e38029ae33074a7 100644 --- a/files.html +++ b/files.html @@ -203,6 +203,9 @@ <a href='./modules/ui/slider'>slider</a><br> <a href='./modules/ui/text%20window'>text window</a><br> <i> programs</i><br> +<i> formats</i><br> +<i> gerber</i><br> + <a href='./programs/formats/gerber/plot%20png'>plot png</a><br> <i> frep</i><br> <a href='./programs/frep/gears'>gears</a><br> <a href='./programs/frep/lattice%20torus'>lattice torus</a><br> @@ -228,8 +231,6 @@ <a href='./programs/machines/G-code/mill%202D%20PCB%20svg'>mill 2D PCB svg</a><br> <a href='./programs/machines/G-code/mill%202D%20png'>mill 2D png</a><br> <a href='./programs/machines/G-code/mill%202D%20svg'>mill 2D svg</a><br> -<i> Gerber</i><br> - <a href='./programs/machines/Gerber/plot%20png'>plot png</a><br> <i> RNDMC</i><br> <a href='./programs/machines/RNDMC/honeycomb%20connect'>honeycomb connect</a><br> <i> Roland</i><br> diff --git a/modules/path/formats/gerber b/modules/path/formats/gerber index 72d73f7ed591b8869cc26798eed17bc4f3799b18..c6a0dc8ffb8c23a338808105599d4621df4efb2e 100644 --- a/modules/path/formats/gerber +++ b/modules/path/formats/gerber @@ -95,40 +95,40 @@ var interface = function(div){ // // local functions // -// plot +function format(x) { + var s = x.toFixed(6) + s = s.substr(0,s.length-7)+s.substr(-6,6) + return s + } // function plot() { var imgwidth = mod.imageInfo.width/parseFloat(mod.imageInfo.dpi) var imgheight = mod.imageInfo.height/parseFloat(mod.imageInfo.dpi) str = '' str += "%MOIN*%\n" // inch units - str += "%ASAXBY*%\n" // axes - str += "%IPPOS*%\n" // positive image - str += "%LPD*%\n" // dark layer - str += "%FSLAX33Y33*%\n" // format absolute 3.3 + str += "%LPD*%\n" // layer dark + str += "%FSLAX66Y66*%\n" // format absolute 6.6 + var x,y for (var seg = 0; seg < mod.path.length; ++seg) { - for (var pt = 0; pt < mod.path[seg].length; ++pt) { + str += "G36*\n" + x = imgwidth*mod.path[seg][0][0]/(mod.imageInfo.width-1) + y = imgheight*mod.path[seg][0][1]/(mod.imageInfo.height-1) + str += 'X'+format(x)+'Y'+format(y)+'D02*\n' + for (var pt = 1; pt < mod.path[seg].length; ++pt) { var x = imgwidth*mod.path[seg][pt][0]/(mod.imageInfo.width-1) - var y = imgheight*(1-mod.path[seg][pt][1]/(mod.imageInfo.height-1)) + var y = imgheight*mod.path[seg][pt][1]/(mod.imageInfo.height-1) + str += 'X'+format(x)+'Y'+format(y)+'D01*\n' } - var x = imgwidth*mod.path[seg][0][0]/(mod.imageInfo.width-1) - var y = imgheight*(1-mod.path[seg][0][1]/(mod.imageInfo.height-1)) - console.log(parseFloat(x.toFixed(3))) + x = imgwidth*mod.path[seg][0][0]/(mod.imageInfo.width-1) + y = imgheight*mod.path[seg][0][1]/(mod.imageInfo.height-1) + str += 'X'+format(x)+'Y'+format(y)+'D01*\n' + str += "G37*\n" } + str += "M02*\n" + console.log(str) } /* -%MOIN*% -%ASAXBY*% -%IPPOS*% -%FSLAX33Y33*% %ADD11C,0.1*% -%LPD*% -G36* -X1000Y1000D02* -X2000Y2000D01* -X2000Y1000D01* -X1000Y1000D01* -G37* %LPC*% G01* D11* diff --git a/programs/machines/Gerber/plot png b/programs/formats/gerber/plot png similarity index 100% rename from programs/machines/Gerber/plot png rename to programs/formats/gerber/plot png diff --git a/programs/index.js b/programs/index.js index b4c29e52ad24e08e2da42a93d58f3e51da5e305b..9d47750cbb30e952508ff635f6b70eeb970aa403 100644 --- a/programs/index.js +++ b/programs/index.js @@ -1,3 +1,6 @@ +program_label('formats') +program_label(' gerber') +program_menu(' plot png','programs/formats/gerber/plot%20png') program_label('frep') program_menu(' gears','programs/frep/gears') program_menu(' lattice torus','programs/frep/lattice%20torus') @@ -22,8 +25,6 @@ program_menu(' mill 2D PCB png','programs/machines/G-code/mill%202D%2 program_menu(' mill 2D PCB svg','programs/machines/G-code/mill%202D%20PCB%20svg') program_menu(' mill 2D png','programs/machines/G-code/mill%202D%20png') program_menu(' mill 2D svg','programs/machines/G-code/mill%202D%20svg') -program_label(' Gerber') -program_menu(' plot png','programs/machines/Gerber/plot%20png') program_label(' RNDMC') program_menu(' honeycomb connect','programs/machines/RNDMC/honeycomb%20connect') program_label(' Roland')