Kerf compensation

607 views
Skip to first unread message

aplavins

unread,
Apr 20, 2014, 8:47:59 PM4/20/14
to lase...@googlegroups.com
I did some testing today on the kerf of the laser cut. I'm working on a project that involves making very accurate gears. I've noticed that the laser is cutting directly on the stroke path leaving half the kerf on the waste and half on the part being cut. If someone is able to modify the backend to compensate for kerf, i'd be willing to help with testing. Unfortunately my programming skills are not yet up to par for this project.

It may require modifying the software to accept stl files so that the program would know the difference between the part and the waste.

The kerf i measured on my machine was 0.288mm. The ofset from the part would have to be 1/2 that or 0.144mm to be accurate.

Some parts don't require kerf compensation so this would have to be an option, rather than a constant.

Adam

Steve Baker

unread,
Apr 20, 2014, 9:23:07 PM4/20/14
to lase...@googlegroups.com
Just design your parts with a linewidth equal to the kerf. Personally,
I've found that the kerf width is less than you found...and the positional
error of the machine is larger than the kerf...which made it all seem
kinda pointless to me. Unless you are cutting very thick materials, I'd
suspect that your laser needs to be a little better focused.

Steve.
> --
> You received this message because you are subscribed to the Google Groups
> "lasersaur" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to lasersaur+...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>


-- Steve

Andy Dingley

unread,
Apr 20, 2014, 10:00:29 PM4/20/14
to lase...@googlegroups.com


On Monday, 21 April 2014 01:47:59 UTC+1, aplavins wrote:
I did some testing today on the kerf of the laser cut. I'm working on a project that involves making very accurate gears.

There's no point in trying to do predictive compensation for kerf.  Make simplified test pieces, make a few with a variation of fit. Pick the ones that work.

If anyone saw the "Bristol Book Hive" recently, that was first done with a test rig that ran something like 10,000 cycles (gears cut in 6mm MDF). The first production units were from the same drawing, but a different laser, then we decided (with experience) to open up the gear fit by 0.2mm. Seemed to work nicely afterwards. With 400 units running every day for months you do see some failures, but they were mostly electronics and servos and the laser work didn't give any trouble.

Tim Courtland

unread,
Apr 21, 2014, 12:52:26 AM4/21/14
to lase...@googlegroups.com
I do the same. When I was a UNI and needed really accurate parts I would copy the part on the cut file, then scale one up by
2% and the other down by 2%. Seemed to work out fine. On large parts where I couldn’t do that I just measured a lot more carefully
to allow for the kerf. Plus you will always have that cut angle on thicker materials, can’t do anything about that unless you do multiple passes.

Tim



Andy Dingley

unread,
Apr 21, 2014, 5:50:18 AM4/21/14
to lase...@googlegroups.com


On Monday, 21 April 2014 05:52:26 UTC+1, Tim Courtland wrote:
 
Plus you will always have that cut angle on thicker materials, can’t do anything about that unless you do multiple passes.

I don't find cut angle a problem.  I was cutting 9mm MDF yesterday (I hate 9mm) and didn't have any discernible angling except for the screw holes, which came out slightly oval on the back side.

Stefan Hechenberger

unread,
Apr 21, 2014, 11:42:51 AM4/21/14
to lase...@googlegroups.com

Kerf-compensation is doable but not super easy. For most jobs compensating for 0.14mm is overkill and therefore not a priority for LasaurApp. It comes down to the geometric problem of polygon offsetting. I found a couple of open source implementations ... if anybody wants to take a stab at it let me know.

In general I am inclined to keep LasaurApp simple/beautiful and make it rock-solid first.

For power users and advanced features I am thinking of getting Rhino and FreeCAD integration going. It would be very nice to cut directly from these CAD packages. As a first step we would finalize a network API that allows any alternative software to talk directly to the lasersaur. Rhino and FreeCAD can then easily talk to the Lasersaur because they can reuse any python code that is already in LasaurApp.

In these CAD apps calculating an offset is as simple as calling a function. Also FreeCAD has a super interesting feature called Parametric Objects. See the following for details:

Thinking out loud ...

-stefan
--

Michael Ang

