Merge branch 'master' into cam-topo-new
This commit is contained in:
commit
52610655d0
7 changed files with 19 additions and 9 deletions
12
release.md
12
release.md
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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}),
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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",
|
||||
|
|
|
|||
Loading…
Reference in a new issue