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` improve decimation speed: omit point conversion or use wasm
* `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` show slider range values in workspace units (on hover?)
@ -20,18 +21,15 @@
# FDM
* `B` re-calibrate slicing progress weighting
* `B` infill densities are inaccurate
* `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 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` more explicit line width control with ranges and min/max adaptive
* `F` test outlining solid projected areas (internally)
* `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` feather sharp tips by reducing extrusion in area of overlap
* `F` first layer segment large flat areas for better fill reliability
@ -56,11 +54,10 @@
# FDM - BELT
* `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
* `F` refactor brims to be generated at slice time
* `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` arrange should align down Z, not side to side.
@ -68,11 +65,11 @@
* `B` tabs are not cut to exact height
* `B` first rough step too far down in certain circumstances?
* `B` trace open polys are not wound consistently
* `B` path routing with tabs sometimes makes no sense
* `B` trace open polys are not wound consistently?
* `B` path routing with tabs sometimes makes no sense (still?)
* `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 linear clearing strategy
* `F` add adaptive clearing strategy
@ -80,7 +77,7 @@
* `F` intelligently turn circle hole pocket clear into spiral down
* `F` trace follow hole that matches endmill should turn into a drill op
* `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` option to use part / STL coordinate space to determine X,Y origin
* `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` flat and volumetric rendering of paths
* `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` trapezoidal tabs in Z
* `F` ease-in and ease-out especially on tab cut-out start/stop

View file

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

View file

@ -6,7 +6,7 @@
if (!self.kiri) {
self.kiri = {
beta: 2908,
beta: 2909,
driver: {}, // driver modules
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
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 {
worker.postMessage({
seq: seq,
task: fn,
time: time(),
data: data
}, zerocopy);
worker.postMessage(msg, zerocopy);
} catch (error) {
console.trace('work send error', {data, error});
}
@ -92,13 +93,13 @@ KIRI.work = {
running = {};
worker = KIRI.work.newWorker();
worker.onmessage = function(e) {
CLIENT.onmessage = worker.onmessage = function(e) {
let now = time(),
reply = e.data,
record = running[reply.seq],
onreply = record ? record.fn : undefined;
// console.log('recv', reply.data)
// console.log('client recv', e)
if (reply.done) {
delete running[reply.seq];
}

View file

@ -633,6 +633,12 @@
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
*
@ -654,7 +660,7 @@
widget.clearSlices();
onupdate(0.0001, "slicing");
if (KIRI.client) {
if (KIRI.client && !widget.inWorker) {
// in case result of slice is nothing, do not preserve previous
widget.slices = []

View file

@ -74,7 +74,7 @@ KIRI.worker = {
wgroup[data.group] = group;
}
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
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(),
msg = e.data,
msg = e.data || {},
run = dispatch[msg.task],
send = {
data : function(data,direct) {
@ -572,7 +578,7 @@ self.onmessage = function(e) {
// sz:direct.map(z => z.byteLength).reduce((a,v) => a+v)
// });
// }
self.postMessage({
dispatch.send({
seq: msg.seq,
task: msg.task,
done: false,
@ -586,7 +592,7 @@ self.onmessage = function(e) {
// sz:direct.map(z => z.byteLength).reduce((a,v) => a+v)
// });
// }
self.postMessage({
dispatch.send({
seq: msg.seq,
task: msg.task,
done: true,
@ -602,7 +608,7 @@ self.onmessage = function(e) {
time_send = time(),
time_proc = time_send - time_recv;
if (output) self.postMessage({
if (output) dispatch.send({
seq: msg.seq,
task: msg.task,
time_send: time_xfer,
@ -617,7 +623,7 @@ self.onmessage = function(e) {
send.done({error: wrkerr.toString()});
}
} else {
console.log({kiri_msg:e});
console.log({worker_unhandled: e, msg, fn: dispatch[msg.task]});
}
};

View file

@ -3,7 +3,7 @@
let terms = {
COPYRIGHT: "Copyright (C) Stewart Allen <sa@grid.space> - All Rights Reserved",
LICENSE: "See the license.md file included with the source distribution",
VERSION: "2.9.D8"
VERSION: "2.9.D9"
};
if (typeof(module) === 'object') {