unread,
Apr 21, 2014, 12:01:42 PM4/21/14
to lase...@googlegroups.com
I've been playing with FreeCAD scripting and parametric objects (for 3D printing) and it does seem very promising.  I haven't tried working with 2D objects in FreeCAD yet.

For example it was pretty straightforward to integrate an OSC library and receive network events on a Qt timer to connect a 3D mouse with FreeCAD.

Now if only I had a Lasersaur in the same city as me!

  - mang

Steve Baker

unread,
Apr 21, 2014, 12:03:56 PM4/21/14
to lase...@googlegroups.com
In Inkscape, it seems fairly easy.

1) Draw the 'ideal' shape you want.
2) Set the line width equal to the expected width of the kerf.
3) Select the shape.
4) Click on "Path/Outset" in the menu to offset the path by half the line
width.

...done!

But I agree with Stefan...it doesn't seem like a good thing to put this
into Lasersaur's own software when it's so easy to handle it in external
tools.

Mostly, I think (as I said before) that the kerf is small compared to the
positional error of the lasersaur - so if you need such extreme precision,
you probably need a better tool.

Lasersaur has belts that are over 8 feet long...the amount of
hysteresis-causing stretch in them is far more than 0.14mm - so
compensating for kerf when the positioning accuracy isn't going to respond
to that seems kinda silly.

-- Steve
>>> can’t do anything about that unless you do multiple passes.
>>>
>> I don't find cut angle a problem. I was cutting 9mm MDF yesterday (I
>> hate 9mm) and didn't have any discernible angling except for the
>> screw holes, which came out slightly oval on the back side.
>> --
>> You received this message because you are subscribed to the Google
>> Groups "lasersaur" group.
>> To unsubscribe from this group and stop receiving emails from it,
>> send an email to lasersaur+...@googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>
> --
> You received this message because you are subscribed to the Google Groups
> "lasersaur" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to lasersaur+...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>


-- Steve

Michael Ang

unread,
Apr 21, 2014, 12:48:11 PM4/21/14
to lase...@googlegroups.com
Yeah, doing it in Inkscape seems like a good way to go.  Maybe it could be done as a plugin?

The Cura application for 3D printing has a fairly nice plugin system.  Basically you can write a plugin in Python that can process the gcode that the slicer generates.  The processed gcode is then visualized in Cura.  For the Lasersaur app the equivalent would probably be JavaScript plugins that could process the SVG before printing.

  - mang


>>> canâ EURO (tm)t do anything about that unless you do multiple passes.

Stefan Hechenberger

unread,
Apr 21, 2014, 12:59:32 PM4/21/14
to lase...@googlegroups.com

Hi Mang what's up,

Creating 2D geometry works well. There are two workbenches for this: Draft and Sketcher. Sketcher is totally ingenious. It allows you to draw geometries based on constraints. For certain problems it's one of the best tools I've used. Draft is more for freestyle drawing with nice snapping support.

Exporting 2D to svg or dxf is not so smooth. Most of the time something screws up. I haven't found a solid way of doing this. Although I think it would be fairly trivial to write a custom exporter for sketch/draft -> lasersaur in python.

Check out this Sketcher tutorial:


