aboutsummaryrefslogtreecommitdiff
path: root/BoxerGui.py
diff options
context:
space:
mode:
Diffstat (limited to 'BoxerGui.py')
-rw-r--r--BoxerGui.py89
1 files changed, 89 insertions, 0 deletions
diff --git a/BoxerGui.py b/BoxerGui.py
new file mode 100644
index 0000000..b4d6258
--- /dev/null
+++ b/BoxerGui.py
@@ -0,0 +1,89 @@
+import FreeCAD
+from FreeCAD import Gui
+from PySide import QtGui, QtCore
+import Boxer, BoxerDockWidget
+
+class BoxerDocumentObserver:
+ def __init__(self):
+ pass
+
+# def slotCreatedDocument(self, doc):
+# print('slotCreatedDocument')
+
+ 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 slotCreatedObject(self, obj):
+# print('slotCreatedObject')
+
+# def slotDeletedObject(self, obj):
+# print('slotDeletedObject')
+
+# 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.generateButtonClick
+ 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 generateButtonClick(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()
+ self.removeBox()
+ doc = FreeCAD.ActiveDocument
+ Boxer.makeBox(doc, self.cfg)
+
+ def removeBox(self):
+ doc = FreeCAD.ActiveDocument
+
+ def rm(name):
+ o = getattr(doc, name, None);
+ if hasattr(doc, name):
+ doc.removeObject(name)
+
+ rm("Top")
+ rm("Back")
+ rm("Left")
+ rm("Front")
+ rm("Right")
+ rm("Bottom")
+
+gui = BoxerGui()
+gui.setupGui()