Merge branch 'master' into cam-topo-new

This commit is contained in:
Stewart Allen 2023-01-14 19:57:49 -05:00
commit 4f2ccd2049
7 changed files with 12 additions and 7 deletions

View file

@ -102,6 +102,7 @@
* `F` ease-in and ease-out especially on tab cut-out start/stop * `F` ease-in and ease-out especially on tab cut-out start/stop
* `F` maintain several part orientations + op chains in a single profile * `F` maintain several part orientations + op chains in a single profile
* `P` improve parser - do not require spaced tokens and support implied G0 / G1
* `P` inner corner arc moves * `P` inner corner arc moves
* `P` log Z interpolation for contour XYZ moves * `P` log Z interpolation for contour XYZ moves
* `P` option to start with the smallest poly by area on layer change * `P` option to start with the smallest poly by area on layer change

View file

@ -1,6 +1,6 @@
{ {
"name": "grid-apps", "name": "grid-apps",
"version": "3.8.9D", "version": "3.8.10D",
"description": "grid.space 3d slice & modeling tools", "description": "grid.space 3d slice & modeling tools",
"author": "Stewart Allen <sa@grid.space>", "author": "Stewart Allen <sa@grid.space>",
"license": "MIT", "license": "MIT",

View file

@ -958,14 +958,14 @@ class OpTrace extends CamOp {
poly2polyEmit(polys, newPoint(0,0,0), (poly, index, count, spoint) => { poly2polyEmit(polys, newPoint(0,0,0), (poly, index, count, spoint) => {
routed.push(poly); routed.push(poly);
}); });
for (let poly of routed) { for (let poly of POLY.nest(routed)) {
let offdist = 0; let offdist = 0;
switch (offset) { switch (offset) {
case "outside": offdist = toolDiam / 2; break; case "outside": offdist = toolDiam / 2; break;
case "inside": offdist = -toolDiam / 2; break; case "inside": offdist = -toolDiam / 2; break;
} }
if (offdist) { if (offdist) {
let pnew = POLY.offset([poly], offdist); let pnew = POLY.offset([poly], offdist, { minArea: 0 });
if (pnew) { if (pnew) {
poly = POLY.setZ(pnew, poly.getZ()); poly = POLY.setZ(pnew, poly.getZ());
} else { } else {

View file

@ -475,7 +475,10 @@ class Print {
newlayer = true; newlayer = true;
autolayer = false; autolayer = false;
} }
line = line.split(";")[0].split(" ").filter(v => v); // if (["X","Y","Z"].indexOf(line.charAt(0)) >= 0) {
// line = `G0${line}`;
// }
line = line.trim().split(";")[0].split(" ").filter(v => v);
let cmd = line.shift(); let cmd = line.shift();
if (!cmd) return; if (!cmd) return;
if (cmd.charAt(0) === 'T') { if (cmd.charAt(0) === 'T') {
@ -486,6 +489,7 @@ class Print {
xoff.Y = -ext[pos].extOffsetY; xoff.Y = -ext[pos].extOffsetY;
} }
} }
pos.E = 0.0; pos.E = 0.0;
switch (cmd) { switch (cmd) {
case 'M82': case 'M82':

View file

@ -15,7 +15,7 @@ gapp.main("main.kiri", [], (root) => {
const modfns = root.kirimod = ( root.kirimod || [] ); const modfns = root.kirimod = ( root.kirimod || [] );
const kiri = root.kiri = { const kiri = root.kiri = {
beta: 3809, beta: 3810,
driver: {}, // driver modules driver: {}, // driver modules
load(fn) { load(fn) {
modfns.push(fn); modfns.push(fn);

View file

@ -5,7 +5,7 @@
let terms = { let terms = {
COPYRIGHT: "Copyright (C) Stewart Allen <sa@grid.space> - All Rights Reserved", COPYRIGHT: "Copyright (C) Stewart Allen <sa@grid.space> - All Rights Reserved",
LICENSE: "See the license.md file included with the source distribution", LICENSE: "See the license.md file included with the source distribution",
VERSION: (is_self ? self : this).debug_version || "3.8.D9" VERSION: (is_self ? self : this).debug_version || "3.8.D10"
}; };
if (typeof(module) === 'object') { if (typeof(module) === 'object') {

View file

@ -677,7 +677,7 @@ self.kiri.lang['en-us'] = {
ou_depf_s: "depth first", ou_depf_s: "depth first",
ou_depf_l: ["optimize pocket cuts","with depth priority"], ou_depf_l: ["optimize pocket cuts","with depth priority"],
ou_toin_s: "tool init", ou_toin_s: "tool init",
ou_toin_l: "emit tool change with first operation", ou_toin_l: "add tool change with first operation. when disabled, the gcode assumes the first tool is loaded and offset probed",
ou_forz_s: "force z max", ou_forz_s: "force z max",
ou_forz_l: "all moves between pockets will go to z max (above stock). this is usually required if you are not performing a roughing operation before pocketing operations.", ou_forz_l: "all moves between pockets will go to z max (above stock). this is usually required if you are not performing a roughing operation before pocketing operations.",
ou_z1st_s: "first z max", ou_z1st_s: "first z max",