set view mode on part move,rotate,scale. debug code for tab intersections
This commit is contained in:
parent
1a11c4f2fa
commit
3738750ba3
3 changed files with 26 additions and 4 deletions
|
|
@ -868,6 +868,8 @@
|
|||
let int = UTIL.intersect(lp1, lp2, pp1, pp2, BASE.key.SEGINT, false);
|
||||
if (int) {
|
||||
list.push(int);
|
||||
// console.log('pp1.pos',pp1.pos,'to',ip1);
|
||||
// console.log('pp2.pos',pp2.pos,'to',ip2);
|
||||
pp1.pos = ip1;
|
||||
pp2.pos = ip2;
|
||||
}
|
||||
|
|
@ -907,13 +909,18 @@
|
|||
let poly = newPolygon(),
|
||||
start = i1.p2.pos,
|
||||
end = i2.p1.pos;
|
||||
// console.log({emitSeg: this, i1, i2, start, end});
|
||||
poly.setOpen();
|
||||
poly.push(i1);
|
||||
this.forEachPoint(function(p, pos) {
|
||||
poly.push(p);
|
||||
if (p === i2.p1) return true;
|
||||
if (p === i2.p1) {
|
||||
// console.log('hit end point @', pos);
|
||||
return true;
|
||||
}
|
||||
}, true, start);
|
||||
poly.push(i2);
|
||||
// console.log({emit: poly});
|
||||
return poly;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -933,6 +933,7 @@
|
|||
}
|
||||
|
||||
function moveSelection(x, y, z, abs) {
|
||||
setViewMode(VIEWS.ARRANGE);
|
||||
forSelectedGroups(function (w) {
|
||||
w.move(x, y, z, abs);
|
||||
});
|
||||
|
|
@ -942,6 +943,7 @@
|
|||
}
|
||||
|
||||
function scaleSelection() {
|
||||
setViewMode(VIEWS.ARRANGE);
|
||||
let args = arguments;
|
||||
forSelectedGroups(function (w) {
|
||||
w.scale(...args);
|
||||
|
|
@ -958,6 +960,7 @@
|
|||
}
|
||||
|
||||
function rotateSelection(x, y, z) {
|
||||
setViewMode(VIEWS.ARRANGE);
|
||||
forSelectedGroups(function (w) {
|
||||
w.rotate(x, y, z);
|
||||
});
|
||||
|
|
|
|||
|
|
@ -274,7 +274,7 @@
|
|||
if (outside) {
|
||||
offset.appendAll(outside);
|
||||
if (addTabsOutline && slice.z <= zMin + tabHeight) {
|
||||
offset = addCutoutTabs(offset, slice.z, roughToolDiam, tabWidth, proc.camTabsCount, proc.camTabsAngle);
|
||||
offset = addCutoutTabs(offset, slice.z, roughToolDiam, tabWidth, proc.camTabsCount, proc.camTabsAngle, slice);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -533,7 +533,7 @@
|
|||
}
|
||||
|
||||
// cut outside traces at the right points
|
||||
function addCutoutTabs(polys, z, toolDiam, tabWidth, tabCount, tabAngle) {
|
||||
function addCutoutTabs(polys, z, toolDiam, tabWidth, tabCount, tabAngle, slice) {
|
||||
// skip if no tops | traces
|
||||
if (polys.length === 0) return polys;
|
||||
|
||||
|
|
@ -553,16 +553,28 @@
|
|||
if (int1 && int2) {
|
||||
ints.push(int1);
|
||||
ints.push(int2);
|
||||
// slice.output().setLayer('int',0xff0000).addLine(int1, int2);
|
||||
}
|
||||
});
|
||||
|
||||
let segs = [];
|
||||
if (ints.length) {
|
||||
ints.push(ints.shift());
|
||||
// let cv = 0;
|
||||
for (let i=0; i<ints.length; i+=2) {
|
||||
segs.push(trace.emitSegment(ints[i], ints[i+1]));
|
||||
const seg = trace.emitSegment(ints[i], ints[i+1]);
|
||||
// const col = [0x0000ff,0x009900,0x999900];
|
||||
// seg.setZ(seg.getZ()+i);
|
||||
// seg.points.forEach((p,i) => p.z += (i*0.01));
|
||||
// slice.output().setLayer(`seg${i}`,col[cv++]).addPoly(seg);
|
||||
// slice.output().setLayer(`seg${i}`).addPoly(newPolygon().centerCircle(seg.first(),1,5));
|
||||
// slice.output().setLayer(`seg${i}`).addPoly(newPolygon().centerCircle(seg.last(),1,4));
|
||||
// slice.output().setLayer(`seg${i}`).addPoly(newPolygon().centerCircle(trace.first(),2,5));
|
||||
// slice.output().setLayer(`seg${i}`).addPoly(newPolygon().centerCircle(trace.last(),2,4));
|
||||
segs.push(seg);
|
||||
}
|
||||
// check for and eliminate overlaps
|
||||
if (false)
|
||||
for (let i=0, il=segs.length; i < il; i++) {
|
||||
let si = segs[i];
|
||||
for (let j=i+1; j<il; j++) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue