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
|
||||
|
||||
## 2.5 roadmap
|
||||
## 2.5 plan
|
||||
# `cnc`
|
||||
# - lathe, A-axis
|
||||
# - complex process order
|
||||
# - split gcode output
|
||||
# - double-sided assistance
|
||||
|
|
@ -10,9 +9,10 @@
|
|||
# - more tracing types (in, out, clear, pocket)
|
||||
# - trace re-ordering
|
||||
# `fdm`
|
||||
# - redo automatic supports using faces instead of deltas
|
||||
# - bind process to z ranges or boxed regions
|
||||
# - non-planar actual
|
||||
# `sla`
|
||||
# - common support area detection from new fdm code
|
||||
|
||||
## `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` skip "thru" holes checkbox for roughing and outlining
|
||||
* `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` switch z top offset to a z anchor (top/bottom) + offset
|
||||
* `F` A-B linked cutting profiles for double-sided milling / part flips
|
||||
|
|
@ -84,6 +83,7 @@
|
|||
* `F` add support for tapered ball mills
|
||||
* `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` support lathe mode / A-axis / rotary
|
||||
* `P` detect render message backlog and pause or warn
|
||||
* `P` redo all path route / planning in prepare to account for terrain before camOut
|
||||
* `P` allow faster z movements when contouring (not plunging)
|
||||
|
|
|
|||
|
|
@ -160,7 +160,9 @@
|
|||
drillreg: [
|
||||
{ name: "none" },
|
||||
{ name: "x axis" },
|
||||
{ name: "y axis" }
|
||||
{ name: "y axis" },
|
||||
{ name: "x axis 3" },
|
||||
{ name: "y axis 3" }
|
||||
],
|
||||
detail: [
|
||||
{ name: "best" },
|
||||
|
|
|
|||
|
|
@ -372,6 +372,11 @@ self.kiri.loader.push(function() {
|
|||
const id = toolID;
|
||||
if (last) {
|
||||
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;
|
||||
// skip moves that are closer than resolution
|
||||
if (Math.sqrt(dx*dx +dy*dy + dz*dz) < rez) {
|
||||
|
|
|
|||
|
|
@ -193,7 +193,7 @@
|
|||
|
||||
if (procDrillReg) {
|
||||
updateToolDiams(drillToolDiam);
|
||||
sliceDrillReg(settings, sliceAll, zThru);
|
||||
sliceDrillReg(settings, drillTool, sliceAll, zThru);
|
||||
}
|
||||
|
||||
// identify through holes
|
||||
|
|
@ -765,10 +765,11 @@
|
|||
}
|
||||
|
||||
// drill registration holes
|
||||
function sliceDrillReg(settings, output, zThru) {
|
||||
function sliceDrillReg(settings, tool, output, zThru) {
|
||||
let proc = settings.process,
|
||||
stock = settings.stock,
|
||||
bounds = settings.bounds,
|
||||
r3 = tool.fluteDiameter() * 2,
|
||||
mx = (bounds.max.x + bounds.min.x) / 2,
|
||||
my = (bounds.max.y + bounds.min.y) / 2,
|
||||
mz = zThru || 0,
|
||||
|
|
@ -782,10 +783,20 @@
|
|||
points.push(newPoint(bounds.min.x - dx, my, 0));
|
||||
points.push(newPoint(bounds.max.x + dx, my, 0));
|
||||
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":
|
||||
points.push(newPoint(mx, bounds.min.y - dy, 0));
|
||||
points.push(newPoint(mx, bounds.max.y + dy, 0));
|
||||
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) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue