示例#1
0
class MachinekitWorkbench(Workbench):
    '''Registration and loading of the Machinekit workbench'''
    import machinekit
    Icon = machinekit.FileResource('machinekiticon.svg')
    MenuText = "Machinekit"
    ToolTip = "Workbench to interact with machinkit controlling a CNC"

    def Initialize(self):
        import FreeCADGui
        import MachinekitPreferences
        FreeCADGui.addPreferencePage(MachinekitPreferences.Page, 'Machinekit')
        FreeCADGui.addIcon('preferences-machinekit', self.Icon)

        import MachinekitCommands
        MachinekitCommands.SetupToolbar(self)
        MachinekitCommands.SetupMenu(self)
        pass

    def Activated(self):
        import MachinekitCommands
        MachinekitCommands.Activated()

    def Deactivated(self):
        import MachinekitCommands
        MachinekitCommands.Deactivated()
示例#2
0
 def GetResources(self):
     PathLog.track()
     return {
         'Pixmap': machinekit.FileResource('machinekiticon.png'),
         'MenuText': 'Jog',
         'ToolTip': 'Jog and DRO interface for machine setup'
     }
def Setup():
    global _setup
    if not _setup:
        import FreeCADGui
        import machinekit

        icon = machinekit.FileResource('machinekiticon.svg')
        FreeCADGui.addIcon('preferences-machinekit', icon)
        FreeCADGui.addPreferencePage(PageGeneral, 'Machinekit')
        FreeCADGui.addPreferencePage(PageHUD, 'Machinekit')
        _setup = True
    def __init__(self, mk):
        self.mk = mk
        self.ui = FreeCADGui.PySideUic.loadUi(
            machinekit.FileResource('status.ui'), self)
        palette = PySide.QtGui.QPalette()
        palette.setColor(PySide.QtGui.QPalette.Background,
                         PySide.QtGui.QColor(0xffd75e))
        self.ui.dockWidgetContents.setAutoFillBackground(True)
        self.ui.dockWidgetContents.setPalette(palette)

        self.ui.statusEStop.clicked.connect(self.toggleEstop)
        self.ui.statusPower.clicked.connect(self.togglePower)
        self.ui.statusHome.clicked.connect(self.toggleHomed)

        self.updateUI()
        self.mk.statusUpdate.connect(self.changed)
    def __init__(self, mk):
        self.mk = mk
        self.ui = FreeCADGui.PySideUic.loadUi(
            machinekit.FileResource('combo.ui'))
        while 0 != self.ui.tabWidget.count():
            self.ui.tabWidget.removeTab(0)

        self.jog = MachinekitJog.Jog(mk)
        self.ui.tabWidget.addTab(self.jog.ui.dockWidgetContents, 'Jog')
        self.exe = MachinekitExecute.Execute(mk)
        self.ui.tabWidget.addTab(self.exe.ui.dockWidgetContents, 'Execute')
        self.status = MachinekitStatus.Status(mk)
        self.ui.tabWidget.addTab(self.status.ui.dockWidgetContents, 'Status')

        self.hud = MachinekitHud.Hud(mk, FreeCADGui.ActiveDocument.ActiveView)
        self.mk.statusUpdate.connect(self.changed)
        self.updateTitle()
示例#6
0
class MachinekitWorkbench(Workbench):
    '''Registration and loading of the Machinekit workbench'''
    import machinekit
    Icon = machinekit.FileResource('machinekiticon.svg')
    MenuText = "Machinekit"
    ToolTip = "Workbench to interact with machinkit controlling a CNC"

    def Initialize(self):
        import MachinekitPreferences
        MachinekitPreferences.Setup()

        import MachinekitCommands
        MachinekitCommands.SetupToolbar(self)
        MachinekitCommands.SetupMenu(self)

    def Activated(self):
        import MachinekitCommands
        MachinekitCommands.Activated()

    def Deactivated(self):
        import MachinekitCommands
        MachinekitCommands.Deactivated()
