checkpoint anti-backlash
This commit is contained in:
parent
7ed281972d
commit
bdca904c61
3 changed files with 30 additions and 12 deletions
|
|
@ -626,8 +626,10 @@ var gs_base_polygons = exports;
|
|||
var p1 = newPoint(start.x - raySlope.dx * 1000, start.y - raySlope.dy * 1000, zpos, NOKEY),
|
||||
p2 = newPoint(start.x + raySlope.dx * 1000, start.y + raySlope.dy * 1000, zpos, NOKEY);
|
||||
|
||||
// store origin line for distance tests in print
|
||||
if (i == 0) rayint.oline = [p1,p2];
|
||||
|
||||
lines.push([p1,p2]);
|
||||
|
||||
start.x += stepX;
|
||||
start.y += stepY;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -567,12 +567,14 @@ var gs_kiri_print = exports;
|
|||
}
|
||||
|
||||
function outputFills(lines, bounds) {
|
||||
var mindist, p1, p2, dist, point, find, list, len, lastout, pass = 0, origin;
|
||||
var mindist, p1, p2, dist, point, find, list, len, lastout, origin, lastDist2Origin,
|
||||
skip = false,
|
||||
pass = 0;
|
||||
|
||||
while (lines) {
|
||||
list = [];
|
||||
mindist = Infinity;
|
||||
origin = antiBacklash && pass === 0 ? lines.origin : startPoint;
|
||||
origin = skip || (antiBacklash && pass === 0) ? lines.origin : startPoint;
|
||||
// order all points by distance to last point
|
||||
for (i=0; i<lines.length; i++) {
|
||||
point = lines[i];
|
||||
|
|
@ -595,6 +597,20 @@ var gs_kiri_print = exports;
|
|||
|
||||
dist = startPoint.distTo2D(p1);
|
||||
|
||||
// find next closest to fill origin on seek
|
||||
if (antiBacklash) {
|
||||
var dist2Origin = p1.distToLine(lines.oline[0], lines.oline[1]);
|
||||
if (!skip) {
|
||||
if (lastDist2Origin && dist2Origin < lastDist2Origin) {
|
||||
lastDist2Origin = null;
|
||||
skip = true;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
lastDist2Origin = dist2Origin;
|
||||
}
|
||||
skip = false;
|
||||
|
||||
// mark as used (temporary)
|
||||
p1.del = true;
|
||||
p2.del = true;
|
||||
|
|
@ -616,7 +632,7 @@ var gs_kiri_print = exports;
|
|||
|
||||
// anti-backlash take out slack by moving toward origin
|
||||
if (antiBacklash && dist > retractDist) {
|
||||
addOutput(preout, p1.add({x:1,y:-1,z:0}), 0, moveSpeed);
|
||||
addOutput(preout, p1.add({x:2,y:-2,z:0}), 0, moveSpeed);
|
||||
}
|
||||
|
||||
// bridge ends of fill when they're close together
|
||||
|
|
|
|||
16
js/kiri.js
16
js/kiri.js
|
|
@ -260,7 +260,7 @@ self.kiri.license = exports.LICENSE;
|
|||
|
||||
sliceHeight: 0.25,
|
||||
sliceShells: 2,
|
||||
sliceShellSpacing: 1,
|
||||
sliceShellSpacing: 1.0,
|
||||
sliceFillAngle: 45,
|
||||
sliceFillOverlap: 0.3,
|
||||
sliceFillSpacing: 1.0,
|
||||
|
|
@ -275,10 +275,10 @@ self.kiri.license = exports.LICENSE;
|
|||
sliceSupportExtra: 0,
|
||||
sliceSupportSpan: 6,
|
||||
|
||||
sliceSolidMinArea: 0.1,
|
||||
sliceSolidLayers: 2,
|
||||
sliceSolidMinArea: 5,
|
||||
sliceSolidLayers: 3,
|
||||
sliceBottomLayers: 2,
|
||||
sliceTopLayers: 2,
|
||||
sliceTopLayers: 3,
|
||||
sliceVase: false,
|
||||
|
||||
firstSliceHeight: 0.25,
|
||||
|
|
@ -298,13 +298,13 @@ self.kiri.license = exports.LICENSE;
|
|||
outputFillMult: 1.2,
|
||||
outputSparseMult: 1.3,
|
||||
outputRetractOver: 5.0,
|
||||
outputRetractDist: 0.5,
|
||||
outputRetractDist: 1.0,
|
||||
outputRetractSpeed: 40,
|
||||
outputRetractDwell: 20,
|
||||
outputRetractDwell: 30,
|
||||
outputBrimCount: 2,
|
||||
outputBrimOffset: 3,
|
||||
outputBrimOffset: 2,
|
||||
outputShortPoly: 15.0,
|
||||
outputShortDistance: 5.0,
|
||||
outputShortDistance: 0.0,
|
||||
outputShortFactor: 0.2,
|
||||
outputFinishFactor: 0,
|
||||
detectThinWalls: false,
|
||||
|
|
|
|||
Loading…
Reference in a new issue