From 4c6da4933dd15d08afa4d584d822fe3b41038a2e Mon Sep 17 00:00:00 2001 From: Stewart Allen Date: Thu, 21 Jan 2021 12:49:21 -0500 Subject: [PATCH] enable slice poly heal for small gaps --- src/dev/fdm/Creality.CR-30 | 2 +- src/geo/base.js | 2 +- src/kiri/slicer2.js | 3 ++- src/mode/cam/ops.js | 21 ++++++++++++++++++--- web/kiri/lang/en.js | 4 ++-- 5 files changed, 24 insertions(+), 8 deletions(-) diff --git a/src/dev/fdm/Creality.CR-30 b/src/dev/fdm/Creality.CR-30 index b2fa75db..941d8a23 100644 --- a/src/dev/fdm/Creality.CR-30 +++ b/src/dev/fdm/Creality.CR-30 @@ -54,7 +54,7 @@ "origin_center": false, "extrude_abs": true, "bed_belt": true, - "bed_width": 210, + "bed_width": 215, "bed_depth": 300, "build_height": 170 }, diff --git a/src/geo/base.js b/src/geo/base.js index cfc7c8fa..213b8689 100644 --- a/src/geo/base.js +++ b/src/geo/base.js @@ -334,7 +334,7 @@ // default # of decimal places in generated gcode gcode_decimals : 4, // heal disjoint polygons in slicing (experimental) - bridgeLineGapDistance : 0, + bridgeLineGapDistance : 0.0001, // Bounds default margin nearTo // Polygon.offset mindist2 offset precision precision_offset : 0.05, diff --git a/src/kiri/slicer2.js b/src/kiri/slicer2.js index 5d38a160..814257ad 100644 --- a/src/kiri/slicer2.js +++ b/src/kiri/slicer2.js @@ -237,7 +237,8 @@ if (lines.length) { const debug = false; retn.lines = removeDuplicateLines(lines, debug); - retn.tops = POLY.nest(connectLines(retn.lines, opt, debug)); + let polys = connectLines(retn.lines, opt, debug); + retn.tops = POLY.nest(polys); if (opt.swapX || opt.swapY) { this.unswap(opt.swapX, opt.swapY, retn.lines, retn.tops); diff --git a/src/mode/cam/ops.js b/src/mode/cam/ops.js index 177f7dcf..44f4fdd4 100644 --- a/src/mode/cam/ops.js +++ b/src/mode/cam/ops.js @@ -1067,7 +1067,7 @@ slice(progress) { let state = this.state; - let { ops, slicer, widget, unsafe } = state; + let { ops, slicer, widget, unsafe, sliceAll } = state; let real = ops.map(rec => rec.op).filter(op => op); let rough = real.filter(op => op.type === 'rough').length > 0; @@ -1091,12 +1091,27 @@ let terrain = slicer.slice(tzindex, { each: (data, index, total) => { tshadow = POLY.union(tshadow.slice().appendAll(data.tops), 0.01, true); tslices.push(data.slice); - if (false) { + if (true) { const slice = data.slice; sliceAll.push(slice); slice.output() - .setLayer("terrain", {line: 0x888800, thin: true }) + .setLayer("shadow", {line: 0x888800, thin: true }) .addPolys(POLY.setZ(tshadow.clone(true), data.z), { thin: true }); + // slice.output() + // .setLayer("slice", {line: 0x886622, thin: true }) + // .addPolys(POLY.setZ(data.tops.clone(true), data.z), { thin: true }); + // let p1 = [], p2 = [], cp = p1; + // for (let line of data.lines) { + // cp.push(line.p1); + // cp.push(line.p2); + // cp = (cp === p1 ? p2 : p1); + // } + // slice.output() + // .setLayer("lines1", {line: 0x884444, thin: true }) + // .addLines(p1, { thin: true }); + // slice.output() + // .setLayer("lines2", {line: 0x444488, thin: true }) + // .addLines(p2, { thin: true }); } progress(index / total); }, genso: true }); diff --git a/web/kiri/lang/en.js b/web/kiri/lang/en.js index dabb4f76..fa658e8e 100644 --- a/web/kiri/lang/en.js +++ b/web/kiri/lang/en.js @@ -33,8 +33,8 @@ kiri.lang['en-us'] = { dv_xtab_l: "extrusion moves absolute", dv_orgc_s: "origin center", dv_orgc_l: "bed origin center", - dv_orgt_s: "origin top", - dv_orgt_l: "part z origin top", + // dv_orgt_s: "origin top", + // dv_orgt_l: "part z origin top", dv_bedc_s: "circular bed", dv_bedc_l: "device bed is circular", dv_belt_s: "belt bed",