Safety First
QUICK START
What you need:
- Some 2D or 2.5D CAD software that can export to .DXF file format.
- Dxf2Gcode (http://sourceforge.net/projects/dxf2gcode/) - I've successfully tested the process with the 2015-6-9 build, let me know if future versions break compatibility).
- A 3D printer/CNC mill with a laser attachment and controlled by Marlin compatible firmware. Non-marlin derivatives could work, but I haven't tested it. I'm using a RigidBot 3D printer (http://rigidbot.com/) with an L-CHEAPO laser cutter tool (http://robots-everywhere.com/re_wiki/index.php?n=Main.LCheapo) that I got from 3DSupplySource (http://3dsupplysource.com/L-Cheapo).
- Control software for your printer that wont' freak out when it sees G-Codes coordinates placing the print/tool head below the bed height or that never extrudes a single mm of filament. So far PrintRun Pronterface (http://www.pronterface.com/) works fine for this, CURA and Repetier Host doesn't. - Funny bit: Repetier Host will still give you a time estimate for the job to complete. Let me know if you find another control software that works.
- These little files (http://robots-everywhere.com/re_wiki/index.php?n=Main.LCheapoDXFFiles) that modify Dxf2Gcode behavior (big 'thank you' to Matteo for hosting them). They are plain text files, don't be afraid to look under the hood :-)
- config.cfg goes to your config directory (rename the original config.cfg for safe keeping). This file sets the default settings for any DXF you process trough Dxf2Gcode. The ones I put there are:
- Start the laser at your Z end-stop hardwired height.
- Do 5 passes for each cut, taking away 0.05 mm from the top surface each pass.
- Move the laser at 3,000 mm/minute while cutting.
- Move the laser at 200 mm/minute when not cutting (laser is OFF).
- Change the meaning of the "%" character when found inside a DXF layer name (more about that down below).
- Laser Cut Heater.cfg goes into your postpro_config directory and will generate ready-to print G-Code for a laser hooked to your heater port on the first installed extruder. It will set your laser height at 85 mm above the hardwired Z end-stop height. (You should edit those 85 mm to whatever is YOUR optimum focusing height).
- Laser Cut Fan.cfg also goes into your postpro_config folder and -you guessed- will do the same but for a laser hooked to the part fan port on your first extruder. But it does something extra:
- Since the laser intensity is regulated by software on that port, it will give you a 10 seconds pause with the laser set at 2% of it's full power intensity parked over the bed origin (X0,Y0) spot. This way you can visually verify and correct the start point before each job.
How-to (the short version):
- Set your CAD app to draw in mm or inches (most apps will default to meters, keep that in mind).
- The 0,0,0 coordinates origin of the CAD file will coincide with your printer's bed homing position. Also keep that in mind when placing your drawings.
- (Optional) You can have laser settings pre-set from the CAD file by renaming the layers using the notation explained at http://sourceforge.net/p/dxf2gcode/wiki/LayerControl/ - The provided config.cfg changes the ":" to "%" so that Dxf2Gcode becomes compatible with the official DXF format definition that doesn't allow ":" as part of a layer name. For example, instead of using "Md: 1" you now use "Md% 1". Per the definition, layer names can't be longer than 256 characters, BTW.
- Export you drawing as a DXF file.
- Open your drawing in Dxf2Gcode. If the drawings looks funky go back to your CAD app and make liberal use of the explode/decompose command to reduce it to lines, arcs and splines. Hatches and text objects are not supported by Dxf2Gcode at this time, so you need to explode/decompose those as well.
- (Optional) Inside Dxf2Gcode you can select shapes or entire layers and change the laser settings for that selection. Settings are in the "layers" tab (even when you are not selecting an entire layer). Removing the check-mark will ignore the selection for G-Code output purposes.
- Go to "Export" menu and choose "Export Shapes". You'll now see two new G-Code flavors under the "Save as type" menu.
- Load the exported G-Code into PrintRun Pronterface.
- Put on your laser eye protective gear.
- Hit print and enjoy :-)
- (Optional) If you are going to be re-printing the same G-Code in a series (let's say you are engraving 300 wood boxes with the same design, or you are cutting/engraving very thick materials, you might want to comment out the first "G0 Z 0.000" on the exported g-code (should be around the 5th line of the file) so that the printer doesn't lower the head/lens at the start of each print.
THE LONG TOUR
Introduction
Controlled Axis | Example Machine | Usual initial design software tool |
1
|
CNC Lathe
|
2D Cad Software
|
2
|
Old-school large
format plotter
|
2D CAD software
|
2
|
Laser/Plasma/Waterjet
cutter
|
2D CAD software
|
3
|
CNC Mill / Router
/ Laser engraver
|
2.5D CAD sofware
|
3
|
3D Printer
|
3D CAD Software
|
4 or more
|
4 or 5 axis robot
miller
|
3D CAD Software
|
As you can see, control wise, there isn't that much difference between a CNC Mill and a Laser Engraver, the main difference between them is that on the first the cutting action is made by a rotating drill bit attached to the spindle and is physically touching the work piece, while on the second the cutting action is done by focused energy coming out of the lens, itself attached to the laser housing. More-so, both should remain at a certain (supposedly) constant distance from the workpiece. For the mill that distance is called "Tool Lenght" and on the laser it's called "Optimal Focus Distance".
To clarify, take a long look at this diagram:
How it works
Dxf2Gcode is mostly designed for CNC Mills and it's cousins. In essence the provided "post-processor" files take a design originally meant to be milled and introduce some changes into the output to account for the "minimal" differences between milling and laser engraving/cutting.Ideally, everything happens in this sequence:
- The designer creates the CAD files assuming that the top surface of the work-piece is always at 0.00 Z height. This way the design becomes independent of the final "Start Mill Depth", as it may change at production time.
- At production time, the Laser operator already knows both the "Optimal Focus Distance" for the Laser and the "Start Mill Depth" for the Workpiece, and add them together to get the "Focusing Offset" or "Net Initial Focusing Height".
- This offset is either set-once-and-forgotten within the post-processor file or is changed on a case-by-case basis by editing the G-Code output (the lines dealing with the "Focusing Offset" are clearly marked, just open the output with a text editor and will be easy to spot.
- The output G-Code tells the printer to raise the Laser to the operator determined "Focusing Offset" and re-programs that height as the new virtual 0.00 Z height.
- The design is cut/engraved as usual.
- Once finished, the "Focusing Offset" is de-programmed from the printer and the machine is once again ready to be used either as a printer or as a laser tool.
Dxf2Gcode Settings Translated
Since Dxf2Gcode's interface is designed with CNC Milling in mind, some mental translation needs to be done in order to correctly alter the lasering settings, as follows:
Setting
|
Explanation
|
Sensible
Value
|
Tool Number (drop
list)
|
The extruder/fan
where your laser is getting power from.
|
"1",
for single extruder printers.
Could be changed
to "2" but you need to edit the post-processor files. It's possible
to run dissimilar lasers side-to-side this way.
|
Z Retraction Area
|
The laser beam can "disappear"
on command, so it doesn't need to physically retract like a milling drill.
|
0
|
Z Workpiece Top
|
As explained
before, the CAD is assumed to be workpiece agnostic, so leave it at 0.
|
0
|
Z Infeed Depth
|
How deep can you
laser cut/sublimate cleanly in a single pass without excessive smoke or
material deformation.
This should be a
negative number.
|
Start with your
focused spot diameter, adjust up/down depending on the workpiece material
light absorption properties.
|
Z Final Mill
Depth
|
Measuring from
the workpiece top, how deep you want your cut.
Should also be a
negative number.
|
If larger than
the "Z Infeed Depth"
extra passes will be generated as needed, each one deeper than the previous.
|
Feed Rate XY
|
How fast will travel
the laser over the workpiece while it is cutting.
This number is in
mm/minute.
|
As fast as
possible while still achieving the desired "Z Infeed Depth" for the
given material.
Anything slower
will produce rough / smoked / over-burn edges.
|
Feed Rate Z
|
The
post-processor uses this as the speed to move the laser housing while the
laser is turned off.
Should be slow
enough to avoid laser over/under shoots due to unwanted inertia or electronics/firmware
reaction latency.
|
Start fast and
adjust downward until you get precise start/stop points for each shape.
Could be
considered as the Draft vs. Final Quality setting for the engraving.
|
Dxf2Gcode GUI
· config.cfg
· Post-processors
· Storing the settings inside your CAD file
· Batch conversion
Mastering Coherent Light:
- Material Light Absorption
- Material heat conductivity
- Focus distance, beam geometry and smoke: Going fast versus going deep
Further reading:
https://en.wikipedia.org/wiki/2.5D_(machining)
http://www.cutlasercut.com/resources/tips-and-advice/burn-heat-marks-and-how-we-prevent-them
http://jtechphotonics.com/?p=2602