function m6() local inst = mc.mcGetInstance() local selectedTool = mc.mcToolGetSelected(inst) local currentTool = mc.mcToolGetCurrent(inst) local toolPos = {0,36,72,108,144,180,216,252,288,324} -----------------------------NYTT HERFRA---------------------------- mc.mcCntlGcodeExecuteWait(inst, "M5") mc.mcCntlGcodeExecuteWait(inst, "G04 1") if selectedTool == currentTool then mc.mcCntlSetLastError(inst,"No need for tool change, go on!") return else -----------Get current state----------------- local CurFeed = mc.mcCntlGetPoundVar(inst, 2134) local CurFeedMode = mc.mcCntlGetPoundVar(inst, 4001) local CurAbsMode = mc.mcCntlGetPoundVar(inst, 4003) --------------------------------------------- mc.mcCntlGcodeExecuteWait(inst, "G90 G53 G01 F1200 Z0.0") mc.mcCntlGcodeExecuteWait(inst, "G90 G53 G01 F1200 X0.0 Y0.0") mc.mcCntlGcodeExecuteWait(inst, "G90 G53 G01 F1200 Z87.0") mc.mcCntlGcodeExecuteWait(inst, "G90 G54 G40 G0 A"..toolPos[selectedTool].."") mc.mcCntlGcodeExecuteWait(inst, "G43 H"..selectedTool.."") local sigh1 = mc.mcSignalGetHandle(inst, mc.ISIG_INPUT1) --Steppermotor i posisjon local sigState1 = mc.mcSignalGetState(sigh1) if (sigState1 == 1) then mc.mcCntlSetLastError(inst,"Toolchange is finished, going down") mc.mcCntlSetLastError(inst, "ToolNo. "..currentTool.." changed to ToolNo. "..selectedTool.." with position "..toolPos[selectedTool].."") else mc.mcCntlEStop(inst) wx.wxMessageBox("Is the tool wheel in the correct position?") return end end mc.mcCntlGcodeExecuteWait(inst, "G04 1") --local sigh0 = mc.mcSignalGetHandle(inst, mc.ISIG_INPUT0) --local sigState0 = mc.mcSignalGetState(sigh0) --if (sigState0 == 1) then -- mc.mcCntlSetLastError("Tool 1 is in position") --mc.mcAxisSetMachinePos(inst, 3, 0) --end mc.mcToolSetCurrent(inst, selectedTool) mc.mcCntlGcodeExecuteWait(inst, "G90 G53 G01 F200 Z87.0") mc.mcCntlGcodeExecuteWait(inst, "G90 G53 G01 F1200 Z0.0") --Går tilbake til Z0.0 local sigh2 = mc.mcSignalGetHandle(inst, mc.ISIG_INPUT2) local sigState2 = mc.mcSignalGetState(sigh2) if (sigState2 == 1) then mc.mcCntlSetLastError(inst,"Tool is in position, Spindle can start") ------ Reset state ------ mc.mcCntlSetPoundVar(inst, 2134, CurFeed) mc.mcCntlSetPoundVar(inst, 4001, CurFeedMode) mc.mcCntlSetPoundVar(inst, 4003, CurAbsMode) ------------------------- else mc.mcCntlEStop(inst) wx.wxMessageBox("The toolhead is not on position") end mc.mcCntlGcodeExecuteWait(inst, "G40") end if (mc.mcInEditor() == 1) then m6() end