| Foam Cutter|
Release status: beta [box doku]
The foam cutter is connected to our internal network aka Intranet. It is three independently movable axis. Currently, it is only possible to cut in 2d-projection. It can cut foam blanks to a thickness of up to 100mm. The foam cutter needs G-Code files to cut your templates. To generate G-code files compatible with the foam cutter, you should use the slicing software installed on the foam cutter. Doing so is discussed in the section below.
using the foam cutter
To use the foam cutter, please follow the following instructions.
Connect to the foam cutter via SSH with X11 forwarding: ssh -Y mk@IP_OF_FOAMCUTTER
- Connection parameters:
- username: mk
- password: ask Tobi for guidance
- Address: FIXME
When you are connected with the foam cutter, start linux_cnc. This is the software package for operating the foam cutter. Use the following command to do so from within a terminal: ./launch_linuxcnc &
Load your G-Code file and use linux CNC to operate the foam cutter.
Activate the CNC with the red buttons in the top left corner.
Place your foam blank on the bench, lock it in place (e.g. with sticky tape on the bottom). Then make the CNC head move to the starting position (zero point). Click "Antasten". This sets the zero-point of the CNC with respect to the foam blank. Perform the "Antasten" for both axis (X and Y) of the CNC.
When you are done, you can almost start the cutting process. Make sure the hot wire is connected to a power supply. Use the constant current mode of the power supply. 1A current is fine for thick foam. Trial-and-error will help you find your best settings for your blank foam.
Before starting the CNC routed cutting, make sure that the starting position of the CNC is correct (i.e. outside of the blank foam) and that the zero-points were correctly set. Then start cutting.
Generating G-code for the foam cutter
From the command line start dxf2gcode. dxf2gcode is a GUI program which assists in generating G-Code files from DXF files.
Load your dxf file. Move the zero-point to the edge of your object (Options-Move Zero Point). Click Auto, this will move the zero-point to the best lower left corner. Then click Export-Optimize-Path-and-Export to obtain the Gcode file. If you prefer to scale your model, use the Options-Scale-All setting in the menu.
Once the file is generated, it needs some handy tweaking to become suitable for our linux CNC version. We will only remove lines from the Gcode file, we need not add additional lines to the file.
Open the Gcode file: Remove the header section and the line with the command "G0 Z"
Also remove the lines containing the following commands:
- T1, S6000
- G0 Z
- G1 Z
You can now open your new Gcode file in LinuxCNC.
- Load a DXF file with a closed border
- if it is necessary scale the drawing (Options)
- Move the work piece zero offset (Options)
- Export-> Export and optimize and export the shapes
DXF2GCode Postprocessor configuration
# Configuration file for styrofoam cutter output: # * no movement in Z-Axis # * # by Robert Lichtenberger, 2014 # Section and variable names must be valid Python identifiers # do not use whitespace in names # do not edit the following section name: [Version] # do not edit the following value: config_version = 6 [General] output_format = .ngc output_text = styrofoam cutting G-CODE for LinuxCNC output_type = g-code abs_export = True cancel_cc_for_depth = True cc_outside_the_piece = False export_ccw_arcs_only = False max_arc_radius = 10000.0 code_begin_units_mm = G21 (Units in millimeters) code_begin_units_in = G20 (Units in inches) code_begin = G90 (Absolute programming) G64 (Default cutting) G17 (XY plane) G40 (Cancel radius comp.) G49 (Cancel length comp.) M3 M8 M0 (turn on heat then pause) code_end = M9 M5 (turn off heat) M2 (Program end) code_begin_prog_abs = G90 (Absolute programming) code_begin_prog_inc = G91 (Incremental programming) [Number_Format] pre_decimals = 4 post_decimals = 3 decimal_seperator = . pre_decimal_zero_padding = False post_decimal_zero_padding = True signed_values = False decimal_separator = . [Line_Numbers] use_line_nrs = False line_nrs_begin = 10 line_nrs_step = 10 [Program] tool_change = T%tool_nr M6%nlS%speed feed_change = F%feed%nl rap_pos_plane = G0 X%XE Y%YE%nl rap_pos_depth = "" lin_mov_plane = G1 X%XE Y%YE%nl lin_mov_depth = "" arc_int_cw = G2 X%XE Y%YE I%I J%J%nl arc_int_ccw = G3 X%XE Y%YE I%I J%J%nl cutter_comp_off = G40%nl cutter_comp_left = G41%nl cutter_comp_right = G42%nl pre_shape_cut = "" post_shape_cut = "" comment = %nl(%comment)%nl