chiark / gitweb /
Always use machine size / 2 as machine center and remove the setting. Also fixed...
authordaid303 <daid303@gmail.com>
Tue, 4 Dec 2012 17:29:50 +0000 (18:29 +0100)
committerdaid303 <daid303@gmail.com>
Tue, 4 Dec 2012 17:29:50 +0000 (18:29 +0100)
Cura/cura_sf/fabmetheus_utilities/settings.py
Cura/gui/configWizard.py
Cura/gui/flatSlicerWindow.py
Cura/gui/mainWindow.py
Cura/gui/preview3d.py
Cura/gui/projectPlanner.py
Cura/gui/simpleMode.py
Cura/gui/sliceProgessPanel.py
Cura/util/profile.py
Cura/util/sliceRun.py
Cura/util/svg.py

index 92aa10991d17d1f041f2a843efe80633c861efdd..7dddce312ed70a2fea3bd5e8b852f98054ef77b3 100644 (file)
@@ -114,8 +114,8 @@ def getProfileInformation():
                        'SwapYZ': storedSetting("swap_yz"),
                        'Scale': storedSettingFloat("model_scale"),
                        'Rotate': storedSettingFloat("model_rotate_base"),
-                       'CenterX': storedSettingFloat("machine_center_x"),
-                       'CenterY': storedSettingFloat("machine_center_y"),
+                       'CenterX': lambda setting: profile.getProfileSettingFloat('object_center_x') if profile.getProfileSettingFloat('object_center_x') > 0 else profile.getPreferenceFloat("machine_width") / 2,
+                       'CenterY': lambda setting: profile.getProfileSettingFloat('object_center_y') if profile.getProfileSettingFloat('object_center_y') > 0 else profile.getPreferenceFloat("machine_depth") / 2,
                        'AlternativeCenterFile': storedSetting("alternative_center"),
                },'scale': {
                        'Activate_Scale': "False",
@@ -176,8 +176,8 @@ def getProfileInformation():
                        'Thread_Sequence_Choice': storedSetting('sequence'),
                },'multiply': {
                        'Activate_Multiply': "False",
-                       'Center_X_mm': storedSettingFloat("machine_center_x"),
-                       'Center_Y_mm': storedSettingFloat("machine_center_y"),
+                       'Center_X_mm': lambda setting: profile.getProfileSettingFloat('object_center_x') if profile.getProfileSettingFloat('object_center_x') > 0 else profile.getPreferenceFloat("machine_width") / 2,
+                       'Center_Y_mm': lambda setting: profile.getProfileSettingFloat('object_center_y') if profile.getProfileSettingFloat('object_center_y') > 0 else profile.getPreferenceFloat("machine_depth") / 2,
                        'Number_of_Columns_integer': storedSetting('model_multiply_x'),
                        'Number_of_Rows_integer': storedSetting('model_multiply_y'),
                        'Reverse_Sequence_every_Odd_Layer': DEFSET,
index 50f6f8b709ac8ec88b4af5e2b1741eaeff8b7b04..5965779a863f61821a0a9f57e47af6240ba83b7f 100644 (file)
@@ -226,8 +226,6 @@ class RepRapInfoPage(InfoPage):
                profile.putPreference('machine_depth', self.machineDepth.GetValue())\r
                profile.putPreference('machine_height', self.machineHeight.GetValue())\r
                profile.putProfileSetting('nozzle_size', self.nozzleSize.GetValue())\r
-               profile.putProfileSetting('machine_center_x', profile.getPreferenceFloat('machine_width') / 2)\r
-               profile.putProfileSetting('machine_center_y', profile.getPreferenceFloat('machine_depth') / 2)\r
                profile.putProfileSetting('wall_thickness', float(profile.getProfileSettingFloat('nozzle_size')) * 2)\r
                profile.putPreference('has_heated_bed', str(self.heatedBed.GetValue()))\r
 \r
@@ -255,8 +253,6 @@ class MachineSelectPage(InfoPage):
                        profile.putPreference('machine_height', '200')\r
                        profile.putPreference('machine_type', 'ultimaker')\r
                        profile.putProfileSetting('nozzle_size', '0.4')\r
-                       profile.putProfileSetting('machine_center_x', '100')\r
-                       profile.putProfileSetting('machine_center_y', '100')\r
                else:\r
                        profile.putPreference('machine_width', '80')\r
                        profile.putPreference('machine_depth', '80')\r
@@ -264,8 +260,6 @@ class MachineSelectPage(InfoPage):
                        profile.putPreference('machine_type', 'reprap')\r
                        profile.putPreference('startMode', 'Normal')\r
                        profile.putProfileSetting('nozzle_size', '0.5')\r
-                       profile.putProfileSetting('machine_center_x', '40')\r
-                       profile.putProfileSetting('machine_center_y', '40')\r
                profile.putProfileSetting('wall_thickness', float(profile.getProfileSetting('nozzle_size')) * 2)\r
 \r
 class FirmwareUpgradePage(InfoPage):\r
index 5f28767bf48e910d23cf2a948bd34fbd4bc40a99..4c8f1d913a36aa85f4f2b8a785981007ab9981e6 100644 (file)
@@ -84,7 +84,7 @@ class flatSlicerWindow(wx.Frame):
                if dlg.ShowModal() == wx.ID_OK:
                        self.filename = dlg.GetPath()
                        self.svg = svg.SVG(self.filename)
-                       self.svg.center(complex(profile.getProfileSettingFloat('machine_center_x'), profile.getProfileSettingFloat('machine_center_y')))
+                       self.svg.center(complex(profile.getPreferenceFloat('machine_width')/2, profile.getPreferenceFloat('machine_depth')/2))
                        self.preview.Refresh()
                dlg.Destroy()
 
index 98a57c5d77c81dd00f4e96256a3fee99a3a3bcdb..f20e78d48eaf4bbb2d3b3ef8f43cfb37afe6d020 100644 (file)
@@ -182,12 +182,6 @@ class mainWindow(configBase.configWindowBase):
                configBase.TitleRow(left, "Machine size")
                c = configBase.SettingRow(left, "Nozzle size (mm)", 'nozzle_size', '0.4', 'The nozzle size is very important, this is used to calculate the line width of the infill, and used to calculate the amount of outside wall lines and thickness for the wall thickness you entered in the print settings.')
                validators.validFloat(c, 0.1, 10.0)
-               c = configBase.SettingRow(left, "Machine center X (mm)", 'machine_center_x', '100', 'The center of your machine, your print will be placed at this location')
-               validators.validInt(c, 10)
-               configBase.settingNotify(c, self.preview3d.updateCenterX)
-               c = configBase.SettingRow(left, "Machine center Y (mm)", 'machine_center_y', '100', 'The center of your machine, your print will be placed at this location')
-               validators.validInt(c, 10)
-               configBase.settingNotify(c, self.preview3d.updateCenterY)
 
                configBase.TitleRow(left, "Skirt")
                c = configBase.SettingRow(left, "Line count", 'skirt_line_count', '1', 'The skirt is a line drawn around the object at the first layer. This helps to prime your extruder, and to see if the object fits on your platform.\nSetting this to 0 will disable the skirt. Multiple skirt lines can help priming your extruder better for small objects.')
@@ -332,10 +326,6 @@ class mainWindow(configBase.configWindowBase):
                dlg.Destroy()
                if result:
                        profile.resetGlobalProfile()
-                       if profile.getPreference('machine_type') == 'reprap':
-                               profile.putProfileSetting('nozzle_size', '0.5')
-                               profile.putProfileSetting('machine_center_x', '40')
-                               profile.putProfileSetting('machine_center_y', '40')
                        self.updateProfileToControls()
        
        def OnBatchRun(self, e):
index 0fe9276e98d3291454bfac38213a9230758043a2..2e62d41f3430ea73553f9927941edb699d4693c9 100644 (file)
@@ -45,7 +45,7 @@ class previewPanel(wx.Panel):
                self.objectsMaxV = None\r
                self.loadThread = None\r
                self.machineSize = util3d.Vector3(profile.getPreferenceFloat('machine_width'), profile.getPreferenceFloat('machine_depth'), profile.getPreferenceFloat('machine_height'))\r
-               self.machineCenter = util3d.Vector3(float(profile.getProfileSetting('machine_center_x')), float(profile.getProfileSetting('machine_center_y')), 0)\r
+               self.machineCenter = util3d.Vector3(self.machineSize.x / 2, self.machineSize.y / 2, 0)\r
 \r
                self.glCanvas = PreviewGLCanvas(self)\r
                #Create the popup window\r
@@ -231,14 +231,6 @@ class previewPanel(wx.Panel):
 \r
        def OnLayerNrChange(self, e):\r
                self.glCanvas.Refresh()\r
-\r
-       def updateCenterX(self):\r
-               self.machineCenter.x = profile.getProfileSettingFloat('machine_center_x')\r
-               self.glCanvas.Refresh()\r
-\r
-       def updateCenterY(self):\r
-               self.machineCenter.y = profile.getProfileSettingFloat('machine_center_y')\r
-               self.glCanvas.Refresh()\r
        \r
        def setViewMode(self, mode):\r
                if mode == "Normal":\r
index c83e1af1844935e470e61f8b8669b770fda679ef..a6b4244ab7c76fc74f1333a4397c3bd26345c0f0 100644 (file)
@@ -596,8 +596,8 @@ class projectPlanner(wx.Frame):
                        for item in self.list:\r
                                if item.profile != None and os.path.isfile(item.profile):\r
                                        profile.loadGlobalProfile(item.profile)\r
-                               put('machine_center_x', item.centerX - self.extruderOffset[item.extruder][0])\r
-                               put('machine_center_y', item.centerY - self.extruderOffset[item.extruder][1])\r
+                               put('object_center_x', item.centerX - self.extruderOffset[item.extruder][0])\r
+                               put('object_center_y', item.centerY - self.extruderOffset[item.extruder][1])\r
                                put('model_scale', item.scale)\r
                                put('flip_x', item.flipX)\r
                                put('flip_y', item.flipY)\r
@@ -639,8 +639,8 @@ class projectPlanner(wx.Frame):
                        \r
                        action = Action()\r
                        action.sliceCmd = sliceRun.getSliceCommand(resultFilename + "_temp_.stl")\r
-                       action.centerX = profile.getProfileSettingFloat('machine_center_x')\r
-                       action.centerY = profile.getProfileSettingFloat('machine_center_y')\r
+                       action.centerX = profile.getPreferenceFloat('machine_width') / 2\r
+                       action.centerY = profile.getPreferenceFloat('machine_depth') / 2\r
                        action.temperature = profile.getProfileSettingFloat('print_temperature')\r
                        action.extruder = 0\r
                        action.filename = resultFilename + "_temp_.stl"\r
@@ -672,6 +672,8 @@ class projectPlanner(wx.Frame):
                        return\r
                self.selection.rotate = float(self.rotateCtrl.GetValue())\r
                self.selection.updateModelTransform()\r
+               if self.alwaysAutoPlace:\r
+                       self.OnAutoPlace(None)\r
                self.preview.Refresh()\r
 \r
        def OnExtruderChange(self, e):\r
@@ -689,6 +691,8 @@ class projectPlanner(wx.Frame):
                self.selection.swapXZ = self.swapXZ.GetValue()\r
                self.selection.swapYZ = self.swapYZ.GetValue()\r
                self.selection.updateModelTransform()\r
+               if self.alwaysAutoPlace:\r
+                       self.OnAutoPlace(None)\r
                self.preview.Refresh()\r
 \r
        def getExtraHeadSize(self):\r
@@ -982,8 +986,8 @@ class ProjectSliceProgressWindow(wx.Frame):
                                        line = p.stdout.readline()\r
                                self.returnCode = p.wait()\r
                        \r
-                       put('machine_center_x', action.centerX - self.extruderOffset[action.extruder][0])\r
-                       put('machine_center_y', action.centerY - self.extruderOffset[action.extruder][1])\r
+                       put('object_center_x', action.centerX - self.extruderOffset[action.extruder][0])\r
+                       put('object_center_y', action.centerY - self.extruderOffset[action.extruder][1])\r
                        put('clear_z', action.clearZ)\r
                        put('extruder', action.extruder)\r
                        put('print_temperature', action.temperature)\r
index 1c0e5867295b0626eb61ffab5451261b7934a1d5..69eb7b4416211a7c5d35d06bc0152733f91eda5d 100644 (file)
@@ -187,8 +187,6 @@ class simpleModeWindow(configBase.configWindowBase):
                put('print_speed', '50')
                put('print_temperature', '220')
                put('support', 'None')
-               #put('machine_center_x', '100')
-               #put('machine_center_y', '100')
                put('retraction_enable', 'False')
                put('retraction_min_travel', '5.0')
                put('retraction_speed', '40.0')
index fce06a4bcda22d4b01291845ce967e99fbdb946d..52411cf4ae298b27bcb15e936a48be5f29c17436 100644 (file)
@@ -46,8 +46,8 @@ class sliceProgessPanel(wx.Panel):
                        if idx > 0:
                                profile.setTempOverride('fan_enabled', 'False')
                                profile.setTempOverride('skirt_line_count', '0')
-                               profile.setTempOverride('machine_center_x', profile.getProfileSettingFloat('machine_center_x') - profile.getPreferenceFloat('extruder_offset_x%d' % (idx)))
-                               profile.setTempOverride('machine_center_y', profile.getProfileSettingFloat('machine_center_y') - profile.getPreferenceFloat('extruder_offset_y%d' % (idx)))
+                               profile.setTempOverride('object_center_x', profile.getPreferenceFloat('machine_width') / 2 - profile.getPreferenceFloat('extruder_offset_x%d' % (idx)))
+                               profile.setTempOverride('object_center_y', profile.getPreferenceFloat('machine_depth') / 2 - profile.getPreferenceFloat('extruder_offset_y%d' % (idx)))
                                profile.setTempOverride('alternative_center', self.filelist[0])
                        if len(self.filelist) > 1:
                                profile.setTempOverride('add_start_end_gcode', 'False')
index 142df2ee89f38e1d143281ad240fad3acb47403e..fc9752aa1f48435c71733f8a90d07c74c0ad3fc9 100644 (file)
@@ -31,8 +31,6 @@ profileDefaultSettings = {
        'support': 'None',\r
        'filament_diameter': '2.89',\r
        'filament_density': '1.00',\r
-       'machine_center_x': '100',\r
-       'machine_center_y': '100',\r
        'retraction_min_travel': '5.0',\r
        'retraction_enable': 'False',\r
        'retraction_speed': '40.0',\r
@@ -102,9 +100,6 @@ G1 Z15.0 F{max_z_speed} ;move the platform down 15mm
 G92 E0                  ;zero the extruded length\r
 G1 F200 E3              ;extrude 3mm of feed stock\r
 G92 E0                  ;zero the extruded length again\r
-\r
-;go to the middle of the platform (disabled, as there is no need to go to the center)\r
-;G1 X{machine_center_x} Y{machine_center_y} F{travel_speed}\r
 G1 F{travel_speed}\r
 """,\r
 #######################################################################################\r
@@ -137,7 +132,7 @@ G90                                    ;absolute positioning
 \r
 G1 Z{clear_z} F{max_z_speed}\r
 G92 E0\r
-G1 X{machine_center_x} Y{machine_center_y} F{travel_speed}\r
+G1 X{object_center_x} Y{object_center_x} F{travel_speed}\r
 G1 F200 E6\r
 G92 E0\r
 """,\r
@@ -219,6 +214,9 @@ def resetGlobalProfile():
        global globalProfileParser\r
        globalProfileParser = ConfigParser.ConfigParser()\r
 \r
+       if getPreference('machine_type') == 'reprap':\r
+               putProfileSetting('nozzle_size', '0.5')\r
+\r
 def saveGlobalProfile(filename):\r
        #Save the current profile to an ini file\r
        globalProfileParser.write(open(filename, 'w'))\r
index 6afeb4a9c6064f19f82b4c0cfd03b2718adb73f4..3bd6942df4a16018490185b5097c5fe6a255d85d 100644 (file)
@@ -115,7 +115,7 @@ def getSliceCommand(filename):
                cmd = [slic3rExe,
                        '--output-filename-format', '[input_filename_base].gcode',
                        '--nozzle-diameter', str(profile.calculateEdgeWidth()),
-                       '--print-center', '%s,%s' % (profile.getProfileSetting('machine_center_x'), profile.getProfileSetting('machine_center_y')),
+                       '--print-center', '%s,%s' % (profile.getPreferenceFloat('machine_width') / 2, profile.getPreferenceFloat('machine_depth') / 2),
                        '--z-offset', '0',
                        '--gcode-flavor', 'reprap',
                        '--gcode-comments',
index c68206f1abb4190e6bfecc4a14a431540b4212b4..6485e930fa20331919573cb94ba871bbe5deea26 100644 (file)
@@ -215,7 +215,7 @@ if __name__ == '__main__':
 
        f.write(';TYPE:CUSTOM\n')
        f.write(profile.getAlterationFileContents('start.gcode'))
-       svg.center(complex(profile.getProfileSettingFloat('machine_center_x'), profile.getProfileSettingFloat('machine_center_y')))
+       svg.center(complex(profile.getPreferenceFloat('machine_width') / 2, profile.getPreferenceFloat('machine_depth') / 2))
 
        layerThickness = 0.4
        filamentRadius = profile.getProfileSettingFloat('filament_diameter') / 2