Merge branch 'master' into cam-topo4

This commit is contained in:
Stewart Allen 2023-01-19 09:17:56 -05:00
commit 8439946543
10 changed files with 25 additions and 13 deletions

View file

@ -382,6 +382,7 @@ kiri.load(() => {
let renderSpeed = 0;
let skipMove = null;
let toolUpdate;
let depth = 0;
// send latest tool position and progress bar
function renderUpdate(send) {
@ -488,8 +489,8 @@ kiri.load(() => {
deformMesh(pos, send);
toolUpdate = { mesh_move: { id, pos }};
// pause renderer at specified offsets
if (renderSpeed && renderDist >= renderSpeed) {
renderDist = 0;
if ((renderSpeed && renderDist >= renderSpeed) || (depth > 600)) {
renderDist = depth = 0;
renderUpdate(send);
setTimeout(() => {
renderMoves(id, moves, send, index);
@ -497,6 +498,7 @@ kiri.load(() => {
return;
}
}
depth++;
renderPath(send);
}

View file

@ -1295,6 +1295,7 @@ CAM.init = function(kiri, api) {
step: 'camContourOver',
rate: 'camContourSpeed',
angle: 'camContourAngle',
leave: 'camContourLeave',
tolerance: 'camTolerance',
flatness: 'camFlatness',
bridging: 'camContourBridge',
@ -1311,6 +1312,7 @@ CAM.init = function(kiri, api) {
sep: UC.newBlank({class:"pop-sep"}),
step: UC.newInput(LANG.cc_sovr_s, {title:LANG.cc_sovr_l, convert:UC.toFloat, bound:UC.bound(0.01,2.0)}),
angle: UC.newInput(LANG.cf_angl_s, {title:LANG.cf_angl_l, convert:UC.toFloat, bound:UC.bound(45,90)}),
leave: UC.newInput(LANG.cf_leav_s, {title:LANG.cf_leav_l, convert:UC.toFloat, bound:UC.bound(0,100)}),
sep: UC.newBlank({class:"pop-sep"}),
flatness: UC.newInput(LANG.ou_flat_s, {title:LANG.ou_flat_l, convert:UC.toFloat, bound:UC.bound(0,1.0), units:true, round:4}),
tolerance: UC.newInput(LANG.ou_toll_s, {title:LANG.ou_toll_l, convert:UC.toFloat, bound:UC.bound(0,10.0), units:true, round:4}),

View file

@ -658,7 +658,7 @@ class OpOutline extends CamOp {
// project empty up and render
for (let slice of slices) {
if (true) slice.output()
if (false) slice.output()
.setLayer("slice", {line: 0xaaaa00}, false)
.addPolys(slice.topPolys())
slice.output()

View file

@ -36,7 +36,7 @@ class Topo {
contourY = axis === "y",
bounds = widget.getBoundingBox().clone(),
tolerance = contour.tolerance,
flatness = contour.flatness || 0.001,
flatness = contour.flatness || (tolerance / 100),
shadow = tshadow,
minX = bounds.min.x,
maxX = bounds.max.x,
@ -53,6 +53,7 @@ class Topo {
toolDiameter = tool.fluteDiameter(),
toolStep = toolDiameter * contour.step,
traceJoin = toolDiameter / 2,
leave = contour.leave || 0,
maxangle = contour.angle,
curvesOnly = contour.curves,
bridge = contour.bridging || 0,
@ -180,6 +181,7 @@ class Topo {
clipTab,
tabHeight,
newslices,
leave,
color
}, (i, l, p) => {
onupdate(l / 2 + i / 2, l, p);
@ -302,7 +304,7 @@ class Topo {
const { minX, maxX, minY, maxY, boundsX, boundsY, stepsX, stepsY } = params;
const { gridDelta, resolution, partOff, toolStep, contourX, contourY } = params;
const { clipTo, clipTab, tabHeight, newslices, color } = params;
const { clipTo, clipTab, tabHeight, newslices, color, leave } = params;
let stepsTaken = 0,
stepsTotal = 0;
@ -325,6 +327,7 @@ class Topo {
trace.init({
box,
leave,
clipTo,
clipTab,
tabHeight,
@ -474,7 +477,7 @@ class Trace {
constructor(probe, params) {
const { curvesOnly, maxangle, flatness, bridge, contourX } = params;
const { curvesOnly, maxangle, flatness, bridge, contourX, leave } = params;
this.params = params;
this.probe = probe;
@ -609,7 +612,7 @@ class Trace {
crossY_sync(params, then) {
const { push_point, end_poly, newtrace, newslice, inClip } = this.object;
const { clipTab, tabHeight, clipTo, box, resolution } = this.cross;
const { clipTab, tabHeight, clipTo, box, resolution, leave } = this.cross;
const { toolAtZ } = this.probe;
let { from, to, x, gridx, gridy } = params;
const checkr = newPoint(0,0);
@ -636,7 +639,7 @@ class Trace {
gridy++;
continue;
}
push_point(x, y, tv);
push_point(x, y, tv + leave);
gridy++;
}
end_poly();
@ -645,9 +648,10 @@ class Trace {
crossX_sync(params, then) {
const { push_point, end_poly, newtrace, newslice, inClip } = this.object;
const { clipTab, tabHeight, clipTo, box, resolution } = this.cross;
const { clipTab, tabHeight, clipTo, box, resolution, leave } = this.cross;
const { toolAtZ } = this.probe;
let { from, to, y, gridx, gridy } = params;
const checkr = newPoint(0,0);
newslice();
newtrace();
@ -672,7 +676,7 @@ class Trace {
gridx++;
continue;
}
push_point(x, y, tv);
push_point(x, y, tv + leave);
gridx++;
}
end_poly();