示例#7
0
    def __init__(self, mk):
        PathLog.track()
        self.mk = mk
        self.ui = FreeCADGui.PySideUic.loadUi(
            machinekit.FileResource('jog.ui'))
        palette = PySide.QtGui.QPalette()
        palette.setColor(PySide.QtGui.QPalette.Background,
                         PySide.QtGui.QColor(0xffd75e))
        self.ui.dockWidgetContents.setAutoFillBackground(True)
        self.ui.dockWidgetContents.setPalette(palette)

        def setupJogButton(b, axes, icon, slot=None):
            b.setIcon(machinekit.IconResource(icon))
            b.setText('')
            if slot:
                b.clicked.connect(slot)
            else:
                b.clicked.connect(lambda: self.jogAxes(axes))
                b.pressed.connect(lambda: self.jogAxesBegin(axes))
                b.released.connect(lambda: self.jogAxesEnd(axes))

        def setupSetButton(b, axes, widget, width):
            b.setMaximumWidth(width)
            b.clicked.connect(lambda: self.setPosition(axes, widget))

        setupJogButton(self.ui.jogN, 'Y', 'arrow-up.svg')
        setupJogButton(self.ui.jogNE, 'XY', 'arrow-right-up.svg')
        setupJogButton(self.ui.jogE, 'X', 'arrow-right.svg')
        setupJogButton(self.ui.jogSE, 'Xy', 'arrow-right-down.svg')
        setupJogButton(self.ui.jogS, 'y', 'arrow-down.svg')
        setupJogButton(self.ui.jogSW, 'xy', 'arrow-left-down.svg')
        setupJogButton(self.ui.jogW, 'x', 'arrow-left.svg')
        setupJogButton(self.ui.jogNW, 'xY', 'arrow-left-up.svg')
        setupJogButton(self.ui.jogU, 'Z', 'arrow-up.svg')
        setupJogButton(self.ui.jogD, 'z', 'arrow-down.svg')
        setupJogButton(self.ui.jog0, '', 'home-xy.svg',
                       lambda: self.jogAxesZero('-'))
        setupJogButton(self.ui.jogZ0, '', 'home-z.svg',
                       lambda: self.jogAxesZero('|'))
        setupJogButton(self.ui.jogStop, '', 'stop.svg',
                       lambda: self.jogAxesStop())

        buttonWidth = self.ui.setX.size().height()
        setupSetButton(self.ui.setX, 'x', self.ui.posX, buttonWidth)
        setupSetButton(self.ui.setY, 'y', self.ui.posY, buttonWidth)
        setupSetButton(self.ui.setZ, 'z', self.ui.posZ, buttonWidth)
        setupSetButton(self.ui.setX0, 'x', None, buttonWidth)
        setupSetButton(self.ui.setY0, 'y', None, buttonWidth)
        setupSetButton(self.ui.setZ0, 'z', None, buttonWidth)
        setupSetButton(self.ui.setXYZ0, 'xyz', None, buttonWidth)
        self.ui.jogStop.setIconSize(
            PySide.QtCore.QSize(3 * buttonWidth, 3 * buttonWidth))

        self.jogGoto = None
        self.ui.jogScan.clicked.connect(lambda: self.scanJob(True))
        self.ui.jogScanBackwards.clicked.connect(lambda: self.scanJob(False))

        FreeCADGui.Selection.addObserver(self)

        self.isSetup = False
        self.updateUI()

        self.mk.statusUpdate.connect(self.changed)
        machinekit.jog = self
示例#8
0
    def __init__(self, mk):
        self.mk = mk
        self.ui = FreeCADGui.PySideUic.loadUi(
            machinekit.FileResource('execute.ui'), self)
        palette = PySide.QtGui.QPalette()
        palette.setColor(PySide.QtGui.QPalette.Background,
                         PySide.QtGui.QColor(0xffd75e))
        self.ui.dockWidgetContents.setAutoFillBackground(True)
        self.ui.dockWidgetContents.setPalette(palette)

        self.oi = 'v'
        if True:
            lo = PySide.QtGui.QHBoxLayout()
            lo.setSpacing(0)
            lo.setContentsMargins(0, 0, 0, 0)

            tb = PySide.QtGui.QFrame()
            tb.setFrameShape(PySide.QtGui.QFrame.Box)
            tb.setLayout(lo)
            #tb.setContentsMargins(0, 0, 0, 0)

            self.title = PySide.QtGui.QLabel()
            self.title.setText('-.-')
            self.title.setContentsMargins(0, 0, 0, 0)
            lo.addWidget(self.title, 10)

            self.ob = PySide.QtGui.QPushButton()
            #self.ob.setFlat(False)
            self.ob.setIcon(PySide.QtGui.QApplication.style().standardIcon(
                PySide.QtGui.QStyle.SP_TitleBarUnshadeButton))
            self.ob.clicked.connect(self.toggleOrientation)
            lo.addWidget(self.ob)

            bs = None
            for b in self.ui.findChildren(PySide.QtGui.QAbstractButton):
                if 'qt_dockwidget' in b.objectName():
                    bt = PySide.QtGui.QPushButton()
                    bt.setIcon(b.icon())
                    bs = b.size()
                    if bs.height() < bs.width():
                        bs.setWidth(bs.height())
                    else:
                        bs.setHeight(bs.width())
                    bt.setMaximumSize(bs)
                    #bt.setFlat(False)
                    bt.setContentsMargins(0, 0, 0, 0)
                    bt.clicked.connect(b.click)
                    lo.addWidget(bt)
            if bs:
                self.title.setMaximumHeight(bs.height())
                self.ob.setMaximumSize(bs)
                #tb.setMaximumHeight(bs.height())

            self.ui.setTitleBarWidget(tb)

        self.job = None

        self.ui.load.clicked.connect(self.executeUpload)

        self.ui.run.clicked.connect(self.executeRun)
        self.ui.step.clicked.connect(self.executeStep)
        self.ui.pause.clicked.connect(self.executePause)
        self.ui.stop.clicked.connect(self.executeStop)
        self.ui.scaleInt.valueChanged.connect(self.executeScaleInt)
        self.ui.scaleInt.sliderReleased.connect(self.executeScaleVal)
        self.ui.scaleVal.editingFinished.connect(self.executeScaleVal)

        self.ui.status.setText('')
        rect = self.ui.geometry()
        self.ui.resize(rect.width(), 0)

        self.observer = TreeSelectionObserver(self.objectSelectionChanged)
        FreeCADGui.Selection.addObserver(self.observer)
        self.objectSelectionChanged()

        self.updateOverride()
        self.updateJob(self.mk.getJob())
        self.updateUI()
        self.toolChange = MachinekitManualToolChange.Controller(self.mk)
        machinekit.execute = self
        self.mk.statusUpdate.connect(self.changed)
        self.mk.jobUpdate.connect(self.updateJob)
        if not self.mk.getJob():
            self.mk.updateJob()
示例#9
0
 def GetResources(self):
     return {
         'Pixmap': machinekit.FileResource('machinekiticon.png'),
         'MenuText': 'Hud',
         'ToolTip': 'HUD DRO interface for machine setup'
     }
示例#10
0
 def GetResources(self):
     return {
         'Pixmap': machinekit.FileResource('machinekiticon.png'),
         'MenuText': 'Execute',
         'ToolTip': 'Interface for controlling file execution'
     }
示例#11
0
 def __init__(self, parent=None):
     import FreeCADGui
     import machinekit
     self.form = FreeCADGui.PySideUic.loadUi(machinekit.FileResource('preferences.ui'))
 def GetResources(self):
     return {
             'Pixmap'    : machinekit.FileResource('machinekiticon.png'),
             'MenuText'  : 'Combo',
             'ToolTip'   : 'Combo interface with all sub-interfaces'
             }
 def __init__(self, parent=None):
     import FreeCADGui
     import machinekit
     self.form = FreeCADGui.PySideUic.loadUi(
         machinekit.FileResource('preferences.ui'))
     self.form.restServers.itemChanged.connect(self.itemChanged)