local inst = mc.mcGetInstance () local UI = {} function axisIsEnabled (axis) local inst = mc.mcGetInstance () local enabled = mc.mcAxisIsEnabled (inst, axis) return enabled end -- Build Fram UI.MyFrame1 = wx.wxFrame (wx.NULL, wx.wxID_ANY, "The Woodford Jog", wx.wxDefaultPosition, wx.wxSize( 1300, 300 ), wx.wxDEFAULT_FRAME_STYLE+wx.wxTAB_TRAVERSAL, "Pedio Jog" ) UI.MyFrame1:SetSizeHints( wx.wxDefaultSize, wx.wxDefaultSize ) UI.MyFrame1 :SetFont( wx.wxFont( 20, 70, 90, 90, False, "" ) ) UI.MyFrame1 :SetBackgroundColour( wx.wxColour( 255, 255, 255 ) ) UI.bSizer1 = wx.wxBoxSizer( wx.wxVERTICAL ) UI.gSizer2 = wx.wxGridSizer( 0, 7, 0, 0 ) UI.m_buttonApos = wx.wxButton( UI.MyFrame1, wx.wxID_ANY, "A +", wx.wxDefaultPosition, wx.wxDefaultSize, 0 ) UI.m_buttonApos:Enable( axisIsEnabled(3) ) UI.gSizer2:Add( UI.m_buttonApos, 0, wx.wxALIGN_CENTER_HORIZONTAL + wx.wxALIGN_CENTER_VERTICAL + wx.wxALL + wx.wxEXPAND, 5 ) UI.m_buttonBpos = wx.wxButton( UI.MyFrame1, wx.wxID_ANY, "B +", wx.wxDefaultPosition, wx.wxDefaultSize, 0 ) UI.m_buttonBpos:Enable( axisIsEnabled(4) ) UI.gSizer2:Add( UI.m_buttonBpos, 0, wx.wxALIGN_CENTER_HORIZONTAL + wx.wxALIGN_CENTER_VERTICAL + wx.wxALL + wx.wxEXPAND, 5 ) UI.m_buttonCpos = wx.wxButton( UI.MyFrame1, wx.wxID_ANY, "C +", wx.wxDefaultPosition, wx.wxDefaultSize, 0 ) UI.m_buttonCpos:Enable( axisIsEnabled(5) ) UI.gSizer2:Add( UI.m_buttonCpos, 0, wx.wxALIGN_CENTER_HORIZONTAL + wx.wxALIGN_CENTER_VERTICAL + wx.wxALL + wx.wxEXPAND, 5 ) UI.gSizer2:Add( 0, 0, 1, wx.wxEXPAND, 5 ) UI.m_buttonYpos = wx.wxButton( UI.MyFrame1, wx.wxID_ANY, "Y +", wx.wxDefaultPosition, wx.wxDefaultSize, 0 ) UI.m_buttonYpos:Enable( axisIsEnabled(1) ) UI.gSizer2:Add( UI.m_buttonYpos, 0, wx.wxALIGN_CENTER_HORIZONTAL + wx.wxALIGN_CENTER_VERTICAL + wx.wxALL + wx.wxEXPAND, 5 ) UI.gSizer2:Add( 0, 0, 1, wx.wxEXPAND, 5 ) UI.m_buttonZpos = wx.wxButton( UI.MyFrame1, wx.wxID_ANY, "Z +", wx.wxDefaultPosition, wx.wxDefaultSize, 0 ) UI.m_buttonZpos:Enable( axisIsEnabled(2) ) UI.gSizer2:Add( UI.m_buttonZpos, 0, wx.wxALIGN_CENTER_HORIZONTAL + wx.wxALIGN_CENTER_VERTICAL + wx.wxALL + wx.wxEXPAND, 5 ) UI.gSizer2:Add( 0, 0, 1, wx.wxEXPAND, 5 ); UI.gSizer2:Add( 0, 0, 1, wx.wxEXPAND, 5 ); UI.gSizer2:Add( 0, 0, 1, wx.wxEXPAND, 5 ) UI.gSizer2:Add( 0, 0, 1, wx.wxEXPAND, 5 ); UI.gSizer2:Add( 0, 0, 1, wx.wxEXPAND, 5 ); UI.gSizer2:Add( 0, 0, 1, wx.wxEXPAND, 5 ) UI.gSizer2:Add( 0, 0, 1, wx.wxEXPAND, 5 ); UI.gSizer2:Add( 0, 0, 1, wx.wxEXPAND, 5 ); UI.gSizer2:Add( 0, 0, 1, wx.wxEXPAND, 5 ) --[[ UI.m_staticText1 = wx.wxStaticText( UI.MyFrame1, wx.wxID_ANY, "Jog Rate %", wx.wxDefaultPosition, wx.wxDefaultSize, wx.wxALIGN_CENTRE + wx.wxTE_PROCESS_ENTER+wx.wxNO_BORDER) UI.m_staticText1:Wrap( -1 ) UI.gSizer2:Add( UI.m_staticText1, 0, wx.wxALIGN_CENTRE_HORIZONTAL + wx.wxALIGN_CENTER_VERTICAL, 5 ) UI.m_textCtrl1 = wx.wxTextCtrl( UI.MyFrame1, wx.wxID_ANY, tostring(mc.mcJogGetRate (inst, 0)), wx.wxDefaultPosition, wx.wxDefaultSize, wx.wxTE_CENTRE ) UI.gSizer2:Add( UI.m_textCtrl1, 0, wx.wxALL + wx.wxALIGN_CENTRE_HORIZONTAL + wx.wxALIGN_CENTER_VERTICAL, 0 ) UI.m_textCtrl1:SetForegroundColour( wx.wxColour( 0, 255, 0 ) ) UI.m_textCtrl1:SetBackgroundColour( wx.wxColour( 0, 0, 0 ) ) --]] UI.gSizer2:Add( 0, 0, 1, wx.wxEXPAND, 5 ) UI.m_buttonXneg = wx.wxButton( UI.MyFrame1, wx.wxID_ANY, "X -", wx.wxDefaultPosition, wx.wxDefaultSize, 0 ) UI.m_buttonXneg:Enable( axisIsEnabled(0) ) UI.gSizer2:Add( UI.m_buttonXneg, 0, wx.wxALIGN_CENTER_HORIZONTAL + wx.wxALIGN_CENTER_VERTICAL + wx.wxALL + wx.wxEXPAND, 5 ) UI.gSizer2:Add( 0, 0, 1, wx.wxEXPAND, 5 ) UI.m_buttonXpos = wx.wxButton( UI.MyFrame1, wx.wxID_ANY, "X +", wx.wxDefaultPosition, wx.wxDefaultSize, 0 ) UI.m_buttonXpos:Enable( axisIsEnabled(0) ) UI.gSizer2:Add( UI.m_buttonXpos, 0, wx.wxALIGN_CENTER_HORIZONTAL + wx.wxALIGN_CENTER_VERTICAL + wx.wxALL + wx.wxEXPAND, 5 ) UI.gSizer2:Add( 0, 0, 1, wx.wxEXPAND, 5 ); UI.gSizer2:Add( 0, 0, 1, wx.wxEXPAND, 5 ); UI.gSizer2:Add( 0, 0, 1, wx.wxEXPAND, 5 ) UI.gSizer2:Add( 0, 0, 1, wx.wxEXPAND, 5 ); UI.gSizer2:Add( 0, 0, 1, wx.wxEXPAND, 5 ); UI.gSizer2:Add( 0, 0, 1, wx.wxEXPAND, 5 ) UI.gSizer2:Add( 0, 0, 1, wx.wxEXPAND, 5 ); UI.gSizer2:Add( 0, 0, 1, wx.wxEXPAND, 5 ) UI.m_buttonAneg = wx.wxButton( UI.MyFrame1, wx.wxID_ANY, "A -", wx.wxDefaultPosition, wx.wxDefaultSize, 0 ) UI.m_buttonAneg:Enable( axisIsEnabled(3) ) UI.gSizer2:Add( UI.m_buttonAneg, 0, wx.wxALIGN_CENTER_HORIZONTAL + wx.wxALIGN_CENTER_VERTICAL + wx.wxALL + wx.wxEXPAND, 5 ) UI.m_buttonBneg = wx.wxButton( UI.MyFrame1, wx.wxID_ANY, "B -", wx.wxDefaultPosition, wx.wxDefaultSize, 0 ) UI.m_buttonBneg:Enable( axisIsEnabled(4) ) UI.gSizer2:Add( UI.m_buttonBneg, 0, wx.wxALIGN_CENTER_HORIZONTAL + wx.wxALIGN_CENTER_VERTICAL + wx.wxALL + wx.wxEXPAND, 5 ) UI.m_buttonCneg = wx.wxButton( UI.MyFrame1, wx.wxID_ANY, "C -", wx.wxDefaultPosition, wx.wxDefaultSize, 0 ) UI.m_buttonCneg:Enable( axisIsEnabled(5) ) UI.gSizer2:Add( UI.m_buttonCneg, 0, wx.wxALIGN_CENTER_HORIZONTAL + wx.wxALIGN_CENTER_VERTICAL + wx.wxALL + wx.wxEXPAND, 5 ) UI.gSizer2:Add( 0, 0, 1, wx.wxEXPAND, 5 ) UI.m_buttonYneg = wx.wxButton( UI.MyFrame1, wx.wxID_ANY, "Y -", wx.wxDefaultPosition, wx.wxDefaultSize, 0 ) UI.m_buttonYneg:Enable( axisIsEnabled(1) ) UI.gSizer2:Add( UI.m_buttonYneg, 0, wx.wxALIGN_CENTER_HORIZONTAL + wx.wxALIGN_CENTER_VERTICAL + wx.wxALL + wx.wxEXPAND, 5 ) UI.gSizer2:Add( 0, 0, 1, wx.wxEXPAND, 5 ) UI.m_buttonZneg = wx.wxButton( UI.MyFrame1, wx.wxID_ANY, "Z -", wx.wxDefaultPosition, wx.wxDefaultSize, 0 ) UI.m_buttonZneg:Enable( axisIsEnabled(2) ) UI.gSizer2:Add( UI.m_buttonZneg, 0, wx.wxALIGN_CENTER_HORIZONTAL + wx.wxALIGN_CENTER_VERTICAL + wx.wxALL + wx.wxEXPAND, 5 ) UI.bSizer1:Add( UI.gSizer2, 1, wx.wxEXPAND, 5 ) UI.MyFrame1:SetSizer( UI.bSizer1 ) UI.MyFrame1:Layout() UI.MyFrame1:Centre( wx.wxBOTH ) -- Connect Events UI.m_buttonApos:Connect( wx.wxID_ANY, wx.wxEVT_LEFT_DOWN, function(event) event:Skip() if mc.mcSignalGetState (mc.mcSignalGetHandle (inst, mc.OSIG_ENABLE3)) == 1 then mc.mcSignalSetState (mc.mcSignalGetHandle (inst, mc.ISIG_JOGAP), 1) end end ) UI.m_buttonApos:Connect( wx.wxID_ANY, wx.wxEVT_LEFT_UP, function(event) event:Skip() if mc.mcSignalGetState (mc.mcSignalGetHandle (inst, mc.OSIG_ENABLE3)) == 1 then mc.mcSignalSetState (mc.mcSignalGetHandle (inst, mc.ISIG_JOGAP), 0) end end ) UI.m_buttonBpos:Connect( wx.wxID_ANY, wx.wxEVT_LEFT_DOWN, function(event) event:Skip() if mc.mcSignalGetState (mc.mcSignalGetHandle (inst, mc.OSIG_ENABLE4)) == 1 then mc.mcSignalSetState (mc.mcSignalGetHandle (inst, mc.ISIG_JOGBP), 1) end end ) UI.m_buttonBpos:Connect( wx.wxID_ANY, wx.wxEVT_LEFT_UP, function(event) event:Skip() if mc.mcSignalGetState (mc.mcSignalGetHandle (inst, mc.OSIG_ENABLE4)) == 1 then mc.mcSignalSetState (mc.mcSignalGetHandle (inst, mc.ISIG_JOGBP), 0) end end ) UI.m_buttonCpos:Connect( wx.wxID_ANY, wx.wxEVT_LEFT_DOWN, function(event) event:Skip() if mc.mcSignalGetState (mc.mcSignalGetHandle (inst, mc.OSIG_ENABLE5)) == 1 then mc.mcSignalSetState (mc.mcSignalGetHandle (inst, mc.ISIG_JOGCP), 1) end end ) UI.m_buttonCpos:Connect( wx.wxID_ANY, wx.wxEVT_LEFT_UP, function(event) event:Skip() if mc.mcSignalGetState (mc.mcSignalGetHandle (inst, mc.OSIG_ENABLE5)) == 1 then mc.mcSignalSetState (mc.mcSignalGetHandle (inst, mc.ISIG_JOGCP), 0) end end ) UI.m_buttonYpos:Connect( wx.wxID_ANY, wx.wxEVT_LEFT_DOWN, function(event) event:Skip() if mc.mcSignalGetState (mc.mcSignalGetHandle (inst, mc.OSIG_ENABLE1)) == 1 then mc.mcSignalSetState (mc.mcSignalGetHandle (inst, mc.ISIG_JOGYP), 1) end end ) UI.m_buttonYpos:Connect( wx.wxID_ANY, wx.wxEVT_LEFT_UP, function(event) event:Skip() if mc.mcSignalGetState (mc.mcSignalGetHandle (inst, mc.OSIG_ENABLE1)) == 1 then mc.mcSignalSetState (mc.mcSignalGetHandle (inst, mc.ISIG_JOGYP), 0) end end ) UI.m_buttonZpos:Connect( wx.wxID_ANY, wx.wxEVT_LEFT_DOWN, function(event) event:Skip() if mc.mcSignalGetState (mc.mcSignalGetHandle (inst, mc.OSIG_ENABLE2)) == 1 then mc.mcSignalSetState (mc.mcSignalGetHandle (inst, mc.ISIG_JOGZP), 1) end end ) UI.m_buttonZpos:Connect( wx.wxID_ANY, wx.wxEVT_LEFT_UP, function(event) event:Skip() if mc.mcSignalGetState (mc.mcSignalGetHandle (inst, mc.OSIG_ENABLE2)) == 1 then mc.mcSignalSetState (mc.mcSignalGetHandle (inst, mc.ISIG_JOGZP), 0) end end ) UI.m_buttonXneg:Connect( wx.wxID_ANY, wx.wxEVT_LEFT_DOWN, function(event) event:Skip() if mc.mcSignalGetState (mc.mcSignalGetHandle (inst, mc.OSIG_ENABLE0)) == 1 then mc.mcSignalSetState (mc.mcSignalGetHandle (inst, mc.ISIG_JOGXN), 1) end end ) UI.m_buttonXneg:Connect( wx.wxID_ANY, wx.wxEVT_LEFT_UP, function(event) event:Skip() if mc.mcSignalGetState (mc.mcSignalGetHandle (inst, mc.OSIG_ENABLE0)) == 1 then mc.mcSignalSetState (mc.mcSignalGetHandle (inst, mc.ISIG_JOGXN), 0) end end ) --[[ UI.m_textCtrl1:Connect( wx.wxEVT_COMMAND_TEXT_ENTER, function(event) event:Skip() local val = UI.m_textCtrl1:GetValue() val = tonumber (val) mc.mcJogSetRate (inst, 0, val) end ) --]] UI.m_buttonXpos:Connect( wx.wxID_ANY, wx.wxEVT_LEFT_DOWN, function(event) event:Skip() if mc.mcSignalGetState (mc.mcSignalGetHandle (inst, mc.OSIG_ENABLE0)) == 1 then mc.mcSignalSetState (mc.mcSignalGetHandle (inst, mc.ISIG_JOGXP), 1) end end ) UI.m_buttonXpos:Connect( wx.wxID_ANY, wx.wxEVT_LEFT_UP, function(event) event:Skip() if mc.mcSignalGetState (mc.mcSignalGetHandle (inst, mc.OSIG_ENABLE0)) == 1 then mc.mcSignalSetState (mc.mcSignalGetHandle (inst, mc.ISIG_JOGXP), 0) end end ) UI.m_buttonAneg:Connect( wx.wxID_ANY, wx.wxEVT_LEFT_DOWN, function(event) event:Skip() if mc.mcSignalGetState (mc.mcSignalGetHandle (inst, mc.OSIG_ENABLE3)) == 1 then mc.mcSignalSetState (mc.mcSignalGetHandle (inst, mc.ISIG_JOGAN), 1) end end ) UI.m_buttonAneg:Connect( wx.wxID_ANY, wx.wxEVT_LEFT_UP, function(event) event:Skip() if mc.mcSignalGetState (mc.mcSignalGetHandle (inst, mc.OSIG_ENABLE3)) == 1 then mc.mcSignalSetState (mc.mcSignalGetHandle (inst, mc.ISIG_JOGAN), 0) end end ) UI.m_buttonBneg:Connect( wx.wxID_ANY, wx.wxEVT_LEFT_DOWN, function(event) event:Skip() if mc.mcSignalGetState (mc.mcSignalGetHandle (inst, mc.OSIG_ENABLE4)) == 1 then mc.mcSignalSetState (mc.mcSignalGetHandle (inst, mc.ISIG_JOGBN), 1) end end ) UI.m_buttonBneg:Connect( wx.wxID_ANY, wx.wxEVT_LEFT_UP, function(event) event:Skip() if mc.mcSignalGetState (mc.mcSignalGetHandle (inst, mc.OSIG_ENABLE4)) == 1 then mc.mcSignalSetState (mc.mcSignalGetHandle (inst, mc.ISIG_JOGBN), 0) end end ) UI.m_buttonCneg:Connect( wx.wxID_ANY, wx.wxEVT_LEFT_DOWN, function(event) event:Skip() if mc.mcSignalGetState (mc.mcSignalGetHandle (inst, mc.OSIG_ENABLE5)) == 1 then mc.mcSignalSetState (mc.mcSignalGetHandle (inst, mc.ISIG_JOGCN), 1) end end ) UI.m_buttonCneg:Connect( wx.wxID_ANY, wx.wxEVT_LEFT_UP, function(event) event:Skip() if mc.mcSignalGetState (mc.mcSignalGetHandle (inst, mc.OSIG_ENABLE5)) == 1 then mc.mcSignalSetState (mc.mcSignalGetHandle (inst, mc.ISIG_JOGCN), 0) end end ) UI.m_buttonYneg:Connect( wx.wxID_ANY, wx.wxEVT_LEFT_DOWN, function(event) event:Skip() if mc.mcSignalGetState (mc.mcSignalGetHandle (inst, mc.OSIG_ENABLE1)) == 1 then mc.mcSignalSetState (mc.mcSignalGetHandle (inst, mc.ISIG_JOGYN), 1) end end ) UI.m_buttonYneg:Connect( wx.wxID_ANY, wx.wxEVT_LEFT_UP, function(event) event:Skip() if mc.mcSignalGetState (mc.mcSignalGetHandle (inst, mc.OSIG_ENABLE1)) == 1 then mc.mcSignalSetState (mc.mcSignalGetHandle (inst, mc.ISIG_JOGYN), 0) end end ) UI.m_buttonZneg:Connect( wx.wxID_ANY, wx.wxEVT_LEFT_DOWN, function(event) event:Skip() if mc.mcSignalGetState (mc.mcSignalGetHandle (inst, mc.OSIG_ENABLE2)) == 1 then mc.mcSignalSetState (mc.mcSignalGetHandle (inst, mc.ISIG_JOGZN), 1) end end ) UI.m_buttonZneg:Connect( wx.wxID_ANY, wx.wxEVT_LEFT_UP, function(event) event:Skip() if mc.mcSignalGetState (mc.mcSignalGetHandle (inst, mc.OSIG_ENABLE2)) == 1 then mc.mcSignalSetState (mc.mcSignalGetHandle (inst, mc.ISIG_JOGZN), 0) end end ) -- Show Frame UI.MyFrame1:Show(true)