Merge branch 'master' into cam-topo-new

This commit is contained in:
Stewart Allen 2023-01-11 22:19:12 -05:00
commit 52610655d0
7 changed files with 19 additions and 9 deletions

View file

@ -9,15 +9,19 @@ Full docs @ https://docs.grid.space/projects/kiri-moto
* add new fdm parameters, range overrides
* various fixes and improvements to CAM indexing
* various fixes and improvements to gcode variables
* move to save Z between CAM ops, refresh spindle speed
* CAM move to save Z between ops, refresh spindle speed
* improve gcode arc import decoding
* improve trace line selection with zoom adaptive thresholds
* add CAM origin offset optional parameters
* CAM add origin offset optional parameters
* remove auto-decimation on object import
* fix FDM raft line fill strategy
* FDM fix raft line fill strategy
* slicing memory reduction from team lychee
* option to control first CAM output point order
* option to control first output point order
* CAM add control to omit initial tool change
* CAM fix vertical face selection and step over defaults
- refactor object/group storage model in Mesh:Tool
- add omit pocket to rough and outline
# Release 3.7 (2022-11-12)

View file

@ -88,7 +88,7 @@ kiri.load(api => {
CAM.surface_find = function(widget, faces) {
CAM.surface_prep(widget);
return widget.tool.findConnectedSurface(faces, 0.1, 0.1);
return widget.tool.findConnectedSurface(faces, 0.1, 0.0);
};
kiri.worker.cam_surfaces = function(data, send) {

View file

@ -34,6 +34,7 @@ CAM.export = function(print, online) {
output = [],
spindle = 0,
newSpindle = 0,
toolChanges = 0,
spindleMax = device.spindleMax,
origin = settings.origin || { x: 0, y: 0, z: 0 },
space = device.gcodeSpace ? ' ' : '',
@ -188,9 +189,10 @@ CAM.export = function(print, online) {
pos.t = out.tool;
consts.tool = pos.t;
consts.tool_name = toolNameByNumber(out.tool);
if (!laserOp) {
if (!laserOp && (spro.camToolInit || toolChanges > 0)) {
filterEmit(cmdToolChange, { ...consts, spindle: newSpindle } );
}
toolChanges++;
}
// on spindle change (deferred from layer transition so it's post-toolchange)

View file

@ -508,7 +508,7 @@ const conf = exports({
camTraceBottom: false,
camPocketSpindle: 1000,
camPocketTool: 1000,
camPocketOver: 0.5,
camPocketOver: 0.25,
camPocketDown: 1,
camPocketSpeed: 250,
camPocketPlunge: 200,
@ -582,6 +582,7 @@ const conf = exports({
camTrueShadow: false,
camForceZMax: false,
camFirstZMax: false,
camToolInit: true,
ops: [], // current ops
op2: [] // flip ops
}

View file

@ -1974,6 +1974,7 @@ gapp.register("kiri.init", [], (root, exports) => {
camConventional: uc.newBoolean(LANG.ou_conv_s, onBooleanClick, {title:LANG.ou_conv_l, modes:CAM}),
camEaseDown: uc.newBoolean(LANG.cr_ease_s, onBooleanClick, {title:LANG.cr_ease_l, modes:CAM}),
camDepthFirst: uc.newBoolean(LANG.ou_depf_s, onBooleanClick, {title:LANG.ou_depf_l, modes:CAM}),
camToolInit: uc.newBoolean(LANG.ou_toin_s, onBooleanClick, {title:LANG.ou_toin_l, modes:CAM}),
fdmSep: uc.newBlank({class:"pop-sep", modes:FDM_CAM}),
camFirstZMax: uc.newBoolean(LANG.ou_z1st_s, onBooleanClick, {title:LANG.ou_z1st_l, modes:CAM}),
camForceZMax: uc.newBoolean(LANG.ou_forz_s, onBooleanClick, {title:LANG.ou_forz_l, modes:CAM}),

View file

@ -226,7 +226,7 @@ mesh.tool = class MeshTool {
// depends on index() being run first
findConnectedSurface(faces, radians, filterZ, found = {}) {
const norms = this.getIndex().faces;
if (filterZ) {
if (filterZ !== undefined) {
// optional filter to z normal >= value
faces = faces.filter(f => norms[f * 6 + 2] >= filterZ);
}

View file

@ -443,7 +443,7 @@ self.kiri.lang['en-us'] = {
cc_spnd_s: "spindle rpm",
cc_spnd_l: ["spindle speed in","revolutions / minute"],
cc_sovr_s: "step over",
cc_sovr_l: ["a fraction of tool diameter between 0 and 1. values greater than 0.5 may result in uncut areas from acute angle offsets."],
cc_sovr_l: ["a fraction of tool diameter between 0 and 1. values greater than 0.49 may result in uncut areas from acute angle offsets or undesirable artifacts when contour is enabled."],
cc_sdwn_s: "step down",
cc_sdwn_l: ["step down depth","for each pass","in workspace units","0 to disable"],
cc_thru_s: "cut thru",
@ -676,6 +676,8 @@ self.kiri.lang['en-us'] = {
ou_conv_l: ["milling direction","uncheck for 'climb'"],
ou_depf_s: "depth first",
ou_depf_l: ["optimize pocket cuts","with depth priority"],
ou_toin_s: "tool init",
ou_toin_l: "emit tool change with first operation",
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_z1st_s: "first z max",