On Mon, Apr 21, 2014 at 6:03 PM, Steve Baker <st...@sjbaker.org> wrote:
In Inkscape, it seems fairly easy. 1) Draw the 'ideal' shape you want. 2) Set the line width equal to the expected width of the kerf. 3) Select the shape. 4) Click on "Path/Outset" in the menu to offset the path by half the line width. ...done! But I agree with Stefan...it doesn't seem like a good thing to put this into Lasersaur's own software when it's so easy to handle it in external tools. Mostly, I think (as I said before) that the kerf is small compared to the positional error of the lasersaur - so if you need such extreme precision, you probably need a better tool. Lasersaur has belts that are over 8 feet long...the amount of hysteresis-causing stretch in them is far more than 0.14mm - so compensating for kerf when the positioning accuracy isn't going to respond to that seems kinda silly. -- Steve Stefan Hechenberger wrote:
Kerf-compensation is doable but not super easy. For most jobs compensating for 0.14mm is overkill and therefore not a priority for LasaurApp. It comes down to the geometric problem of polygon offsetting. I found a couple of open source implementations ... if anybody wants to take a stab at it let me know. In general I am inclined to keep LasaurApp simple/beautiful and make it rock-solid first. For power users and advanced features I am thinking of getting Rhino and FreeCAD integration going. It would be very nice to cut directly from these CAD packages. As a first step we would finalize a network API that allows any alternative software to talk directly to the lasersaur. Rhino and FreeCAD can then easily talk to the Lasersaur because they can reuse any python code that is already in LasaurApp. In these CAD apps calculating an offset is as simple as calling a function. Also FreeCAD has a super interesting feature called Parametric Objects. See the following for details: http://www.freecadweb.org/wiki/index.php?title=Scripted_objects http://www.thingiverse.com/search?q=freecad+parametric&sa= Thinking out loud ... -stefan On Mon, Apr 21, 2014 at 11:50 AM, Andy Dingley <din...@codesmiths.com> wrote:
On Monday, 21 April 2014 05:52:26 UTC+1, Tim Courtland wrote:
Plus you will always have that cut angle on thicker materials, canâ EURO (tm)t do anything about that unless you do multiple passes.
I don't find cut angle a problem. I was cutting 9mm MDF yesterday (I hate 9mm) and didn't have any discernible angling except for the screw holes, which came out slightly oval on the back side. -- You received this message because you are subscribed to the Google Groups "lasersaur" group. To unsubscribe from this group and stop receiving emails from it, send an email to lasersaur+...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
-- You received this message because you are subscribed to the Google Groups "lasersaur" group. To unsubscribe from this group and stop receiving emails from it, send an email to lasersaur+...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.

Steve Baker

unread,
Apr 21, 2014, 2:12:36 PM4/21/14
to lase...@googlegroups.com

With Lasersaur, there are basically five distinct places where you could
run this kind of stuff:

1) On the "export" side of the CAD tool (eg an Inkscape plugin). I don't
like this because I have to both "Save" the original model *and* remember
to "Export" it to get the processed version...and it's easy to forget.

2) On a web-based file server whenever a file is uploaded...filter it and
store both filtered and 'raw' versions of the file. This is easy to do
if you use a PHP script to upload files to the server.

3) On the file server, whenever a 'raw' file is downloaded, filter it and
serve the filtered version instead. (This is what I do).

4) On the client/browser side code in the Lasaur app. Which means that
your code has to bear the limitations of javascript's lack of speed and
it's I/O restrictions. This is just far too slow for the complexity of
the models that I have.

5) In the Beagle-Bone inside the lasersaur. But that's a fairly slow
machine with not much memory, so again, I'm not thrilled about doing that.

In the case where the BeagleBone *is* the file server, (2)/(3) and (5)
boil down to the same thing- but it's advantageous to consider the server
that's providing your CAD files to potentially be a different machine than
the server that's doing the laser cutting.

In my case, I'm storing my CAD files in a MediaWiki - so it's easy to add
filters written in any language...and I get version control, fancy search
capabilities and the ability to attach other files to my models (eg
assembly instructions or instructions to the person driving the laser
cutter).

-- Steve
>> >>> canâ EURO (tm)t do anything about that unless you do multiple

Derek Seabury

unread,
Apr 21, 2014, 3:32:57 PM4/21/14
to lase...@googlegroups.com
Good thoughts Steve, but bear in mind an inkscape plugin could actually
save steps if it performed computations (potentially generated g-code)
and uploaded to the lasersaur queue for you.

It could also post it to your wiki I suppose - but that might not be a
general enough case to build in.

/Derek
>>>>>> canâ EURO (tm)t do anything about that unless you do multiple

Michael Ang

unread,
Apr 22, 2014, 12:41:41 PM4/22/14
to lase...@googlegroups.com
Hey cool my German lesson for the day :)

For English speakers curious about FreeCAD, this is a good set of tutorials: https://www.youtube.com/playlist?list=PLu4XhOBNpasTKwjERkOoProJv9gFmdfLN

The Sketcher/constraints starts in episode 3.  I agree the Sketcher is very nice.  I've played with parametric models in SolidWorks back in the day, but usually ended up getting my model to the point the parameters would no longer propagate through the model (e.g. after some complex fillets).

I'm interested in "unwrapping" a 3D polygon model so that I can cut the faces on a laser cutter (with numbering and some munging for physical construction), if anyone has any pointers :)

  - mang

