fix double inset. bump rev 2.4.D7
This commit is contained in:
parent
0842d235a3
commit
44df978a67
4 changed files with 24 additions and 11 deletions
11
notes.md
11
notes.md
|
|
@ -26,17 +26,15 @@
|
|||
* `F` mesh / stl export (like w/ images, rotate, scale, future cleanup ops)
|
||||
* `F` detect and report slow framerates
|
||||
* `F` right click / context menu (object deletion, etc)
|
||||
* `P` improve decimation speed by avoiding in/out of Point?
|
||||
* `P` duplicate objects should share same slice data unless rotated or scaled
|
||||
* `P` worker state cache cleanup and organization
|
||||
* `P` client/worker interface normalization
|
||||
* `P` optimize object import to vertices + indexes to save memory
|
||||
* `P` allow selection to me decimated on demand (context menu?)
|
||||
* `P` improve decimation speed by avoiding in/out of Point?
|
||||
* `P` optimize object import to vertices + indexes to save memory
|
||||
* `P` client/worker interface normalization
|
||||
|
||||
# FDM
|
||||
|
||||
* `B` sparse infill should follow polys between intersect points
|
||||
* `B` expand > 0 producing artifacts with manual supports
|
||||
* `B` fix adaptive slicing with multi-extruder
|
||||
* `B` fix supports with grouped parts
|
||||
* `B` multi-extruder rendering of raft fails to offset the rest of the print
|
||||
|
|
@ -51,7 +49,7 @@
|
|||
* `F` first layer segment large flat areas for better fill reliability
|
||||
* `F` enable purge blocks when quick layers are detected
|
||||
* `F` apply finish speed to exposed top and underside flat areas
|
||||
* `F` expand internal supporting flats
|
||||
* `F` expand internal supporting flats / solids before projection
|
||||
* `F` first layer support speed should be same as shell speed
|
||||
* `F` trim support offset from layer below
|
||||
* `F` option to support interior bridges when 0% infill
|
||||
|
|
@ -68,7 +66,6 @@
|
|||
|
||||
* `B` climb vs conventional not fully consistent after refactor
|
||||
* `B` outside cutting direction in roughing mode inverted
|
||||
* `B` clear voids has double interior pass because wrong offset shadow used
|
||||
* `B` top clearing operations should use linear, not offset, passes
|
||||
* `F` animation should clear the mesh in areas where the cuts go through the stock?
|
||||
* `F` switch z top offset to an z anchor (top/bottom) + offset
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "grid-apps",
|
||||
"version": "2.4.6D",
|
||||
"version": "2.4.7D",
|
||||
"description": "grid.space 3d slice & modeling tools",
|
||||
"author": "Stewart Allen <sa@grid.space>",
|
||||
"license": "MIT",
|
||||
|
|
|
|||
|
|
@ -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.4.D6"
|
||||
VERSION: "2.4.D7"
|
||||
};
|
||||
|
||||
if (typeof(module) === 'object') {
|
||||
|
|
|
|||
|
|
@ -266,7 +266,8 @@
|
|||
if (proc.camRoughVoid) {
|
||||
return undefined;
|
||||
}
|
||||
let po = POLY.offset([p], -(roughToolDiam + camRoughStock));
|
||||
// let po = POLY.offset([p], -(roughToolDiam + camRoughStock));
|
||||
let po = POLY.offset([p], -(roughToolDiam / 2 + camRoughStock + 0.001));
|
||||
return po ? po[0] : undefined;
|
||||
} else {
|
||||
return p;
|
||||
|
|
@ -276,7 +277,8 @@
|
|||
shadow = POLY.nest(shadow);
|
||||
|
||||
// expand shadow by half tool diameter + stock to leave
|
||||
const sadd = procRoughIn ? roughToolDiam / 4 : roughToolDiam / 2;
|
||||
// const sadd = procRoughIn ? roughToolDiam / 4 : roughToolDiam / 2;
|
||||
const sadd = procRoughIn ? roughToolDiam / 2 : roughToolDiam / 2;
|
||||
const shell = POLY.offset(shadow, sadd + camRoughStock);
|
||||
|
||||
nextOp();
|
||||
|
|
@ -318,6 +320,20 @@
|
|||
|
||||
if (!offset) return;
|
||||
|
||||
// elimate double inset on inners
|
||||
offset.forEach(op => {
|
||||
if (op.inner) {
|
||||
let operim = op.perimeter();
|
||||
let newinner = [];
|
||||
op.inner.forEach(oi => {
|
||||
if (Math.abs(oi.perimeter() - operim) > 0.01) {
|
||||
newinner.push(oi);
|
||||
}
|
||||
});
|
||||
op.inner = newinner;
|
||||
}
|
||||
});
|
||||
|
||||
slice.camLines = offset;
|
||||
if (true) slice.output()
|
||||
.setLayer("slice", {line: 0xaaaa00}, true)
|
||||
|
|
|
|||
Loading…
Reference in a new issue