chiark / gitweb /
Add support for the new support material settings.
authordaid <daid303@gmail.com>
Thu, 8 Aug 2013 10:40:05 +0000 (12:40 +0200)
committerdaid <daid303@gmail.com>
Thu, 8 Aug 2013 10:40:05 +0000 (12:40 +0200)
Cura/util/profile.py
Cura/util/sliceEngine.py

index 26ce4e32d44c3978d2f452a4d48c1d8ef7897cee..4bd1f4ae41f8c0a0442062f555ea0dd479f5c00d 100644 (file)
@@ -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.')
index b984fdc5ddcb82ee72ae8fc3dfef6c4287fa9365..2c4758b75c23efa17eae8cada5ff42b44ac09f78 100644 (file)
@@ -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')),