add 3 point registration holes. fix animation + dwell
This commit is contained in:
parent
4ac0f69f61
commit
345ad8f27d
4 changed files with 25 additions and 7 deletions
8
notes.md
8
notes.md
|
|
@ -1,8 +1,7 @@
|
||||||
# Kiri:Moto todo and notes
|
# Kiri:Moto todo and notes
|
||||||
|
|
||||||
## 2.5 roadmap
|
## 2.5 plan
|
||||||
# `cnc`
|
# `cnc`
|
||||||
# - lathe, A-axis
|
|
||||||
# - complex process order
|
# - complex process order
|
||||||
# - split gcode output
|
# - split gcode output
|
||||||
# - double-sided assistance
|
# - double-sided assistance
|
||||||
|
|
@ -10,9 +9,10 @@
|
||||||
# - more tracing types (in, out, clear, pocket)
|
# - more tracing types (in, out, clear, pocket)
|
||||||
# - trace re-ordering
|
# - trace re-ordering
|
||||||
# `fdm`
|
# `fdm`
|
||||||
# - redo automatic supports using faces instead of deltas
|
|
||||||
# - bind process to z ranges or boxed regions
|
# - bind process to z ranges or boxed regions
|
||||||
# - non-planar actual
|
# - non-planar actual
|
||||||
|
# `sla`
|
||||||
|
# - common support area detection from new fdm code
|
||||||
|
|
||||||
## `C` cosmetic, `F` functional, `P` performance, `B` bug fix
|
## `C` cosmetic, `F` functional, `P` performance, `B` bug fix
|
||||||
|
|
||||||
|
|
@ -65,7 +65,6 @@
|
||||||
* `F` validate muti-part layout and spacing exceeds largest outside tool diameter
|
* `F` validate muti-part layout and spacing exceeds largest outside tool diameter
|
||||||
* `F` skip "thru" holes checkbox for roughing and outlining
|
* `F` skip "thru" holes checkbox for roughing and outlining
|
||||||
* `F` polygon simplification option in tracing (for image derived maps)
|
* `F` polygon simplification option in tracing (for image derived maps)
|
||||||
* `F` use 3 registration holes to prevent rotation accidents (midline offset one axis)
|
|
||||||
* `F` exports separate files for each operation
|
* `F` exports separate files for each operation
|
||||||
* `F` switch z top offset to a z anchor (top/bottom) + offset
|
* `F` switch z top offset to a z anchor (top/bottom) + offset
|
||||||
* `F` A-B linked cutting profiles for double-sided milling / part flips
|
* `F` A-B linked cutting profiles for double-sided milling / part flips
|
||||||
|
|
@ -84,6 +83,7 @@
|
||||||
* `F` add support for tapered ball mills
|
* `F` add support for tapered ball mills
|
||||||
* `F` warn when part > stock or cuts go outside bed
|
* `F` warn when part > stock or cuts go outside bed
|
||||||
* `F` animation should clear the mesh in areas where the cuts go through the stock?
|
* `F` animation should clear the mesh in areas where the cuts go through the stock?
|
||||||
|
* `F` support lathe mode / A-axis / rotary
|
||||||
* `P` detect render message backlog and pause or warn
|
* `P` detect render message backlog and pause or warn
|
||||||
* `P` redo all path route / planning in prepare to account for terrain before camOut
|
* `P` redo all path route / planning in prepare to account for terrain before camOut
|
||||||
* `P` allow faster z movements when contouring (not plunging)
|
* `P` allow faster z movements when contouring (not plunging)
|
||||||
|
|
|
||||||
|
|
@ -160,7 +160,9 @@
|
||||||
drillreg: [
|
drillreg: [
|
||||||
{ name: "none" },
|
{ name: "none" },
|
||||||
{ name: "x axis" },
|
{ name: "x axis" },
|
||||||
{ name: "y axis" }
|
{ name: "y axis" },
|
||||||
|
{ name: "x axis 3" },
|
||||||
|
{ name: "y axis 3" }
|
||||||
],
|
],
|
||||||
detail: [
|
detail: [
|
||||||
{ name: "best" },
|
{ name: "best" },
|
||||||
|
|
|
||||||
|
|
@ -372,6 +372,11 @@ self.kiri.loader.push(function() {
|
||||||
const id = toolID;
|
const id = toolID;
|
||||||
if (last) {
|
if (last) {
|
||||||
const lp = last.point, np = next.point;
|
const lp = last.point, np = next.point;
|
||||||
|
// dwell ops have no point
|
||||||
|
if (!np) {
|
||||||
|
setTimeout(() => { renderPath(send) }, 0);
|
||||||
|
return;
|
||||||
|
}
|
||||||
const dx = np.x - lp.x, dy = np.y - lp.y, dz = np.z - lp.z;
|
const dx = np.x - lp.x, dy = np.y - lp.y, dz = np.z - lp.z;
|
||||||
// skip moves that are closer than resolution
|
// skip moves that are closer than resolution
|
||||||
if (Math.sqrt(dx*dx +dy*dy + dz*dz) < rez) {
|
if (Math.sqrt(dx*dx +dy*dy + dz*dz) < rez) {
|
||||||
|
|
|
||||||
|
|
@ -193,7 +193,7 @@
|
||||||
|
|
||||||
if (procDrillReg) {
|
if (procDrillReg) {
|
||||||
updateToolDiams(drillToolDiam);
|
updateToolDiams(drillToolDiam);
|
||||||
sliceDrillReg(settings, sliceAll, zThru);
|
sliceDrillReg(settings, drillTool, sliceAll, zThru);
|
||||||
}
|
}
|
||||||
|
|
||||||
// identify through holes
|
// identify through holes
|
||||||
|
|
@ -765,10 +765,11 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
// drill registration holes
|
// drill registration holes
|
||||||
function sliceDrillReg(settings, output, zThru) {
|
function sliceDrillReg(settings, tool, output, zThru) {
|
||||||
let proc = settings.process,
|
let proc = settings.process,
|
||||||
stock = settings.stock,
|
stock = settings.stock,
|
||||||
bounds = settings.bounds,
|
bounds = settings.bounds,
|
||||||
|
r3 = tool.fluteDiameter() * 2,
|
||||||
mx = (bounds.max.x + bounds.min.x) / 2,
|
mx = (bounds.max.x + bounds.min.x) / 2,
|
||||||
my = (bounds.max.y + bounds.min.y) / 2,
|
my = (bounds.max.y + bounds.min.y) / 2,
|
||||||
mz = zThru || 0,
|
mz = zThru || 0,
|
||||||
|
|
@ -782,10 +783,20 @@
|
||||||
points.push(newPoint(bounds.min.x - dx, my, 0));
|
points.push(newPoint(bounds.min.x - dx, my, 0));
|
||||||
points.push(newPoint(bounds.max.x + dx, my, 0));
|
points.push(newPoint(bounds.max.x + dx, my, 0));
|
||||||
break;
|
break;
|
||||||
|
case "x axis 3":
|
||||||
|
points.push(newPoint(bounds.min.x - dx, my, 0));
|
||||||
|
points.push(newPoint(bounds.max.x + dx, my - r3, 0));
|
||||||
|
points.push(newPoint(bounds.max.x + dx, my + r3, 0));
|
||||||
|
break;
|
||||||
case "y axis":
|
case "y axis":
|
||||||
points.push(newPoint(mx, bounds.min.y - dy, 0));
|
points.push(newPoint(mx, bounds.min.y - dy, 0));
|
||||||
points.push(newPoint(mx, bounds.max.y + dy, 0));
|
points.push(newPoint(mx, bounds.max.y + dy, 0));
|
||||||
break;
|
break;
|
||||||
|
case "y axis 3":
|
||||||
|
points.push(newPoint(mx, bounds.min.y - dy, 0));
|
||||||
|
points.push(newPoint(mx - r3, bounds.max.y + dy, 0));
|
||||||
|
points.push(newPoint(mx + r3, bounds.max.y + dy, 0));
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (points.length) {
|
if (points.length) {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue