enable slice poly heal for small gaps

This commit is contained in:
Stewart Allen 2021-01-21 12:49:21 -05:00
commit 4c6da4933d
5 changed files with 24 additions and 8 deletions

View file

@ -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
},

View file

@ -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,

View file

@ -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);

View file

@ -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 });

View file

@ -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",