Created
December 10, 2012 11:53
-
-
Save teppix/4250182 to your computer and use it in GitHub Desktop.
Slic3r Configuration for Makerbot Thing-o-Matic
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# generated by Slic3r 0.9.7 on Mon Dec 10 12:43:32 2012 | |
acceleration = 0 | |
bed_size = 120,120 | |
bed_temperature = 110 | |
bottom_solid_layers = 3 | |
bridge_fan_speed = 100 | |
bridge_flow_ratio = 1 | |
bridge_speed = 50 | |
brim_width = 0 | |
complete_objects = 0 | |
cooling = 0 | |
disable_fan_first_layers = 1 | |
duplicate = 1 | |
duplicate_distance = 6 | |
duplicate_grid = 1,1 | |
end_gcode = ; Beginning of end.gcode ****)\n; (This file is for a MakerBot Thing-O-Matic)\n; begin move to cooling position\nG1 X0.0 F3300.0 ; (move to cooling position)\nG1 X0.0 Y55.0 F3300.0 ; (move to cooling position)\n; end move to cooling position\n; begin filament reversal\nM108 R1.98 ; (set extruder speed)\nM102 ; (Extruder on, reverse)\nG04 P2000 ; (Wait t/1000 seconds)\nM103 ; (Extruder off)\n; end filament reversal\nM18 ; (Turn off steppers)\n; begin cool for safety\nM104 S0 T0 ; (set extruder temperature)\nM109 S0 T0 ; (set heated-build-platform temperature)\n; end cool for safety\n; end of end.gcode | |
external_perimeter_speed = 100% | |
extra_perimeters = 1 | |
extruder_clearance_height = 20 | |
extruder_clearance_radius = 20 | |
extruder_offset = 0x0 | |
extrusion_axis = E | |
extrusion_multiplier = 1 | |
extrusion_width = 0 | |
fan_always_on = 0 | |
fan_below_layer_time = 60 | |
filament_diameter = 1.75 | |
fill_angle = 45 | |
fill_density = 0.2 | |
fill_pattern = rectilinear | |
first_layer_bed_temperature = 115 | |
first_layer_extrusion_width = 0 | |
first_layer_height = 0.3 | |
first_layer_speed = 80% | |
first_layer_temperature = 235 | |
g0 = 0 | |
gap_fill_speed = 20 | |
gcode_arcs = 0 | |
gcode_comments = 0 | |
gcode_flavor = makerbot | |
infill_acceleration = 50 | |
infill_every_layers = 1 | |
infill_extruder = 1 | |
infill_extrusion_width = 0 | |
infill_speed = 50 | |
layer_gcode = | |
layer_height = 0.3 | |
max_fan_speed = 100 | |
min_fan_speed = 35 | |
min_print_speed = 10 | |
min_skirt_length = 0 | |
notes = | |
nozzle_diameter = 0.4 | |
only_retract_when_crossing_perimeters = 0 | |
output_filename_format = [input_filename_base].gcode | |
perimeter_acceleration = 25 | |
perimeter_extruder = 1 | |
perimeter_extrusion_width = 0 | |
perimeter_speed = 40 | |
perimeters = 1 | |
post_process = tomfix.py | |
print_center = 0,0 | |
randomize_start = 1 | |
retract_before_travel = 2 | |
retract_length = 1 | |
retract_length_toolchange = 3 | |
retract_lift = 0 | |
retract_restart_extra = 0 | |
retract_restart_extra_toolchange = 0 | |
retract_speed = 30 | |
rotate = 0 | |
scale = 1 | |
skirt_distance = 6 | |
skirt_height = 1 | |
skirts = 1 | |
slowdown_below_layer_time = 15 | |
small_perimeter_speed = 40 | |
solid_fill_pattern = rectilinear | |
solid_infill_below_area = 70 | |
solid_infill_every_layers = 0 | |
solid_infill_speed = 50 | |
start_gcode = ; beginning of start.gcode\n; (This file is for a MakerBot Thing-O-Matic)\n; begin initialization commands\nG21 ; (set units to mm)\nG90 ; (set positioning to absolute)\nM108 R5.0 ; (set extruder speed)\nM103 (Make sure extruder is off)\nM104 S225 T0 ; (set extruder temperature)\nM109 S100 T0 ; (set heated-build-platform temperature)\n; end initialization commands\n; begin homing\nG162 Z F1000 ; home Z axis maximum)\nG92 Z10 ; (set Z to 0)\nG1 Z0 ; move z down 10)\nG162 Z F150 ; home Z axis maximum)\nG161 X Y F2500 ; home XY axes minimum)\nM132 X Y Z A B ; Recall stored home offsets for XYZAB axis)\n; end homing\nG1 X0 Y0 Z10 F3300.0 ; (move to waiting position)\nM6 T0 ; (wait for toolhead parts, nozzle, HBP, etc., to reach temperature)\n; ( G0 X25 Y-57 (Position Nozzle)\n; G0 X0 Y0\nG0 Z0.6 ; (Position Height)\nM108 R4.0 ; (Set Extruder Speed)\n; M101 ; (Start Extruder)\n; end of start.gcode | |
support_material = 0 | |
support_material_angle = 0 | |
support_material_extruder = 1 | |
support_material_extrusion_width = 0 | |
support_material_pattern = rectilinear | |
support_material_spacing = 2.5 | |
support_material_speed = 50 | |
support_material_threshold = 45 | |
temperature = 230 | |
threads = 2 | |
top_solid_infill_speed = 50 | |
top_solid_layers = 3 | |
travel_speed = 60 | |
use_relative_e_distances = 1 | |
vibration_limit = 0 | |
z_offset = 0 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
import sys | |
# set to 1 to disable echo of unprocessed commands | |
DEBUG=0 | |
extrusion_state = 0 | |
def get_coords(args): | |
return { arg[0]: float(arg[1:]) for arg in args } | |
def set_extrusion(state): | |
global extrusion_state | |
if extrusion_state != state: | |
extrusion_state = state | |
if state == 1: | |
return 'M101 T0\n' # extrude | |
elif state == 0: | |
return 'M103 T0\n' # off | |
elif state == -1: | |
return 'M102 T0\n' # retract | |
return '' | |
def parsecode(full_line): | |
output = '' | |
line, separator, comment = full_line.partition(';') | |
comment = separator + comment | |
args = list(map(str.strip, line.split())) # strip whitespace | |
try: | |
cmd = args.pop(0) | |
except IndexError: | |
return output + comment | |
if cmd == 'G1': | |
d = get_coords(args) | |
if 'E' in d: | |
e = d['E'] | |
if e > 0: | |
output += set_extrusion(1) | |
elif e < 0: | |
output += set_extrusion(-1) | |
else: | |
output += set_extrusion(0) | |
if DEBUG==0: | |
output += full_line | |
return output + comment | |
def parse_file(inpath): | |
import os | |
from tempfile import mkstemp | |
# read from argument-supplied path | |
# write to tempfile in same directory | |
outpath = inpath + '.tmp' | |
f_in = open(inpath) | |
f_out = open(outpath, 'w') | |
f_out.write('; Processed with tomfix.py\n') | |
try: | |
# parse file | |
for i,line in enumerate(f_in): | |
f_out.write(parsecode(line)) | |
except Exception as e: | |
f_out.write(str(e)) | |
f_in.close() | |
f_out.close() | |
# overwrite original file with tempfile | |
os.remove(inpath) | |
os.rename(outpath, inpath) | |
if __name__ == '__main__': | |
parse_file(sys.argv[1]) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment