From 280d8e8405de7fdf00b4ef1ebed06becec0ca1a7 Mon Sep 17 00:00:00 2001 From: Ross Hendrickson Date: Fri, 21 Jun 2013 19:22:13 -0600 Subject: [PATCH] Change Class name. Test will slice model with included ini. --- .gitignore | 2 + octoprint/cura/cura.py | 4 +- octoprint/cura/tests/test.ini | 141 ++++++++++++++++++++++++++++++ octoprint/cura/tests/test_cura.py | 16 ++-- 4 files changed, 153 insertions(+), 10 deletions(-) create mode 100644 octoprint/cura/tests/test.ini diff --git a/.gitignore b/.gitignore index 65f3bfa8..a52b8735 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,8 @@ *.pyc *.zip *.exe +*.gcode +*.swp darwin-Cura-* win32-Cura-* linux-Cura-* diff --git a/octoprint/cura/cura.py b/octoprint/cura/cura.py index 43a23a9d..ae5ab6e5 100644 --- a/octoprint/cura/cura.py +++ b/octoprint/cura/cura.py @@ -4,7 +4,7 @@ __license__ = 'GNU Affero General Public License http://www.gnu.org/licenses/agp import logging import subprocess -class CuraWrapper(object): +class CuraFactory(object): CURA_PATH = '/home/rosshendrickson/workspaces/opensource/CuraEngine/CuraEngine' @@ -14,7 +14,7 @@ class CuraWrapper(object): if path: return CuraEngine(path) else: - return CuraEngine(CuraWrapper.CURA_PATH) + return CuraEngine(CuraFactory.CURA_PATH) diff --git a/octoprint/cura/tests/test.ini b/octoprint/cura/tests/test.ini new file mode 100644 index 00000000..a54ac8e2 --- /dev/null +++ b/octoprint/cura/tests/test.ini @@ -0,0 +1,141 @@ +[profile] +layer_height = 0.1 +wall_thickness = 1.0 +retraction_enable = False +solid_layer_thickness = 0.6 +fill_density = 20 +nozzle_size = 0.5 +print_speed = 50 +print_temperature = 220 +print_temperature2 = 0 +print_temperature3 = 0 +print_temperature4 = 0 +print_bed_temperature = 70 +support = None +platform_adhesion = None +support_dual_extrusion = False +filament_diameter = 2.89 +filament_diameter2 = 0 +filament_diameter3 = 0 +filament_diameter4 = 0 +filament_flow = 100.0 +retraction_speed = 40.0 +retraction_amount = 4.5 +retraction_dual_amount = 16.5 +bottom_thickness = 0.3 +object_sink = 0.0 +travel_speed = 150.0 +bottom_layer_speed = 20 +infill_speed = 0.0 +cool_min_layer_time = 5 +fan_enabled = True +skirt_line_count = 1 +skirt_gap = 3.0 +fan_layer = 1 +fan_speed = 100 +fan_speed_max = 100 +cool_min_feedrate = 10 +cool_head_lift = False +solid_top = True +solid_bottom = True +fill_overlap = 15 +support_rate = 75 +brim_line_count = 20 +raft_margin = 5 +raft_line_spacing = 1.0 +raft_base_thickness = 0.3 +raft_base_linewidth = 0.7 +raft_interface_thickness = 0.2 +raft_interface_linewidth = 0.2 +fix_horrible_union_all_type_a = False +fix_horrible_union_all_type_b = False +fix_horrible_use_open_bits = False +fix_horrible_extensive_stitching = False +plugin_config = (lp1 + . +object_center_x = -1 +object_center_y = -1 + +[alterations] +start.gcode = ;Sliced at: {day} {date} {time} + ;Basic settings: Layer height: {layer_height} Walls: {wall_thickness} Fill: {fill_density} + ;Print time: {print_time} + ;Filament used: {filament_amount}m {filament_weight}g + ;Filament cost: {filament_cost} + G21 ;metric values + G90 ;absolute positioning + M107 ;start with the fan off + G28 X0 Y0 ;move X/Y to min endstops + G28 Z0 ;move Z to min endstops + G1 Z15.0 F{travel_speed} ;move the platform down 15mm + G92 E0 ;zero the extruded length + G1 F200 E3 ;extrude 3mm of feed stock + G92 E0 ;zero the extruded length again + G1 F{travel_speed} + M117 Printing... +end.gcode = ;End GCode + M104 S0 ;extruder heater off + M140 S0 ;heated bed heater off (if you have it) + G91 ;relative positioning + G1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure + G1 Z+0.5 E-5 X-20 Y-20 F{travel_speed} ;move Z up a bit and retract filament even more + G28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way + M84 ;steppers off + G90 ;absolute positioning +start2.gcode = ;Sliced at: {day} {date} {time} + ;Basic settings: Layer height: {layer_height} Walls: {wall_thickness} Fill: {fill_density} + ;Print time: {print_time} + ;Filament used: {filament_amount}m {filament_weight}g + ;Filament cost: {filament_cost} + G21 ;metric values + G90 ;absolute positioning + M107 ;start with the fan off + G28 X0 Y0 ;move X/Y to min endstops + G28 Z0 ;move Z to min endstops + G1 Z15.0 F{travel_speed} ;move the platform down 15mm + T1 + G92 E0 ;zero the extruded length + G1 F200 E10 ;extrude 10mm of feed stock + G92 E0 ;zero the extruded length again + G1 F200 E-{retraction_dual_amount} + T0 + G92 E0 ;zero the extruded length + G1 F200 E10 ;extrude 10mm of feed stock + G92 E0 ;zero the extruded length again + G1 F{travel_speed} + M117 Printing... +end2.gcode = ;End GCode + M104 T0 S0 ;extruder heater off + M104 T1 S0 ;extruder heater off + M140 S0 ;heated bed heater off (if you have it) + G91 ;relative positioning + G1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure + G1 Z+0.5 E-5 X-20 Y-20 F{travel_speed} ;move Z up a bit and retract filament even more + G28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way + M84 ;steppers off + G90 ;absolute positioning +support_start.gcode = +support_end.gcode = +cool_start.gcode = +cool_end.gcode = +replace.csv = +nextobject.gcode = ;Move to next object on the platform. clear_z is the minimal z height we need to make sure we do not hit any objects. + G92 E0 + G91 ;relative positioning + G1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure + G1 Z+0.5 E-5 F{travel_speed} ;move Z up a bit and retract filament even more + G90 ;absolute positioning + G1 Z{clear_z} F{max_z_speed} + G92 E0 + G1 X{object_center_x} Y{object_center_y} F{travel_speed} + G1 F200 E6 + G92 E0 +switchextruder.gcode = ;Switch between the current extruder and the next extruder, when printing with multiple extruders. + G92 E0 + G1 E-36 F5000 + G92 E0 + T{extruder} + G1 X{new_x} Y{new_y} Z{new_z} F{travel_speed} + G1 E36 F5000 + G92 E0 + diff --git a/octoprint/cura/tests/test_cura.py b/octoprint/cura/tests/test_cura.py index 9e3cfbd8..2e7b493a 100644 --- a/octoprint/cura/tests/test_cura.py +++ b/octoprint/cura/tests/test_cura.py @@ -2,26 +2,26 @@ import unittest -from cura import CuraWrapper +from cura import CuraFactory from cura import CuraEngine -class CuraWrapperTestCase(unittest.TestCase): +class CuraFactoryTestCase(unittest.TestCase): - def test_cura_wrapper(self): + def test_cura_factory(self): fake_path = 'my/temp/path' - result = CuraWrapper.create_slicer(fake_path) + result = CuraFactory.create_slicer(fake_path) self.assertEqual(fake_path, result.cura_path) def test_cura_engine_process_file(self): - cura_engine = CuraWrapper.create_slicer() + cura_engine = CuraFactory.create_slicer() - file_path = '/cura/tests/test.stl' - config_path = '/cura/tests/config' - gcode_filename= 'output.gcode' + file_path = './cura/tests/test_02.stl' + config_path = './cura/tests/config' + gcode_filename= './cura/tests/output.gcode' cura_engine.process_file(config_path, gcode_filename, file_path)