当前位置:首页 > 技术 > 雕刻机 > 正文内容

GRBL如何对刀

Watrt7年前 (2019-09-06)雕刻机79230

对于购买和使用入门级 CNC雕刻机的使用者来说,probing可能会让人产生许多疑问,因为入门级 CNC雕刻机的硬体和软体都未必内建 probing功能。Probing究竟是什么呢?Probing就 CNC雕刻机利用一个 probe(探针 )去探测一个工件 (workpiece)的位置。最简单的 Z轴 probing,雕刻机就可以自动探测到工件表面 (surface)的位置,并把这个位置设置成 Z轴的零。这样子 对好刀之后,你雕刻的深度才有保证。

在未有自动化的 Z-probing之前,一般人是如何对刀的呢?很多教学都会叫你拿一张纸,放在雕刻刀和工件之间,如果纸张可以自由移动,就是未够贴近,可以把雕刻刀再降低一些,直到纸张仅仅不能移动,就把这位置设成 Z轴的零 (通常雕刻机控制软体都有 Zero Z/ResetZero这样的一个按钮 )。

那 GRBL的 Z-probing是如何做到全自动的呢?GRBL把 Arduino的 A5pin专门留给 probing使用。如果是预设状态的话 ($6=0),A5pin平常处于高电位水平 (HIGH),而当 A5的讯号变为 LOW的时候 (一般而言,把 A5 接地就会变为 LOW了 ),GRBL就知道对刀动作完成了。

接线方面,一般就会把 Arduino的 GND接到刀具上,然后 A5就接到一片金属造的对刀块。开始时先把对刀块放到刀具的下方,然后启动对刀程序。刚开始时两者是没有接触的,所以没有通电。刀具会缓缓下降,直到接触到对刀块,两者通电,A5的讯号由 HIGH变为  LOW,令 GRBL知道对刀完成,程式就会把当时 Z轴的位置设成零。

使用上面这种方法对刀时,大家要特别留意一下雕刻刀导不导电。虽说我未曾遇到过唔导电的雕刻刀,但据说某些雕刻刀的 coating是不导电的。使用了不导电的雕刻刀去对刀的话,对刀程序是不会自动停止的,这样很可能会损害刀具、工件和雕刻机。

1.jpg

实际使用上,市面有一些十分便宜的接触式对刀块,只要买回来,插到 GRBLcontroller上面就能用。部分雕刻机控制软体 (Gcodesender),例如 UniversalGCodeSender(简称 UGCS),本身内建了对刀的模组,只要设定好对刀块的厚度和对刀时刀具运行的 距离和方向,就能立即使用对刀功能 

2.jpg

另外一些雕刻机控制软体,例如我最喜爱的 Candle,它的自动对刀按钮是要自行输入Gcode命令的,这时我们就要学一点点 Gcode了。对刀用的 Gcode命令就是 G38.2(probetowardworkpiece,stoponcontact)。

G90G21G38.2Z-50F100;        
G92Z1.6;        
G0Z20;

上面的三行 Gcode是我购买那个便宜对刀块时,店家给的用来对刀的 Gcode码,让我们看看它们代表什么。第一行的 G90是使用绝对座标,G21是指单位用 mm,G38.2就是对刀,其后的 Z-50指明了方向和距离,之后的 F100就是 feedrate,即 是行进的速度。这一行的命令是会进行到有接触为止 (stoponcontact)。

当第一行命令执行完成之后,刀具是会停留在接触点那个位置的,这时会执行第二行的命令。G92就是原点设定,就是一般我们按 ZeroZ时所执行的命令。其后的 Z1.6,就是指定现在的 Z位置是 1.6。那为什么不是零呢,而是 1.6呢?因为这个 1.6就 是对刀块的厚度,要减去对刀块的厚度,才会是工件的表面的位置。

最后的第三行,就是快速移动 (G0)到 Z20的位置。

3.jpg

Candle—Settings

当然,以上只是店家的建议,例如我的小型雕刻机,Z轴的行程没有那么大,所以我就改为 G0Z5。又例如我觉得用相对座标 G91比较好。

G91G21G38.2Z-50F100;        
G92Z1.6;        
G0Z5;

也有人会连续做两次对刀,第一次行得快一点 (F100),完成之后只退后一点点 (例如 2mm,G0Z2),再用慢速进行第二次对刀 (F10)。

