kopia lustrzana https://github.com/OpenBuilds/OpenBuilds-CONTROL
171 wiersze
4.2 KiB
JavaScript
171 wiersze
4.2 KiB
JavaScript
function findCenter() {
|
|
var xoffset = (probemode.probe.xoffset) * -1 // *-1 to make negative as we are off to the left too far from x0
|
|
var yoffset = (probemode.probe.yoffset) * -1 // *-1 to make negative as we are off to the front too far from y0
|
|
var zoffset = parseFloat(probemode.probe.zoffset) // not *-1 as its offset in z pos
|
|
var step = 0;
|
|
var rightside = 0,
|
|
leftside = 0,
|
|
farside = 0,
|
|
nearside = 0,
|
|
centerXdistance = 0,
|
|
centerYdistance = 0;
|
|
|
|
socket.off('prbResult'); // Disable old listeners
|
|
|
|
var holefindermacroStep1 = `
|
|
; Header
|
|
|
|
G21 ; mm mode
|
|
G10 P1 L20 X0 Y0 Z0 ; zero out current location
|
|
|
|
; First we establish Zero
|
|
; Probe Z
|
|
G0 X22.5 Y22.5 ; position to center of logo
|
|
G38.2 Z-25 F100 ; Probe Z
|
|
G4 P0.4
|
|
G10 P1 L20 Z` + zoffset + ` ; Set Z6 where 6 is thickness of plate
|
|
G0 Z` + (zoffset + 5) + ` ; retract
|
|
|
|
; Probe X
|
|
G0 X-20 Y10 ; position to left side and move forward a little to be closer to center of edge
|
|
G0 Z` + (zoffset - 6) + ` ; drop down to be next to plate
|
|
G38.2 X25 F100 ; Probe X
|
|
G4 P0.4
|
|
G10 P1 L20 X` + xoffset + ` ; set X as offset and half endmill diameter
|
|
G0 X` + (xoffset - 2).toFixed(3) + `
|
|
G0 Z` + (zoffset + 5) + ` ; retract
|
|
|
|
; Probe Y
|
|
G0 X15 Y-20 ; position to front side and move right a little to be closer to center of edge
|
|
G0 Z` + (zoffset - 6) + ` ; drop down to be next to plate
|
|
G38.2 Y25 F100 ; probe Y
|
|
G4 P0.4
|
|
G10 P1 L20 Y` + yoffset + ` ; set Y as offset and half endmill diameter
|
|
G0 Y` + (yoffset - 2).toFixed(3) + `
|
|
G0 Z` + (zoffset + 5) + ` ; retract
|
|
G0 X0 Y0 ; return
|
|
|
|
G0 X4 Y4
|
|
G0 Z1
|
|
G38.2 X10 F50 ; Probe X`
|
|
|
|
socket.emit('runJob', {
|
|
data: holefindermacroStep1,
|
|
isJob: false,
|
|
completedMsg: false,
|
|
fileName: ""
|
|
});
|
|
|
|
socket.on('prbResult', function(prbdata) {
|
|
step++;
|
|
console.log("Step " + step, prbdata);
|
|
|
|
// Steps 1-3 just positions endmill for probes that count
|
|
|
|
if (step == 4) {
|
|
rightside = prbdata.x
|
|
console.log(rightside);
|
|
|
|
var holefindermacroStep5 = `
|
|
G91
|
|
G0 X-1
|
|
G90
|
|
G38.2 X-10 F50 ; Probe X`
|
|
|
|
socket.emit('runJob', {
|
|
data: holefindermacroStep5,
|
|
isJob: false,
|
|
completedMsg: false,
|
|
fileName: ""
|
|
});
|
|
}
|
|
|
|
if (step == 5) {
|
|
leftside = prbdata.x
|
|
var centerdistance = (rightside - leftside);
|
|
var holefindermacroStep6 = `
|
|
G91
|
|
G0 X` + centerdistance / 2 + `
|
|
G90
|
|
G38.2 Y10 F50 ; Probe Y`
|
|
|
|
socket.emit('runJob', {
|
|
data: holefindermacroStep6,
|
|
isJob: false,
|
|
completedMsg: false,
|
|
fileName: ""
|
|
});
|
|
}
|
|
|
|
if (step == 6) {
|
|
farside = prbdata.y
|
|
|
|
var holefindermacroStep7 = `
|
|
G91
|
|
G0 Y-1
|
|
G90
|
|
G38.2 Y-10 F50 ; Probe Y`
|
|
|
|
socket.emit('runJob', {
|
|
data: holefindermacroStep7,
|
|
isJob: false,
|
|
completedMsg: false,
|
|
fileName: ""
|
|
});
|
|
}
|
|
|
|
if (step == 7) {
|
|
nearside = prbdata.y
|
|
centerYdistance = (farside - nearside);
|
|
console.log(centerYdistance)
|
|
var holefindermacroStep7 = `
|
|
G91
|
|
G0 Y` + centerYdistance / 2 + `
|
|
G90
|
|
G38.2 X-10 F50 ; Probe Y`
|
|
|
|
socket.emit('runJob', {
|
|
data: holefindermacroStep7,
|
|
isJob: false,
|
|
completedMsg: false,
|
|
fileName: ""
|
|
});
|
|
}
|
|
|
|
if (step == 8) {
|
|
leftside = prbdata.x
|
|
|
|
var holefindermacroStep7 = `
|
|
G91
|
|
G0 X1
|
|
G90
|
|
G38.2 X10 F50 ; Probe Y`
|
|
|
|
socket.emit('runJob', {
|
|
data: holefindermacroStep7,
|
|
isJob: false,
|
|
completedMsg: false,
|
|
fileName: ""
|
|
});
|
|
}
|
|
|
|
if (step == 9) {
|
|
rightside = prbdata.x
|
|
centerXdistance = (rightside - leftside);
|
|
console.log(centerXdistance)
|
|
var holefindermacroStep7 = `
|
|
G91
|
|
G0 X-` + centerXdistance / 2 + `
|
|
G90
|
|
G10 P1 L20 X0 Y0
|
|
G0 Z` + (zoffset + 5) + ` ; retract`
|
|
|
|
socket.emit('runJob', {
|
|
data: holefindermacroStep7,
|
|
isJob: false,
|
|
completedMsg: "Probe Complete: Remove the Probe Clip and Probe Plate before continuing... <hr> Approx Endmill Diameter: " + (12 - ((centerXdistance + centerYdistance) / 2)).toFixed(2) + "mm",
|
|
fileName: ""
|
|
});
|
|
}
|
|
})
|
|
} |