ensure top is cleared in roughing when no top offset and clear faces checked. only show view clear in arrange mode
This commit is contained in:
parent
59f45656ff
commit
69c3a07f90
3 changed files with 8 additions and 2 deletions
1
notes.md
1
notes.md
|
|
@ -63,6 +63,7 @@
|
||||||
|
|
||||||
* `B` outside cutting direction in roughing mode inverted
|
* `B` outside cutting direction in roughing mode inverted
|
||||||
* `B` clear voids has double interior pass because wrong offset shadow used
|
* `B` clear voids has double interior pass because wrong offset shadow used
|
||||||
|
* `B` top clearing operations should use linear, not offset, passes
|
||||||
* `F` flat and volumetric rendering of paths
|
* `F` flat and volumetric rendering of paths
|
||||||
* `F` z bounded slices (extension of z bottom offset feature)
|
* `F` z bounded slices (extension of z bottom offset feature)
|
||||||
* `F` z planar settings visualizations
|
* `F` z planar settings visualizations
|
||||||
|
|
|
||||||
|
|
@ -1985,7 +1985,8 @@
|
||||||
viewMode = mode;
|
viewMode = mode;
|
||||||
platform.deselect();
|
platform.deselect();
|
||||||
updateSelectedInfo();
|
updateSelectedInfo();
|
||||||
// updateStockVisibility();
|
// disable clear in non-arrange modes
|
||||||
|
$('view-clear').style.display = mode === VIEWS.ARRANGE ? '' : 'none';
|
||||||
switch (mode) {
|
switch (mode) {
|
||||||
case VIEWS.ARRANGE:
|
case VIEWS.ARRANGE:
|
||||||
complete = {};
|
complete = {};
|
||||||
|
|
|
||||||
|
|
@ -144,12 +144,16 @@
|
||||||
thruHoles = tshadow.map(p => p.inner || []).flat();
|
thruHoles = tshadow.map(p => p.inner || []).flat();
|
||||||
|
|
||||||
// create facing slices
|
// create facing slices
|
||||||
if (procFacing) {
|
if (procFacing || proc.camRoughFlat) {
|
||||||
let shadow = shadowTop.tops.clone();
|
let shadow = shadowTop.tops.clone();
|
||||||
let inset = POLY.offset(shadow, (roughToolDiam / 4));
|
let inset = POLY.offset(shadow, (roughToolDiam / 4));
|
||||||
let facing = POLY.offset(inset, -(roughToolDiam * proc.camRoughOver), { count: 999, flat: true });
|
let facing = POLY.offset(inset, -(roughToolDiam * proc.camRoughOver), { count: 999, flat: true });
|
||||||
let zdiv = ztOff / roughDown;
|
let zdiv = ztOff / roughDown;
|
||||||
let zstep = (zdiv % 1 > 0) ? ztOff / (Math.floor(zdiv) + 1) : roughDown;
|
let zstep = (zdiv % 1 > 0) ? ztOff / (Math.floor(zdiv) + 1) : roughDown;
|
||||||
|
if (proc.camRoughFlat && ztOff === 0) {
|
||||||
|
// compensate for lack of z top offset in this scenario
|
||||||
|
ztOff = zstep;
|
||||||
|
}
|
||||||
for (let z = zMax + ztOff - zstep; z >= zMax; z -= zstep) {
|
for (let z = zMax + ztOff - zstep; z >= zMax; z -= zstep) {
|
||||||
let slice = shadowTop.slice.clone(false);
|
let slice = shadowTop.slice.clone(false);
|
||||||
slice.z = z;
|
slice.z = z;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue