aboutsummaryrefslogtreecommitdiff
path: root/BoxerGui.py
diff options
context:
space:
mode:
Diffstat (limited to 'BoxerGui.py')
-rw-r--r--BoxerGui.py128
1 files changed, 63 insertions, 65 deletions
diff --git a/BoxerGui.py b/BoxerGui.py
index 5cb8315..2242e4a 100644
--- a/BoxerGui.py
+++ b/BoxerGui.py
@@ -3,23 +3,24 @@ from FreeCAD import Gui
from PySide import QtGui, QtCore
import Boxer, BoxerDockWidget
+
class BoxerDocumentObserver:
- def __init__(self):
- pass
+ def __init__(self):
+ pass
# def slotCreatedDocument(self, doc):
# print('slotCreatedDocument')
- def slotDeletedDocument(self, doc):
- print('slotDeletedDocument')
- gui.dockWidget.ui.generateButton.setEnabled(False)
+ def slotDeletedDocument(self, doc):
+ print('slotDeletedDocument')
+ gui.dockWidget.ui.generateButton.setEnabled(False)
# def slotRelabelDocument(self, doc):
# print('slotRelabelDocument')
- def slotActivateDocument(self, doc):
- print('slotActivateDocument')
- gui.dockWidget.ui.generateButton.setEnabled(True)
+ def slotActivateDocument(self, doc):
+ print('slotActivateDocument')
+ gui.dockWidget.ui.generateButton.setEnabled(True)
# def slotCreatedObject(self, obj):
# print('slotCreatedObject')
@@ -30,65 +31,62 @@ class BoxerDocumentObserver:
# def slotChangedObject(self, obj, prop):
# print('slotChangedObject')
+
class BoxerGui(object):
+ def __init__(self):
+ self.cfg = Boxer.BoxCfg().outerDimmensions(100, 100, 100)
+ self.cfg.notchUnitWidth = 10
+ self.cfg.thickness = 10
+
+ def setupGui(self):
+ doc = FreeCAD.ActiveDocument
+
+ self.dockWidget = dockWidget = QtGui.QDockWidget()
+ dockWidget.setWindowTitle("Box config")
+ dockWidget.ui = BoxerDockWidget.Ui_BoxerDockWidget()
+ dockWidget.generateClicked = self.generateButtonClicked
+ dockWidget.fitAllClicked = self.fitAllButtonClicked
+ dockWidget.ui.setupUi(dockWidget)
+ dockWidget.ui.generateButton.setEnabled(doc is not None)
+ dockWidget.ui.outerWidth.setValue(self.cfg.outerWidth)
+ dockWidget.ui.outerHeight.setValue(self.cfg.outerHeight)
+ dockWidget.ui.outerDepth.setValue(self.cfg.outerDepth)
+ dockWidget.ui.thickness.setValue(self.cfg.thickness)
+ dockWidget.ui.notchSize.setValue(self.cfg.notchUnitWidth)
+
+ self.documentObserver = BoxerDocumentObserver()
+ FreeCAD.addDocumentObserver(self.documentObserver)
+
+ def generateButtonClicked(self):
+ ui = self.dockWidget.ui
+
+ self.cfg.outerDimmensions(ui.outerWidth.value(), ui.outerHeight.value(), ui.outerDepth.value())
+ self.cfg.thickness = self.dockWidget.ui.thickness.value()
+ self.cfg.notchSize = self.dockWidget.ui.notchSize.value()
+
+ self.cfg.prt()
+ doc = FreeCAD.ActiveDocument
+ Boxer.removeEverything(doc)
+ objects = Boxer.make(doc, self.cfg)
+
+ itemsToSelect = objects['parts']
+
+ extrudes = objects['extrudes']
+ if extrudes is not None:
+ itemsToSelect = extrudes
+
+ Gui.Selection.clearSelection()
+ [Gui.Selection.addSelection(e) for e in itemsToSelect.values()]
+ Gui.SendMsgToActiveView("ViewSelection")
+ Gui.Selection.clearSelection()
+
+ def removeBox(self):
+ doc = FreeCAD.ActiveDocument
+ Boxer.removeEverything(doc)
+
+ def fitAllButtonClicked(self):
+ Gui.SendMsgToActiveView("ViewFit")
- def __init__(self):
- self.cfg = Boxer.BoxCfg().outerDimmensions(100, 100, 100)
- self.cfg.notchUnitWidth = 10
- self.cfg.thickness = 10
-
- def setupGui(self):
- doc = FreeCAD.ActiveDocument
-
- self.dockWidget = dockWidget = QtGui.QDockWidget()
- dockWidget.setWindowTitle("Box config")
- dockWidget.ui = BoxerDockWidget.Ui_BoxerDockWidget()
- dockWidget.generateClicked = self.generateButtonClicked
- dockWidget.fitAllClicked = self.fitAllButtonClicked
- dockWidget.ui.setupUi(dockWidget)
- dockWidget.ui.generateButton.setEnabled(doc is not None)
- dockWidget.ui.outerWidth.setValue(self.cfg.outerWidth)
- dockWidget.ui.outerHeight.setValue(self.cfg.outerHeight)
- dockWidget.ui.outerDepth.setValue(self.cfg.outerDepth)
- dockWidget.ui.thickness.setValue(self.cfg.thickness)
- dockWidget.ui.notchSize.setValue(self.cfg.notchUnitWidth)
-
- self.documentObserver = BoxerDocumentObserver()
- FreeCAD.addDocumentObserver(self.documentObserver)
-
- def generateButtonClicked(self):
- ui = self.dockWidget.ui
-
- self.cfg.outerDimmensions(
- ui.outerWidth.value(),
- ui.outerHeight.value(),
- ui.outerDepth.value())
- self.cfg.thickness = self.dockWidget.ui.thickness.value()
- self.cfg.notchSize = self.dockWidget.ui.notchSize.value()
-
- self.cfg.prt()
- doc = FreeCAD.ActiveDocument
- Boxer.removeEverything(doc)
- objects = Boxer.make(doc, self.cfg)
-
- itemsToSelect = objects['parts']
-
- extrudes = objects['extrudes']
- if extrudes is not None:
- itemsToSelect = extrudes
-
- Gui.Selection.clearSelection()
- [Gui.Selection.addSelection(e) for e in itemsToSelect.values()]
- Gui.SendMsgToActiveView("ViewSelection")
- Gui.Selection.clearSelection()
-
-
- def removeBox(self):
- doc = FreeCAD.ActiveDocument
- Boxer.removeEverything(doc)
-
- def fitAllButtonClicked(self):
- Gui.SendMsgToActiveView("ViewFit")
gui = BoxerGui()
gui.setupGui()