toolbarUtil.NormalButton(self.toolbar2, self.OnAutoPlace, 'autoplace.png', 'Automaticly organize the objects on the platform.')\r
toolbarUtil.NormalButton(self.toolbar2, self.OnSlice, 'slice.png', 'Slice to project into a gcode file.')\r
self.toolbar2.Realize()\r
+\r
+ self.toolbar3 = toolbarUtil.Toolbar(self.panel)\r
+ self.mirrorX = toolbarUtil.ToggleButton(self.toolbar3, 'flip_x', 'object-mirror-x-on.png', 'object-mirror-x-off.png', 'Mirror X', callback=self.OnMirrorChange)\r
+ self.mirrorY = toolbarUtil.ToggleButton(self.toolbar3, 'flip_y', 'object-mirror-y-on.png', 'object-mirror-y-off.png', 'Mirror Y', callback=self.OnMirrorChange)\r
+ self.mirrorZ = toolbarUtil.ToggleButton(self.toolbar3, 'flip_z', 'object-mirror-z-on.png', 'object-mirror-z-off.png', 'Mirror Z', callback=self.OnMirrorChange)\r
+ self.toolbar3.AddSeparator()\r
+\r
+ # Swap\r
+ self.swapXZ = toolbarUtil.ToggleButton(self.toolbar3, 'swap_xz', 'object-swap-xz-on.png', 'object-swap-xz-off.png', 'Swap XZ', callback=self.OnMirrorChange)\r
+ self.swapYZ = toolbarUtil.ToggleButton(self.toolbar3, 'swap_yz', 'object-swap-yz-on.png', 'object-swap-yz-off.png', 'Swap YZ', callback=self.OnMirrorChange)\r
+ self.toolbar3.Realize()\r
\r
sizer = wx.GridBagSizer(2,2)\r
self.panel.SetSizer(sizer)\r
sizer.Add(self.toolbar2, (0,1), span=(1,2), flag=wx.EXPAND|wx.LEFT|wx.RIGHT)\r
sizer.Add(self.preview, (1,0), span=(4,1), flag=wx.EXPAND)\r
sizer.Add(self.listbox, (1,1), span=(1,2), flag=wx.EXPAND)\r
- sizer.Add(self.addButton, (2,1), span=(1,1))\r
- sizer.Add(self.remButton, (2,2), span=(1,1))\r
- sizer.Add(self.sliceButton, (3,1), span=(1,1))\r
- sizer.Add(self.autoPlaceButton, (3,2), span=(1,1))\r
+ sizer.Add(self.toolbar3, (2,1), span=(1,2), flag=wx.EXPAND|wx.LEFT|wx.RIGHT)\r
+ sizer.Add(self.addButton, (3,1), span=(1,1))\r
+ sizer.Add(self.remButton, (3,2), span=(1,1))\r
+ sizer.Add(self.sliceButton, (4,1), span=(1,1))\r
+ sizer.Add(self.autoPlaceButton, (4,2), span=(1,1))\r
sizer.AddGrowableCol(0)\r
sizer.AddGrowableRow(1)\r
\r
self.rotateCtrl.SetValue(int(self.selection.rotate))\r
if int(profile.getPreference('extruder_amount')) > 1:\r
self.extruderCtrl.SetValue(str(self.selection.extruder+1))\r
+\r
+ self.mirrorX.SetValue(self.selection.flipX)\r
+ self.mirrorY.SetValue(self.selection.flipY)\r
+ self.mirrorZ.SetValue(self.selection.flipZ)\r
+ self.swapXZ.SetValue(self.selection.swapXZ)\r
+ self.swapYZ.SetValue(self.selection.swapYZ)\r
+ \r
self.preview.Refresh()\r
\r
def OnAddModel(self, e):\r
return\r
self.selection.extruder = int(self.extruderCtrl.GetValue()) - 1\r
self.preview.Refresh()\r
+ \r
+ def OnMirrorChange(self):\r
+ if self.selection == None:\r
+ return\r
+ self.selection.flipX = self.mirrorX.GetValue()\r
+ self.selection.flipY = self.mirrorY.GetValue()\r
+ self.selection.flipZ = self.mirrorZ.GetValue()\r
+ self.selection.swapXZ = self.swapXZ.GetValue()\r
+ self.selection.swapYZ = self.swapYZ.GetValue()\r
+ self.selection.updateModelTransform()\r
+ self.preview.Refresh()\r
\r
class PreviewGLCanvas(glcanvas.GLCanvas):\r
def __init__(self, parent, projectPlannerWindow):\r