G91G21G38.2Z-30F100;        
G92Z1.6;        
G0Z2;        
G91G21G38.2Z-10F10;        
G92Z1.6;        
G0Z20;

有人认为这样用慢速进行第二次对刀会准确一点 (当然你可以第一次就用超慢速,但可能你对一次刀要用几分钟,哈哈哈 )。但以我个人的经验,用 F100对一次就很准了。可能因为我自己以雕木为主,对准确度的要求没有那么的高。如果是雕 PCB的话,对准确度的 要求就会高一点。

既然有了 Z-probing,那有没有 X轴和 Y轴的 probing呢?当然是有的,不过 X轴和 Y轴天生有一个问题,就是不像 Z轴可以轻易的把对刀块放上去,因为工件的另外两个平面都垂直的。

4.jpg

市面上也有一些很聪明的角位对刀块,可以于在工件的角位上,以方便一次过做齐 X/Y/Z的 probing。不过这些对刀块都很难买得到,自己动手做也不那么容易。

5.jpg

于是,就有人想出了世界上最便宜的对刀块,就是可导电的胶纸。例如上面这种铜的胶纸,我淘回来也不用十块钱一卷,有 30米长,够用很久的了。(也有人会用锡纸,但钖纸本身无黏力,个人觉得比较麻烦 )

胶纸可以直接贴在工件的边缘,一般我自己会在最后接叠成一个尾巴,以方便用鳄鱼夹夹住。

6.jpg

按照上图的情况,我自己对刀用的 Gcode便会如下:

G91G21G38.2X50F100;(向 X为正的方向对刀,最多行 50mm)        
G92X-1.1; (图中单刃铣刀半径是 1mm,加上胶纸的厚度,所以是 1.1mm)        
G0X-2;(在 X轴的方向往后退一点点 )        
G0Z5;(刀具升高到我的安全距离 5mm)        
G0X0;(刀具行进到 X0的位置 )

使用 X/Y轴的 probing的时候,除了要减去对刀块的厚度 (用铜胶纸的话,就是 0.1mm),也记得要减去刀刃的半径。因为很可能你每次使用的刀具的半径都不一样,所以每次换刀之后也要注意一下要不要修改对刀用的 Gcode,或在对刀程序设定好刀具 的半径。

我用开的 Candle软体可以设定 4个 custombuttons,所以我也习惯把对刀用的 Gcode储存到 custombuttons里面。

7.jpg

使用 X/Y轴 probing的时候,必须使用圆枉体形状的刀具,例如铣刀。其他形状,例如平底尖刀,它刀尖的半径是会变化而且不规则的,对刀得出来的数据并不可靠。

做 X/Yprobing的时候,不只可以寻找边缘,其实亦可以寻中心点的。例如 SourceRabbitG-codeSender,就内建了自动寻找中心点的功能。不过,如果你不介 意自己用人手去计算的话,其实自己用 Gcode去 probe两边加埋再除二其实也很简单。

8.jpg

除了把铜胶带直接贴在工件上,我也会把它贴在定位块上。这样铜胶带可以重覆使用,也不用每次雕刻都要贴一次。而且有些工件,例如 1mm厚的木板,也不适合在边缘贴上铜胶带。

Probing其实亦唔止係找到工件的位置咁简单。许多进阶的 CAM软体,都有 autoleveling的功能,可以自动把水平的刀路 map到放置得不水平的工件上 (常用于 PCB雕刻 )。做 autoleveling时 CAM软体就会多点取样工件的表面,再 按得到的数据去重新计算刀路。

9.jpg

例如上面的这个 Estlcam软体,更可以把平面的刀路,map到滑鼠这样的曲面上呢。

自从 GRBL支援了 probing之后,probing再也不是遥不可及的了。现在差的,就是各大 Gcodesender加强对 probing的支援。

打赏 支付宝打赏 微信打赏

相关文章

GRBL v1.1版本的限位开关连接

GRBL v1.1版本的限位开关连接

     GRBL v1.1版本的限位开关连接wiki翻译Wiring Limit SwitchesSource websit:https://github.com/gnea/grbl/wiki/Wiring-Limit-SwitchesThe limit switchesare used to detect the physical limits of the working area and to position thehead in initial posi...