LinuxCNCKnowledgeBase | RecentChanges | PageIndex | Preferences | LinuxCNC.org

Laser Beam Compensation


1. Description
2. Hal module
3. Hal pins description

1. Description

When using older lasers, the beam spot is often not circular. Often the beam shape is elliptic and its shape is changing.

If the beam shape is larger in X than in Y, then the cut slot (kerf) has different dimension when path is along X versus path is along Y. (imagine the slot made by an ellipse moving around an equilateral triangle.


It was found that traveling faster in the direction normal to the widest beam, caused the slot width to reduce.

A consistant slot could be accomplished by varying velocity and distance of snout from material. Those corrections are different accordingly of direction of current move.

If we must use those machine and make enough precise burning, we can create dynamic beam shape compensation module in hal. After that and few changes we can force EMC laser machine to make precise burning in each direction.

2. Hal module

source file: upload:velctrl.comp

3. Hal pins description

Type  Dir    DefaultVal  Name                          Desc
float IN             --  velctrl.0.beam-corr-add       axis X+, correction of commanded vel in %
float IN             --  velctrl.0.beam-corr-sub       axis X-, correction of commanded vel in %
float IN             --  velctrl.0.joint-pos-cmd-in    axis X: actual position
float IN             --  velctrl.0.pos-max             ignore
float IN             --  velctrl.0.pos-min             ignore
float IN             --  velctrl.1.beam-corr-add       axis Y+, correction of commanded vel in w %
float IN             --  velctrl.1.beam-corr-sub       axis Y-, correction of commanded vel in w %
float IN             --  velctrl.1.joint-pos-cmd-in    axis Y: actual position
float IN             --  velctrl.1.pos-max             ignore
float IN             --  velctrl.1.pos-min             ignore
bit   IN          FALSE  velctrl.beam-corr-enable      enable correction according of direction of current move
float IN            100  velctrl.dist-corr             ignore
bit   IN          FALSE  velctrl.dist-corr-enable      ignore
float IN             --  velctrl.feedoverride-in       feedoverride from emc
float OUT            --  velctrl.feedoverride-out      feedoverride with correction applied

LinuxCNCKnowledgeBase | RecentChanges | PageIndex | Preferences | LinuxCNC.org
This page is read-only. Follow the BasicSteps to edit pages. | View other revisions
Last edited August 22, 2008 8:31 pm by Micges (diff)
Published under a Creative Commons License