function m19() inst = mc.mcGetInstance('M19 script') local SORV = mc.mcSpindleGetOverride(inst) local LstOVR = tonumber(SORV) local Svar = mc.mcCntlGetPoundVar(inst, mc.SV_BUFS) local LastRPM = tonumber(Svar) -- Test to see if the tool is released local OutToolRelease_io = mc.OSIG_OUTPUT3 local OutToolRelease = mc.mcSignalGetHandle(inst, OutToolRelease_io); local toolclamped = mc.mcSignalGetState(OutToolRelease); if(toolclamped ~= 0)then rc = mc.mcSignalSetState(OutToolRelease, false); wx.wxMilliSleep(1000); end ----------------------------------------------- --Set the Spindle Override to 100% ---------------------------------------------- mc.mcSpindleSetOverride(inst, 1) mc.mcCntlSetLastError(inst, 'Spindle Override is 100%') ------- Outputs ---------- local OutSpindleOrientate_io = mc.OSIG_OUTPUT7 -- Orient pin solenoid local OutSpindleOrientate = mc.mcSignalGetHandle(inst, OutSpindleOrientate_io); ------- Inputs ----------- local InSpindleOrientateOut_io = mc.ISIG_INPUT11 -- Pin retracted local InSpindleOrientateOut = mc.mcSignalGetHandle(inst, InSpindleOrientateOut_io) local InSpindleOrientateIn_io = mc.ISIG_INPUT9 -- Pin engaged in spindle local InSpindleOrientateIn = mc.mcSignalGetHandle(inst, InSpindleOrientateIn_io) local InSpindleOrientateOut_state = mc.mcSignalGetState(InSpindleOrientateOut) local InSpindleOrientateIn_state = mc.mcSignalGetState(InSpindleOrientateIn) local rc = mc.MERROR_NOERROR if (InSpindleOrientateOut_state == mc.MC_ON) then -- If the orientate pin is retracted then orientate the spindle -- Set spindle to low power mode SetCuttentModeLow(inst) --Start the spindle in slow speed local rpmSlow = 90 rc = mc.mcSpindleSetCommandRPM(inst, rpmSlow) rc = mc.mcSpindleSetDirection(inst, 1) if(rc ~= mc.MERROR_NOERROR)then mc.mcCntlEStop(inst) mc.mcCntlSetLastError(inst,"Error, Unable to start spindle") return rc; end --Orintate the Spindle rc = mc.mcSignalSetState(OutSpindleOrientate, mc.MC_ON) --Fire the Orinatate shot pin if(rc ~= mc.MERROR_NOERROR)then mc.mcCntlEStop(inst) mc.mcCntlSetLastError(inst,"Error, Unable to move Orientate pin in") return rc; end --rc = mc.mcSignalWait(inst, InSpindleOrientateIn_io, mc.WAIT_MODE_RISE, 5.0)--Wait for 5 Sec for the pin to go in rc = mc.mcSignalWait(inst, InSpindleOrientateIn_io, mc.WAIT_MODE_HIGH, 5.0)--Wait for 5 Sec for the pin to go in if(rc ~= mc.MERROR_NOERROR)then mc.mcCntlEStop(inst) mc.mcCntlSetLastError(inst,"Error, it's all ganked") return rc; end local OutRunCMD_io = mc.OSIG_OUTPUT15-- drive Run Command Off local OutRunCMD = mc.mcSignalGetHandle(inst, OutRunCMD_io); mc.mcSignalSetState(OutRunCMD, mc.MC_ON) --wx.wxMilliSleep(400) mc.mcSignalSetState(OutRunCMD, mc.MC_OFF) mc.mcSpindleSetDirection(inst, 0) wx.wxMilliSleep(400) SetCuttentModeHigh(inst) mc.mcCntlSetLastError(inst, "Spindle, Orient cmd complete") elseif (InSpindleOrientateIn_state == mc.MC_ON) then mc.mcCntlSetLastError(inst, "Spindle, Oriented") mc.mcCntlSetPoundVar(inst, mc.SV_BUFS, LastRPM) -------------------------------------------------------- --Set Spindle Override Back -------------------------------------------------------- mc.mcSpindleSetOverride(inst, LstOVR) mc.mcCntlSetLastError(inst, 'Spindle Override Returned to Previous Setting') else mc.mcCntlEStop(inst) mc.mcCntlSetLastError(inst, "Error, unable to start spindle orient, pin out of position") return rc; end end if (mc.mcInEditor() == 1) then m19() end