From adc095b853437ee2d4be7f9c93a003e172e88ee4 Mon Sep 17 00:00:00 2001 From: Stewart Allen Date: Mon, 4 Mar 2019 18:12:00 -0500 Subject: [PATCH] output outer poly first --- js/kiri-print.js | 23 ++++++++++++++++-- js/license.js | 2 +- web/kiri/filter/FDM/GridBot.One | 41 +++++++++++++++++++++++++++++++++ 3 files changed, 63 insertions(+), 3 deletions(-) create mode 100644 web/kiri/filter/FDM/GridBot.One diff --git a/js/kiri-print.js b/js/kiri-print.js index f238d6c6..48c0c708 100644 --- a/js/kiri-print.js +++ b/js/kiri-print.js @@ -541,7 +541,9 @@ var gs_kiri_print = exports; shorten: finishShell && !firstLayer ? nozzle * finishFactor : 0, extrude: shellMult, onfirst: function(firstPoint) { - if (startPoint.distTo2D(firstPoint) > retractDist) retract(); + if (startPoint.distTo2D(firstPoint) > retractDist) { + retract(); + } } }); } @@ -724,7 +726,24 @@ var gs_kiri_print = exports; } else { // top object var bounds = POLY.flatten(next.gatherOuter([])); - outputTraces([].appendAll(next.traces).appendAll(next.innerTraces() || []), bounds); + // outputTraces([].appendAll(next.traces).appendAll(next.innerTraces() || []), bounds); + + // outside in + (next.traces || []).sort(function(a,b) { + return a.perimeter() > b.perimeter() ? -1 : 1; + }).forEach(function(poly, index) { + outputTraces(poly, bounds); + }); + // outputTraces([].appendAll(next.traces) || []), bounds); // outer first + + // inside out + // (next.innerTraces() || []).sort(function(a,b) { + // return a.perimeter() > b.perimeter() ? 1 : -1; + // }).forEach(function(poly, index) { + // outputTraces(poly, bounds); + // }); + outputTraces([].appendAll(next.innerTraces() || []), bounds); // inner last + outputFills(next.fill_lines, bounds); outputSparse(next.fill_sparse, bounds); lastTop = next; diff --git a/js/license.js b/js/license.js index b1b21931..71686b85 100644 --- a/js/license.js +++ b/js/license.js @@ -1,7 +1,7 @@ var exports = { COPYRIGHT:"Copyright (C) 2014-2019 Stewart Allen - All Rights Reserved", LICENSE:"See the license.md file included with the source distribution", - VERSION:"1.2.8" + VERSION:"1.2.9" }; if (!module) var module = {}; module.exports = exports; diff --git a/web/kiri/filter/FDM/GridBot.One b/web/kiri/filter/FDM/GridBot.One new file mode 100644 index 00000000..e45e99d8 --- /dev/null +++ b/web/kiri/filter/FDM/GridBot.One @@ -0,0 +1,41 @@ +{ + "pre":[ + "M117 Heating ; announce heating", + "M107 ; turn off filament cooling fan", + "M104 S{temp} T0 ; set extruder temperature", + "M140 S{bed_temp} T0 ; set bed temperature", + "G90 ; set absolute positioning mode", + "M83 ; set relative positioning for extruder", + "G28 ; home axes", + "G1 F3000 ; set default move speed", + "G1 X-8 Y-17 Z0 ; move to XY heating point", + "M190 S{bed_temp} T0 ; wait for bed to reach target temp", + "M109 S{temp} T0 ; wait for extruder to reach target temp", + "M117 Purge ; announce purge", + "G92 E0 ; set extruder position to 0", + "G1 E50 F350 ; purge 50mm from extruder", + "G1 X0 Y0 Z0 F3000 ; move to origin / wipe", + "M117 Start Print ; announce start of print" + ], + "post":[ + "M117 Done ; announce done", + "M107 ; turn off filament cooling fan", + "M104 S0 T0 ; turn off extruder", + "M140 S0 T0 ; turn off bed", + "G91 ; relative movement", + "G1 Z10 F1200 ; drop bed 10mm", + "G90 ; absolute positioning", + "G28 X0 Y0 ; home XY axes", + "M84 ; disable stepper motors" + ], + "cmd":{ + "fan_power": "M106 S{fan_speed}", + "progress": "M117 {progress}% layer {layer} / {layers}" + }, + "settings":{ + "origin_center": false, + "bed_width": 300, + "bed_depth": 300, + "build_height": 300 + } +}