From: daid Date: Thu, 8 Aug 2013 10:40:05 +0000 (+0200) Subject: Add support for the new support material settings. X-Git-Tag: 13.10~103 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=dfc9efffcd55e90f5c2d73b474706ab0d0f3d5a6;p=cura.git Add support for the new support material settings. --- diff --git a/Cura/util/profile.py b/Cura/util/profile.py index 26ce4e32..4bd1f4ae 100644 --- a/Cura/util/profile.py +++ b/Cura/util/profile.py @@ -164,7 +164,9 @@ setting('cool_head_lift', False, bool, 'expert', 'Cool').setLabel('C setting('solid_top', True, bool, 'expert', 'Infill').setLabel('Solid infill top', 'Create a solid top surface, if set to false the top is filled with the fill percentage. Useful for cups/vases.') setting('solid_bottom', True, bool, 'expert', 'Infill').setLabel('Solid infill bottom', 'Create a solid bottom surface, if set to false the bottom is filled with the fill percentage. Useful for buildings.') setting('fill_overlap', 15, int, 'expert', 'Infill').setRange(0,100).setLabel('Infill overlap (%)', 'Amount of overlap between the infill and the walls. There is a slight overlap with the walls and the infill so the walls connect firmly to the infill.') -setting('support_rate', 75, int, 'expert', 'Support').setRange(0,100).setLabel('Material amount (%)', 'Amount of material used for support, less material gives a weaker support structure which is easier to remove.') +setting('support_fill_rate', 20, int, 'expert', 'Support').setRange(0,100).setLabel('Fill amount (%)', 'Amount of infill structure in the support material, less material gives weaker support which is easier to remove. 20% seems to be a good average.') +setting('support_xy_distance', 0.7, float, 'expert', 'Support').setRange(0,10).setLabel('Distance X/Y (mm)', 'Distance of the support material from the print, in the X/Y directions.\n0.7mm gives a nice distance from the print so the support does not stick to the print.') +setting('support_z_distance', 0.15, float, 'expert', 'Support').setRange(0,10).setLabel('Distance Z (mm)', 'Distance from the top/bottom of the support to the print. A small gap here makes it easier to remove the support but makes the print a bit uglier.\n0.15mm gives a good seperation of the support material.') #setting('support_distance', 0.5, float, 'expert', 'Support').setRange(0).setLabel('Distance from object (mm)', 'Distance between the support structure and the object. Empty gap in which no support structure is printed.') #setting('joris', False, bool, 'expert', 'Joris').setLabel('Spiralize the outer contour', '[Joris] is a code name for smoothing out the Z move of the outer edge. This will create a steady Z increase over the whole print. It is intended to be used with a single walled wall thickness to make cups/vases.') #setting('bridge_speed', 100, int, 'expert', 'Bridge').setRange(0,100).setLabel('Bridge speed (%)', 'Speed at which layers with bridges are printed, compared to normal printing speed.') diff --git a/Cura/util/sliceEngine.py b/Cura/util/sliceEngine.py index b984fdc5..2c4758b7 100644 --- a/Cura/util/sliceEngine.py +++ b/Cura/util/sliceEngine.py @@ -252,7 +252,9 @@ class Slicer(object): 'fanSpeedMax': int(profile.getProfileSettingFloat('fan_speed_max')) if profile.getProfileSetting('fan_enabled') == 'True' else 0, 'supportAngle': int(-1) if profile.getProfileSetting('support') == 'None' else int(60), 'supportEverywhere': int(1) if profile.getProfileSetting('support') == 'Everywhere' else int(0), - 'supportLineWidth': int(profile.getProfileSettingFloat('support_rate') * profile.calculateEdgeWidth() * 1000 / 100), + 'supportLineDistance': int(100 * profile.calculateEdgeWidth() * 1000 / profile.getProfileSettingFloat('support_fill_rate')) if profile.getProfileSettingFloat('support_fill_rate') > 0 else -1, + 'supportXYDistance': int(1000 * profile.getProfileSettingFloat('support_xy_distance')), + 'supportZDistance': int(1000 * profile.getProfileSettingFloat('support_z_distance')), 'supportExtruder': 0 if profile.getProfileSetting('support_dual_extrusion') == 'First extruder' else (1 if profile.getProfileSetting('support_dual_extrusion') == 'Second extruder' else -1), 'retractionAmount': int(profile.getProfileSettingFloat('retraction_amount') * 1000) if profile.getProfileSetting('retraction_enable') == 'True' else 0, 'retractionSpeed': int(profile.getProfileSettingFloat('retraction_speed')),