notes. tweaks for future command line usage. bump rev 2.9.D9

This commit is contained in:
Stewart Allen 2021-05-05 19:11:05 -04:00
commit 3507f67b73
7 changed files with 42 additions and 32 deletions

View file

@ -9,6 +9,7 @@
* `P` allow selection to be decimated on demand (context menu?) * `P` allow selection to be decimated on demand (context menu?)
* `P` improve decimation speed: omit point conversion or use wasm * `P` improve decimation speed: omit point conversion or use wasm
* `P` explore widget vertex reloading / replacing (Onshape) (issue #48) * `P` explore widget vertex reloading / replacing (Onshape) (issue #48)
* `P` move all persisted / workspace settings/data to IndexedDB (LS limitations)
* `F` SVG import to 3D part like images * `F` SVG import to 3D part like images
* `F` show slider range values in workspace units (on hover?) * `F` show slider range values in workspace units (on hover?)
@ -20,18 +21,15 @@
# FDM # FDM
* `B` re-calibrate slicing progress weighting
* `B` infill densities are inaccurate
* `B` fix support projection/end with grouped parts * `B` fix support projection/end with grouped parts
* `B` multi-extruder rendering of raft fails to offset the rest of the print * `B` multi-extruder rendering of raft fails to offset the rest of the print
* `B` multi-extruder purge blocks fail to generate properly for rafts * `B` multi-extruder purge blocks fail to generate properly for rafts
* `F` support pillar should conform to part * `F` support pillar top/bottom should conform to part
* `F` support pillar should have solid top/bottom * `F` support pillar should have solid top/bottom
* `F` more explicit line width control with ranges and min/max adaptive * `F` more explicit line width control with ranges and min/max adaptive
* `F` test outlining solid projected areas (internally) * `F` test outlining solid projected areas (internally)
* `F` control for size of purge block (with 0=disabled) * `F` control for size of purge block (with 0=disabled)
* `F` polishing and other non-planar work
* `F` gradient infill https://www.youtube.com/watch?v=hq53gsYREHU&feature=emb_logo * `F` gradient infill https://www.youtube.com/watch?v=hq53gsYREHU&feature=emb_logo
* `F` feather sharp tips by reducing extrusion in area of overlap * `F` feather sharp tips by reducing extrusion in area of overlap
* `F` first layer segment large flat areas for better fill reliability * `F` first layer segment large flat areas for better fill reliability
@ -56,11 +54,10 @@
# FDM - BELT # FDM - BELT
* `B` auto bed resizing leaves the origin in the wrong place at first * `B` auto bed resizing leaves the origin in the wrong place at first
* `B` multiple parts with one angled against origin "floats" in preview
* `B` re-add progress calls for all work units * `B` re-add progress calls for all work units
* `F` refactor brims to be generated at slice time
* `F` anchors should be generated anywhere needed in the print, not just head * `F` anchors should be generated anywhere needed in the print, not just head
* `F` brims should extend between branches and have a slight offset from part
* `F` slightly angle supports to lean into the Z of the part * `F` slightly angle supports to lean into the Z of the part
* `F` arrange should align down Z, not side to side. * `F` arrange should align down Z, not side to side.
@ -68,11 +65,11 @@
* `B` tabs are not cut to exact height * `B` tabs are not cut to exact height
* `B` first rough step too far down in certain circumstances? * `B` first rough step too far down in certain circumstances?
* `B` trace open polys are not wound consistently * `B` trace open polys are not wound consistently?
* `B` path routing with tabs sometimes makes no sense * `B` path routing with tabs sometimes makes no sense (still?)
* `B` need to force cut line at synthetic z bottom (midlines, etc) * `B` need to force cut line at synthetic z bottom (midlines, etc)
* `F` limit cut depth to flute length of selected tool * `F` limit cut depth to flute length of selected tool (or warn)
* `F` add ease-down support to trace op * `F` add ease-down support to trace op
* `F` add linear clearing strategy * `F` add linear clearing strategy
* `F` add adaptive clearing strategy * `F` add adaptive clearing strategy
@ -80,7 +77,7 @@
* `F` intelligently turn circle hole pocket clear into spiral down * `F` intelligently turn circle hole pocket clear into spiral down
* `F` trace follow hole that matches endmill should turn into a drill op * `F` trace follow hole that matches endmill should turn into a drill op
* `F` add climb/conventional into each operation * `F` add climb/conventional into each operation
* `F` update analyzer to detect overhangs * `F` update analyzer to detect overhangs from faces, not slices
* `F` extend acute roughing on inside polys to clear small voids * `F` extend acute roughing on inside polys to clear small voids
* `F` option to use part / STL coordinate space to determine X,Y origin * `F` option to use part / STL coordinate space to determine X,Y origin
* `F` validate muti-part layout and spacing exceeds largest outside tool diameter * `F` validate muti-part layout and spacing exceeds largest outside tool diameter
@ -88,7 +85,7 @@
* `F` parameterize dropping close points in prep.js. ensure long segments remain straight * `F` parameterize dropping close points in prep.js. ensure long segments remain straight
* `F` flat and volumetric rendering of paths * `F` flat and volumetric rendering of paths
* `F` z planar settings visualizations * `F` z planar settings visualizations
* `F` convert acute angles to arcs * `F` convert acute angles to arcs to avoid jerk
* `F` lead-in milling * `F` lead-in milling
* `F` trapezoidal tabs in Z * `F` trapezoidal tabs in Z
* `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

View file

@ -1,6 +1,6 @@
{ {
"name": "grid-apps", "name": "grid-apps",
"version": "2.9.8D", "version": "2.9.9D",
"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

@ -6,7 +6,7 @@
if (!self.kiri) { if (!self.kiri) {
self.kiri = { self.kiri = {
beta: 2908, beta: 2909,
driver: {}, // driver modules driver: {}, // driver modules
loader: [] // module loading: array of functions loader: [] // module loading: array of functions
}; };

View file

@ -32,15 +32,16 @@ function send(fn, data, onreply, zerocopy) {
// track it only when we expect and can handle a reply // track it only when we expect and can handle a reply
running[seq] = { fn:onreply }; running[seq] = { fn:onreply };
} }
// console.log('send', {fn, data, onreply}); let msg = {
seq: seq,
task: fn,
time: time(),
data: data
};
// console.log('client send', msg);
// if (!fn) { console.trace({empty_fn: data}) };
try { try {
worker.postMessage({ worker.postMessage(msg, zerocopy);
seq: seq,
task: fn,
time: time(),
data: data
}, zerocopy);
} catch (error) { } catch (error) {
console.trace('work send error', {data, error}); console.trace('work send error', {data, error});
} }
@ -92,13 +93,13 @@ KIRI.work = {
running = {}; running = {};
worker = KIRI.work.newWorker(); worker = KIRI.work.newWorker();
worker.onmessage = function(e) { CLIENT.onmessage = worker.onmessage = function(e) {
let now = time(), let now = time(),
reply = e.data, reply = e.data,
record = running[reply.seq], record = running[reply.seq],
onreply = record ? record.fn : undefined; onreply = record ? record.fn : undefined;
// console.log('recv', reply.data) // console.log('client recv', e)
if (reply.done) { if (reply.done) {
delete running[reply.seq]; delete running[reply.seq];
} }

View file

@ -633,6 +633,12 @@
return 0; return 0;
}; };
// allow worker code to run in same memspace as client
PRO.setInWorker = function() {
this.inWorker = true;
return this;
};
/** /**
* processes points into facets, then into slices * processes points into facets, then into slices
* *
@ -654,7 +660,7 @@
widget.clearSlices(); widget.clearSlices();
onupdate(0.0001, "slicing"); onupdate(0.0001, "slicing");
if (KIRI.client) { if (KIRI.client && !widget.inWorker) {
// in case result of slice is nothing, do not preserve previous // in case result of slice is nothing, do not preserve previous
widget.slices = [] widget.slices = []

View file

@ -74,7 +74,7 @@ KIRI.worker = {
wgroup[data.group] = group; wgroup[data.group] = group;
} }
let vertices = new Float32Array(data.vertices), let vertices = new Float32Array(data.vertices),
widget = KIRI.newWidget(data.id, group).loadVertices(vertices); widget = KIRI.newWidget(data.id, group).loadVertices(vertices).setInWorker();
// do it here so cancel can work // do it here so cancel can work
wcache[data.id] = widget; wcache[data.id] = widget;
@ -560,9 +560,15 @@ KIRI.worker = {
} }
}; };
self.onmessage = function(e) { dispatch.send = (msg) => {
// console.log('worker send', msg);
self.postMessage(msg);
};
dispatch.onmessage = self.onmessage = function(e) {
// console.log('worker recv', e);
let time_recv = time(), let time_recv = time(),
msg = e.data, msg = e.data || {},
run = dispatch[msg.task], run = dispatch[msg.task],
send = { send = {
data : function(data,direct) { data : function(data,direct) {
@ -572,7 +578,7 @@ self.onmessage = function(e) {
// sz:direct.map(z => z.byteLength).reduce((a,v) => a+v) // sz:direct.map(z => z.byteLength).reduce((a,v) => a+v)
// }); // });
// } // }
self.postMessage({ dispatch.send({
seq: msg.seq, seq: msg.seq,
task: msg.task, task: msg.task,
done: false, done: false,
@ -586,7 +592,7 @@ self.onmessage = function(e) {
// sz:direct.map(z => z.byteLength).reduce((a,v) => a+v) // sz:direct.map(z => z.byteLength).reduce((a,v) => a+v)
// }); // });
// } // }
self.postMessage({ dispatch.send({
seq: msg.seq, seq: msg.seq,
task: msg.task, task: msg.task,
done: true, done: true,
@ -602,7 +608,7 @@ self.onmessage = function(e) {
time_send = time(), time_send = time(),
time_proc = time_send - time_recv; time_proc = time_send - time_recv;
if (output) self.postMessage({ if (output) dispatch.send({
seq: msg.seq, seq: msg.seq,
task: msg.task, task: msg.task,
time_send: time_xfer, time_send: time_xfer,
@ -617,7 +623,7 @@ self.onmessage = function(e) {
send.done({error: wrkerr.toString()}); send.done({error: wrkerr.toString()});
} }
} else { } else {
console.log({kiri_msg:e}); console.log({worker_unhandled: e, msg, fn: dispatch[msg.task]});
} }
}; };

View file

@ -3,7 +3,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: "2.9.D8" VERSION: "2.9.D9"
}; };
if (typeof(module) === 'object') { if (typeof(module) === 'object') {