self.rotate.SetRange(0, 360)\r
self.toolbar2.AddControl(self.rotate)\r
self.Bind(wx.EVT_SPINCTRL, self.OnRotate, self.rotate)\r
- \r
+\r
+ self.scaleMax = wx.Button(self.toolbar, -1, 'Max size', size=(21*3.5,21))\r
+ self.toolbar.AddControl(self.scaleMax)\r
+ self.Bind(wx.EVT_BUTTON, self.OnScaleMax, self.scaleMax)\r
+\r
self.toolbar2.Realize()\r
self.updateToolbar()\r
\r
profile.putProfileSetting('model_scale', self.scale.GetValue())\r
self.updateModelTransform()\r
\r
+ def OnScaleMax(self, e):\r
+ if self.triangleMesh == None:\r
+ return\r
+ scale = float(self.scale.GetValue())\r
+ vMin = self.triangleMesh.getMinimum() / scale\r
+ vMax = self.triangleMesh.getMaximum() / scale\r
+ scaleX1 = (self.machineSize.x - self.machineCenter.x) / ((vMax.x - vMin.x) / 2)\r
+ scaleY1 = (self.machineSize.y - self.machineCenter.y) / ((vMax.y - vMin.y) / 2)\r
+ scaleX2 = (self.machineCenter.x) / ((vMax.x - vMin.x) / 2)\r
+ scaleY2 = (self.machineCenter.y) / ((vMax.y - vMin.y) / 2)\r
+ scaleZ = self.machineSize.z / (vMax.z - vMin.z)\r
+ scale = min(scaleX1, scaleY1, scaleX2, scaleY2, scaleZ)\r
+ self.scale.SetValue(str(scale))\r
+ profile.putProfileSetting('model_scale', self.scale.GetValue())\r
+ self.updateModelTransform()\r
+ \r
def OnRotate(self, e):\r
profile.putProfileSetting('model_rotate_base', self.rotate.GetValue())\r
self.updateModelTransform()\r