Rabbits vs. DXF files, Round 1!


(Can we have a Lasercutting Skill Group?)

I tend to do production laser cuts, that is, make some DXF files and just use them over and over for Etsy sales.

Last week I was cutting a newer set of files and one of the cuts did not complete correctly. I make the DXF files by sorting various objects then exporting as DXF, and I’d used this file previously with no errors. (Cord saw this, a circle made of arcs did not close correctly, there was maybe a 1mm Y distance gap between the start and stop of the circle.)

Yesterday I was preparing some orders and I discovered a new problem – some of my 400mm circles were roughly 395mm. I did a count, and it was exactly a third that were cut incorrectly. I have a set of three DXF files that makes three rotating tool stands out of three pieces of plywood and I started thinking that maybe I had a corrupt DXF file or it didn’t load correctly on the Rabbit.

Poked around this morning and found an error we ran in to back in the early days of Lasersaur development – DXF format is itself broken in that it allows different Z values in what should be a 2D drawing. Two of my DXF files had this error, the piece that is 395mm instead of 400mm is also maybe a meter off the Z plane in the DXF file. This was also the piece that had the previous problem where the start/stop of the circle were off by 1mm.

On the Lasersaur this actually broke the DXF importer and crashed the cutter (hurray me super programmer!) but it looks like the Rabbit is trying to just work around this and not doing a very good job.


That’s interesting – any support notes why the Z axis was way off? What tool do you generate the DXF in?
Does your drawing tool support other formats that the Rabbit also supports (like Illustrator)? You could always try a different format and see if the problem goes away.
I also noticed that if I make a perfectly square cutout, the results aren’t perfectly square – a teeny bit off in the Y axis. I found this out when I was cutting those wooden 40mm focusing tools. The X axis was 40mm, while the Y axis was 39.7mm. So I rotated my drawing 90 degrees. My import file was Illustrator format exported by Corel Draw 8.


(splitting my replies)

I use Rhino 6 and SolidWorks for all my CAD work. In Rhino 6 I have a 3d, fully assembled tool stand that I sell on Etsy (shameless plug). I take the elements from that I want to laser cut, arrange them in optimal cutting paths, then export DXF.

If I’m looking at everything from the Top perspective, it’s like working in Illustrator, and I’m better at Rhino than Illustrator. However, Rhino is treating objects as 3d objects, so moving/cutting/pasting might change the Z location and I won’t see that happen in the Top perspective.


Were the cut measurements 40mm x 40mm after you rotated the drawing?

The Rabbits use the same basic technology as the Lasersaur – belt-driven Y axis that moves a belt-driven carriage for the X axis.

The error you saw was .0075%, or .0075mm for a 1mm cut. That distance is in the noise floor (and less than the kerf) for economy laser cutters using belt-drives. If you needed something with higher accuracy you’d go to a $$$ system like Eplilog or something using ball screws instead of belts.

I wouldn’t trust a laser cutter to make a focusing guide where .25mm can ruin a focal point. For the Lasersaur I made these 3d printed guides – you can find out the shrink rate of your 3d printer filament and scale the model as needed.


If you can, convert your dxf into illustrator, flatten the file if you have text, convert text to outlines (stroke doesn’t matter) and send the ai file to the Rabbit. I’ve have unending problems trying to use dxf with the RDWorks software. Also, if you are getting non-repeating errors, clean the usb connectors between the computer and the rabbit; the rabbit does not detect corrupted files. One last note, if you are getting dimensional errors that are not in the files, check the x and y amplifiers in the Rabbit. I’ve had the problem of a drifting origin point when the amplifiers were weak and the stepper motors were losing counts. The rabbit counts steps sent to the motors, but has no feedback to verify the actual location of the beam.


That’s been true of every laser cutter I’ve used. The CNC mill I’m building has rotary encoders on the servos but it still doesn’t know where it is unless it’s recently tapped an end stop.


Re-exported all my files and had new problems. Same file cut twice on two different pieces of wood, different errors at different places. Will post photos later.

One thing I noticed – the files I was using earlier were ones I saved using an newer DXF format than default due to problems on the Lasersaur. I’m going to try exporting these new files in the newer format and see if that makes the errors go away.


Some examples of the errors below. I cut these DXF files multiple times and saw the errors in different places on each cut.



That’s absolutely crazy. It’s especially weird to me that RDWorks will display the file properly in the preview, but the generated .rd file bugs out. I’ve seen LightBurn choke badly on DXF files exported from Fusion360, but never a rendering issue between the laser software and the printer.
Have you poked around with the .rd file format? or done a diff on two .rd files generated from the same DXF file?


I usually don’t save .rd files, I just import DXF and go. I’ll try LightBurn next, maybe RDWorks is just crappy “free” software.


Going to do some test cuts this afternoon then the same files on my Lasersaur tomorrow. Finally got a replacement PSU so I can do some A/B testing of DXF files across RDWorks, LightBurn, and Laseraur


Did some testing and found several different problems, both in the Rabbit and the rdcam software.

  • rdcam is buggy, “film at 11”. On one load of a DXF file rdcam expanded the cut by about %10. When the cut failed we looked at the UI and, in fact, the cut had been expanded in the software. This is something I can visually verify on future cuts.

  • Download corruption. Loaded a file, did a cut, things worked just fine. Decided to slow down the speed of one cut from 8mm/sec to 7mm/sec to handle some glue blocks in the plywood I was cutting. Downloaded that, started the cut, and every circle had at least one error. These errors also showed up in the display on the Rabbit after the cut was finished. No way I can think of to test for this before a cut, if it downloads and is corrupted we find that out after the cut is in progress.

  • Download corruption or parsing. One file I downloaded simply didn’t finish cutting. I downloaded it a second time and it cut just ifne.


A bit more testing on my Lasersaur and I find the Rhino DXF export is reasonably clean. I run my dxf parser in debug and it throws some warnings if the object is too big for the printer or in negative space, but no print killing errors. If we have any problems parsing the dxf file we bail and warn the user. Our warnings are awful but at least we don’t wreck an hour job 45 minutes before it’s finished.