j. eric townsend

unread,
May 12, 2014, 10:03:03 PM5/12/14
to lase...@googlegroups.com
On 4/20/14, 22:00, Andy Dingley wrote:
> There's no point in trying to do predictive compensation for kerf. Make
> simplified test pieces, make a few with a variation of fit. Pick the
> ones that work.

It depends on the cost-of-cutting vs. and cost-of-trying-variations. I
use a waterjet cutter that costs $3/min + my hourly rate. The clunky
old FlowCut software does a fine job of taking a specified offset and
cutting outside/inside curves.

Over the weekend I cut a set of 14.03 parts out of 6061 Al, the job cost
me around $120 in cutting minutes. I tried to consolidate the model to
reduce the amount of cutting time, but after 3-4 hours all I did was
confuse the Flow software, I ended up cutting Stefan's original BOM.

In the academic world this is still an issue. Now it's the last week of
the semester and you've got a queue of students waiting to cut their
final projects, and again, "time is money!</warcraftvoice>"

So, all that being said, I think Stefan is correct about wanting to keep
Lasersaur code as simple and functional as possible. I don't expect it
to understand inside vs. outside cuts and where to put the kerf. On the
other hand, if we had a test program that let us calculate our kerf
(maybe measure it with a caliper?) that'd be a very good number to put
in to a kerf-adjustment tool.


--
J. Eric Townsend
design: www.allartburns.org; hacking: www.flatline.net; HF: KG6ZVQ
PGP: 0xD0D8C2E8 AC9B 0A23 C61A 1B4A 27C5 F799 A681 3C11 D0D8 C2E8

--
J. Eric Townsend, IDSA
design <http://www.allartburns.org>
hacking <http://www.flatline.net>
fabrication <watch this space>

Steve Baker

unread,
May 13, 2014, 9:17:33 AM5/13/14
to lase...@googlegroups.com
You don't need calipers to measure the kerf...all it takes is a clever model!

I posted an SVG of a kerf-measurement gadget I made about a year
ago...I'll attach it to this post for those who missed it. Load it at 90
ppi. As usual, Red=Cut, Blue=Etch, Black=Ignore.

As the instructions in the file say, remove the part that's etched with an
'X', slide the other part to the right until it won't go any further (but
don't force it!) - and the arrow at the bottom points to the kerf width in
millimeters on the scale provided.

On our 100 watt v12 lasersaur, with 3.5mm plywood, we get:

1500 mm/min 100% power - 0.05mm kerf
1000 mm/min 100% power - 0.10mm kerf
600 mm/min 100% power - 0.15mm kerf
400 mm/min 60% power - 0.20mm kerf

As you can see, cutting as fast as you can with maximum power is the key
to getting a narrow kerf.

I measured that shortly after we got the machine going when the laser tube
was fairly new - I've gotten better at focussing it since then - so we
could probably have done better - but the laser tube on that machine is
losing power, so we have to run it at slower speed - so maybe not.

Note that on a v12 lasersaur, the best possible positional accuracy (if
the resolution of the stepper motors was the limiting factor) is
0.03mm...in practice, with slop in the belts and the vibrations that curse
us, it's *much* worse than that. So making allowance for an 0.05mm kerf
with a machine who's precision is far worse than 0.05mm is really kinda
silly.

I agree that with things like plasma cutters, water jet cutters, CNC
milling machines and those gigantic kilowatt-range metal-cutting laser
cutters, the kerf is HUGE compared to the positional accuracy - so you
absolutely need to make allowances for it. But for a 'desktop' 100watt
machine cutting wood and plastic...it's utterly pointless.

The best thing you can do to solve "fit" problems due to kerf width is to
keep the lenses and mirrors spotlessly clean, to make sure that you're
extracting smoke rapidly and pumping the air-assist hard, (all of which
get you the most laser power possible), to cut at the maximum speed your
machine will go and still cut through the material completely - and above
all to focus the thing *perfectly* at the center of the thickness of the
material.

If you do that, then you don't need kerf compensation - it would be a ton
of effort for literally zero benefit.

-- Steve
KerfTest.svg
Reply all
Reply to author
Forward
0 new messages