Skip to content

Instantly share code, notes, and snippets.

@teppix
Created December 10, 2012 11:53
Show Gist options
  • Save teppix/4250182 to your computer and use it in GitHub Desktop.
Save teppix/4250182 to your computer and use it in GitHub Desktop.
Slic3r Configuration for Makerbot Thing-o-Matic
# 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
#!/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