notes. tweaks for future command line usage. bump rev 2.9.D9
This commit is contained in:
parent
c4a6f3d989
commit
3507f67b73
7 changed files with 42 additions and 32 deletions
19
notes.md
19
notes.md
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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",
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
if (!self.kiri) {
|
||||
self.kiri = {
|
||||
beta: 2908,
|
||||
beta: 2909,
|
||||
driver: {}, // driver modules
|
||||
loader: [] // module loading: array of functions
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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});
|
||||
|
||||
try {
|
||||
worker.postMessage({
|
||||
let msg = {
|
||||
seq: seq,
|
||||
task: fn,
|
||||
time: time(),
|
||||
data: data
|
||||
}, zerocopy);
|
||||
};
|
||||
// console.log('client send', msg);
|
||||
// if (!fn) { console.trace({empty_fn: data}) };
|
||||
try {
|
||||
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];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 = []
|
||||
|
||||
|
|
|
|||
|
|
@ -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]});
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -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') {
|
||||
|
|
|
|||
Loading…
Reference in a new issue