diff --git a/StaticData/PrinterSettings/BCN/BCN Sigma/config.ini b/StaticData/PrinterSettings/BCN/BCN Sigma/config.ini index 6a3fd8148..858f33f5d 100644 --- a/StaticData/PrinterSettings/BCN/BCN Sigma/config.ini +++ b/StaticData/PrinterSettings/BCN/BCN Sigma/config.ini @@ -143,7 +143,7 @@ support_material_enforce_layers = 0 support_material_extruder = 1 support_material_extrusion_width = 0 support_material_infill_angle = 45 -support_material_interface_extruder = 2 +support_material_interface_extruder = 1 support_material_interface_layers = 4 support_material_interface_spacing = 0 support_material_pattern = honeycomb diff --git a/StaticData/PrinterSettings/Lulzbot/TAZ 6/config.ini b/StaticData/PrinterSettings/Lulzbot/TAZ 6/config.ini index c55901153..6824424d8 100644 --- a/StaticData/PrinterSettings/Lulzbot/TAZ 6/config.ini +++ b/StaticData/PrinterSettings/Lulzbot/TAZ 6/config.ini @@ -115,7 +115,7 @@ manual_probe_paper_width = .1 # Extruder extruder_offset = 0x0 -start_gcode = ;This profile is designed specifically for LulzBot TAZ 6 3D Printer\n;Basic slice data:\n;Sliced at: {day} {date} {time}\n;Layer height: {layer_height}\n;Walls: {wall_thickness}\n;Fill: {fill_density}\n;Estimated Print time: {print_time}\n;Filament used: {filament_amount}m {filament_weight}g\n;Filament cost: {filament_cost}\nG26 ; clear potential 'probe fail' condition\nG21 ; set units to Millimetres\nM107 ; disable fans\nG90 ; absolute positioning\nM82 ; set extruder to absolute mode\nG92 E0 ; set extruder position to 0\nM140 S[bed_temperature] ; get bed heating up\nG28 XY ; home X and Y\nG1 X-19 Y258 F1000 ; move to safe homing position\nM109 S160 ; soften filament for z homing\nG28 Z ; home Z\nM104 S[extruder_wipe_temperature]; wipe temp\nG1 E-30 F100 ; suck up XXmm of filament\nG1 X-15 Y100 F3000 ; move above wiper pad\nG1 Z1 ; push nozzle into wiper\nG1 X-17 Y95 F1000 ; slow wipe\nG1 X-17 Y90 F1000 ; slow wipe\nG1 X-17 Y85 F1000 ; slow wipe\nG1 X-15 Y90 F1000 ; slow wipe\nG1 X-17 Y80 F1000 ; slow wipe\nG1 X-15 Y95 F1000 ; slow wipe\nG1 X-17 Y75 F2000 ; fast wipe\nG1 X-15 Y65 F2000 ; fast wipe\nG1 X-17 Y70 F2000 ; fast wipe\nG1 X-15 Y60 F2000 ; fast wipe\nG1 X-17 Y55 F2000 ; fast wipe\nG1 X-15 Y50 F2000 ; fast wipe\nG1 X-17 Y40 F2000 ; fast wipe\nG1 X-15 Y45 F2000 ; fast wipe\nG1 X-17 Y35 F2000 ; fast wipe\nG1 X-15 Y40 F2000 ; fast wipe\nG1 X-17 Y70 F2000 ; fast wipe\nG1 X-15 Y30 Z2 F2000 ; fast wipe\nG1 X-17 Y35 F2000 ; fast wipe\nG1 X-15 Y25 F2000 ; fast wipe\nG1 X-17 Y30 F2000 ; fast wipe\nG1 X-15 Y25 Z1.5 F1000 ; slow wipe\nG1 X-17 Y23 F1000 ; slow wipe\nG1 Z10 ; raise extruder\nM109 S150 ; heat to probe temp\nG1 X-9 Y-9 ; move above probe\nM204 S100 ; set accel for probing\nG29 ; probe sequence (for auto-leveling)\nM204 S500 ; set accel back to normal\nG1 X0 Y0 Z15 F5000 ; get out the way\nM400 ; clear buffer\nG4 S1 ; pause\nM117 Heating... ; LCD status message\nM140 S[bed_temperature] ; get bed heating up\nM109 S[temperature] ; set extruder temp and wait\nM190 S[bed_temperature] ; get bed temping up during first layer\nG1 Z2 E0 F75 ; extrude filament back into nozzle\nM117 TAZ Printing... ; LCD status message\n -end_gcode = ;\nM400 ; wait for moves to finish\nM104 S0 ; hotend off\nM107 ; fans off\nG91 ; relative positioning\nG1 E-1 F300 ; retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+20 E-5 X-20 Y-20 F3000 ; move Z up a bit and retract filament even more\nM117 Cooling please wait ; progress indicator message\nG90 ; absolute positioning\nG1 Y0 F3000 ; move to cooling position\nM190 R[bed_remove_part_temperature] ; set bed to cool off\nG1 Y280 F3000 ; present finished print\nM84 ; steppers off\nG90 ; absolute positioning\nM117 Print complete ; progress indicator message\n;{profile_string} +start_gcode = ;This profile is designed specifically for LulzBot TAZ 6 3D Printer\n;Basic slice data:\n;Sliced at: [day] [date] [time]\n;Layer height: [layer_height]\n;Walls: [wall_thickness]\n;Fill: [fill_density]\n;Estimated Print time: [print_time]\n;Filament used: [filament_amount]m [filament_weight]g\n;Filament cost: [filament_cost]\nG26 ; clear potential 'probe fail' condition\nG21 ; set units to Millimetres\nM107 ; disable fans\nG90 ; absolute positioning\nM82 ; set extruder to absolute mode\nG92 E0 ; set extruder position to 0\nM140 S[bed_temperature] ; get bed heating up\nG28 XY ; home X and Y\nG1 X-19 Y258 F1000 ; move to safe homing position\nM109 S160 ; soften filament for z homing\nG28 Z ; home Z\nM104 S[extruder_wipe_temperature]; wipe temp\nG1 E-30 F100 ; suck up XXmm of filament\nG1 X-15 Y100 F3000 ; move above wiper pad\nG1 Z1 ; push nozzle into wiper\nG1 X-17 Y95 F1000 ; slow wipe\nG1 X-17 Y90 F1000 ; slow wipe\nG1 X-17 Y85 F1000 ; slow wipe\nG1 X-15 Y90 F1000 ; slow wipe\nG1 X-17 Y80 F1000 ; slow wipe\nG1 X-15 Y95 F1000 ; slow wipe\nG1 X-17 Y75 F2000 ; fast wipe\nG1 X-15 Y65 F2000 ; fast wipe\nG1 X-17 Y70 F2000 ; fast wipe\nG1 X-15 Y60 F2000 ; fast wipe\nG1 X-17 Y55 F2000 ; fast wipe\nG1 X-15 Y50 F2000 ; fast wipe\nG1 X-17 Y40 F2000 ; fast wipe\nG1 X-15 Y45 F2000 ; fast wipe\nG1 X-17 Y35 F2000 ; fast wipe\nG1 X-15 Y40 F2000 ; fast wipe\nG1 X-17 Y70 F2000 ; fast wipe\nG1 X-15 Y30 Z2 F2000 ; fast wipe\nG1 X-17 Y35 F2000 ; fast wipe\nG1 X-15 Y25 F2000 ; fast wipe\nG1 X-17 Y30 F2000 ; fast wipe\nG1 X-15 Y25 Z1.5 F1000 ; slow wipe\nG1 X-17 Y23 F1000 ; slow wipe\nG1 Z10 ; raise extruder\nM109 S150 ; heat to probe temp\nG1 X-9 Y-9 ; move above probe\nM204 S100 ; set accel for probing\nG29 ; probe sequence (for auto-leveling)\nM204 S500 ; set accel back to normal\nG1 X0 Y0 Z15 F5000 ; get out the way\nM400 ; clear buffer\nG4 S1 ; pause\nM117 Heating... ; LCD status message\nM140 S[bed_temperature] ; get bed heating up\nM109 S[temperature] ; set extruder temp and wait\nM190 S[bed_temperature] ; get bed temping up during first layer\nG1 Z2 E0 F75 ; extrude filament back into nozzle\nM117 TAZ Printing... ; LCD status message\n +end_gcode = ;\nM400 ; wait for moves to finish\nM104 S0 ; hotend off\nM107 ; fans off\nG91 ; relative positioning\nG1 E-1 F300 ; retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+20 E-5 X-20 Y-20 F3000 ; move Z up a bit and retract filament even more\nM117 Cooling please wait ; progress indicator message\nG90 ; absolute positioning\nG1 Y0 F3000 ; move to cooling position\nM190 R[bed_remove_part_temperature] ; set bed to cool off\nG1 Y280 F3000 ; present finished print\nM84 ; steppers off\nG90 ; absolute positioning\nM117 Print complete ; progress indicator message\n;[profile_string] before_toolchange_gcode = toolchange_gcode = diff --git a/StaticData/PrinterSettings/Me3D/Me2/config.ini b/StaticData/PrinterSettings/Me3D/Me2/config.ini index 3b668cbf8..8d04776f7 100644 --- a/StaticData/PrinterSettings/Me3D/Me2/config.ini +++ b/StaticData/PrinterSettings/Me3D/Me2/config.ini @@ -126,7 +126,7 @@ solid_infill_speed = 60 solid_shell = 0 spiral_vase = 0 standby_temperature_delta = -5 -start_gcode = ;Me3D - MC1.5 startup sequence - Me2 (G5,G6,G7) Build 02/16\n;Remove the ";" to activate any line\n;MAKE SURE YOU KNOW WHAT EACH LINE DOES BEFORE YOU CHANGE IT!!! The Me2 is 100% hackable and so has limited physical protection from errors in the g-code\nM104 S[first_layer_temperature] ; Start heater and continue g-code\nG21 ; set units to millimeters\nM201 X5000 Y5000; max accel print\nM202 X5000 Y5000; max accel travel\nM205 X15; max xyjerk mm/s\nG92; Zero current head position\nG91; Relative position\nG1 Z10; clear bed \nG90 ; ABS position\nG28; home axes\nG29; perform auto levelling at three corners\nM82 ; use absolute distances for extrusion\nG1 Z15 F4000; Raise Z axis clear\nG1 X-5 F4000; Move to X axis zero\nG1 Y5 F4000;\nG92 E0; zero the extruded length\nM109 S[first_layer_temperature]; Set print temperature and wait\nG1 F100 E19; extrude feed stock to prime hotend barrel and purge\n; Create purge line\nG1 Z[z_offset] F1000; z_offset variable only available in MC1.2.3 and above\nG91; Relative motion \nG1 Z0.3;\nG1 X10 Y1 F1000; Change this value to move the position of the line on the bed\nG1 X120 E20;\nG1 Y1;\nG1 X-100 E16.5;\nG1 X-20 E2;\nG1 X10 Y-3 F500;\nG1 Y5 F4000;\nG92 E0;\nG90;\nG92 E0; zero the extruded length again\nM117 OK...let's print; +start_gcode = ;Me3D - MC1.5 startup sequence - Me2 (G5,G6,G7) Build 02/16\n;Remove the ";" to activate any line\n;MAKE SURE YOU KNOW WHAT EACH LINE DOES BEFORE YOU CHANGE IT!!! The Me2 is 100% hackable and so has limited physical protection from errors in the g-code\nM104 S[temperature] ; Start heater and continue g-code\nG21 ; set units to millimeters\nM201 X5000 Y5000; max accel print\nM202 X5000 Y5000; max accel travel\nM205 X15; max xyjerk mm/s\nG92; Zero current head position\nG91; Relative position\nG1 Z10; clear bed \nG90 ; ABS position\nG28; home axes\nG29; perform auto levelling at three corners\nM82 ; use absolute distances for extrusion\nG1 Z15 F4000; Raise Z axis clear\nG1 X-5 F4000; Move to X axis zero\nG1 Y5 F4000;\nG92 E0; zero the extruded length\nM109 S[temperature]; Set print temperature and wait\nG1 F100 E19; extrude feed stock to prime hotend barrel and purge\n; Create purge line\nG1 Z[z_offset] F1000; z_offset variable only available in MC1.2.3 and above\nG91; Relative motion \nG1 Z0.3;\nG1 X10 Y1 F1000; Change this value to move the position of the line on the bed\nG1 X120 E20;\nG1 Y1;\nG1 X-100 E16.5;\nG1 X-20 E2;\nG1 X10 Y-3 F500;\nG1 Y5 F4000;\nG92 E0;\nG90;\nG92 E0; zero the extruded length again\nM117 OK...let's print; start_perimeters_at_concave_points = 0 start_perimeters_at_non_overhang = 0 support_air_gap = .3 diff --git a/Tests/MatterControl.Tests/MatterControl/ConfigIniTests.cs b/Tests/MatterControl.Tests/MatterControl/ConfigIniTests.cs index c7357c481..544efae85 100644 --- a/Tests/MatterControl.Tests/MatterControl/ConfigIniTests.cs +++ b/Tests/MatterControl.Tests/MatterControl/ConfigIniTests.cs @@ -236,11 +236,8 @@ namespace MatterControl.Tests.MatterControl }); } - // TODO: Name did not reflect behavior or fails too frequently to be accurate - //public void LayerHeightLessThanNozzleDiameter() - [Test] - public void LayerHeightLessOrEqualToNozzleDiameter() + public void LayerHeightLessThanNozzleDiameter() { ValidateOnAllPrinters(printer => { @@ -254,7 +251,7 @@ namespace MatterControl.Tests.MatterControl return; } - Assert.LessOrEqual(layerHeight, nozzleDiameter, "[layer_height] must be less than [nozzle_diameter]: " + printer.RelativeConfigPath); + Assert.Less(layerHeight, nozzleDiameter, "[layer_height] must be less than [nozzle_diameter]: " + printer.RelativeConfigPath); }); } @@ -294,7 +291,7 @@ namespace MatterControl.Tests.MatterControl Assert.Less(firstLayerExtrusionWidthToTest, firstLayerExtrusionWidthThreshold, "[first_layer_extrusion_width] greater than acceptable value: " + printer.RelativeConfigPath); // TODO: We're not validating first_layer_extrusion_width as we have the product of nozzleDiameter and firstLayerExtrusionWidth. Seems confusing - Assert.Greater(firstLayerExtrusionWidthToTest, 0, "First layer extrusion width cannot be zero"); + Assert.Greater(firstLayerExtrusionWidthToTest, 0, "First layer extrusion width cannot be zero: " + printer.RelativeConfigPath); } }); } @@ -318,7 +315,7 @@ namespace MatterControl.Tests.MatterControl return; } - Assert.Greater(firstLayerExtrusionWidth, 0, "[first_layer_extrusion_width] must be greater than zero"); + Assert.Greater(firstLayerExtrusionWidth, 0, "[first_layer_extrusion_width] must be greater than zero: " + printer.RelativeConfigPath); } }); } @@ -329,16 +326,9 @@ namespace MatterControl.Tests.MatterControl ValidateOnAllPrinters(printer => { string supportMaterialExtruder = printer.SettingsLayer.ValueOrDefault("support_material_extruder"); - if (!string.IsNullOrEmpty(supportMaterialExtruder)) + if (!string.IsNullOrEmpty(supportMaterialExtruder) && printer.Oem != "Esagono") { - // TODO: Remove once validated and resolved - if (supportMaterialExtruder != "1") - { - printer.RuleViolated = true; - return; - } - - Assert.AreEqual("1", supportMaterialExtruder, "[support_material_extruder] must be assigned to extruder 1"); + Assert.AreEqual("1", supportMaterialExtruder, "[support_material_extruder] must be assigned to extruder 1: " + printer.RelativeConfigPath); } }); } @@ -349,15 +339,8 @@ namespace MatterControl.Tests.MatterControl ValidateOnAllPrinters(printer => { string supportMaterialInterfaceExtruder = printer.SettingsLayer.ValueOrDefault("support_material_interface_extruder"); - if (!string.IsNullOrEmpty(supportMaterialInterfaceExtruder)) + if (!string.IsNullOrEmpty(supportMaterialInterfaceExtruder) && printer.Oem != "Esagono") { - // TODO: Remove once validated and resolved - if (supportMaterialInterfaceExtruder != "1") - { - printer.RuleViolated = true; - return; - } - Assert.AreEqual("1", supportMaterialInterfaceExtruder, "[support_material_interface_extruder] must be assigned to extruder 1"); } }); @@ -396,7 +379,9 @@ namespace MatterControl.Tests.MatterControl } } - Assert.IsTrue(ruleViolations.Count == 0, "One or more printers violate this rule: " + string.Join("\r\n", ruleViolations.ToArray())); + Assert.IsTrue( + ruleViolations.Count == 0, /* Use == instead of Assert.AreEqual to better convey failure details */ + string.Format("One or more printers violate this rule: \r\n\r\n{0}\r\n", string.Join("\r\n", ruleViolations.ToArray()))); } private class PrinterConfig