手机:15640316869

QQ:618654

电话:024-25858808

地址:辽宁省沈阳市皇姑区三洞桥街道珠江街73-9-4门

最新资讯

【3D打印机使用教程】RepRap3D打印机G-code命令专家详解【第二节】【卓序科技】

第二节,Z轴高度测试与自动调平


  三角洲类型的3D打印机,由于其打印速度更快,受到很多3D打印用户的欢迎。与XYZ式3D打印机最大的一个不同,在于三角洲类型3D打印机的运动计算更加复杂,很难依赖人工调平达到较好的打印效果。因此,对Z轴的自动高度测试,以及自动调平相关的功能,就显得更加重要了。以下G-code命令,是Repetier-firmware对这方面进行支持的一组命令。当然,这些功能并不仅限于三角洲类型的3D打印机。如果是包含了Z轴高度测试微动开关的XYZ式3D打印机,也同样可以使用这些功能。


G29 Z轴高度三点测试


这条命令测试打印平面上三个点的Z轴高度,并在串口上输出结果。参数包括:


Snnn测试结果的处理方式。S1表示更新内存中的Z轴高度值(重置系统会丢失),S2表示更新内存以及EEPROM中的Z轴高度值(重置系统不会丢失)。


无参数时,G29命令表示只从串口上输出结果,不更新内存或EEPROM中的Z轴高度值。


一般来说,只有使用高位限位开关(也就是说,Z轴的限位开关位于Z轴坐标最大处),且在挤出头上附带有Z轴高度测试微动开关的机型,适合使用G29命令测试Z轴高度。其他机械配置的机型,不适合使用G29命令。G29命令由固件配置


#define FEATURE_Z_PROBE 1


决定是否开启。如果这个配置项定义为0,则编译时会去除对G29命令的支持,节省内存的使用。


命令执行时,打印平面上的三个点,其XY坐标由以下固件配置参数决定:


#define Z_PROBE_X1 -52


#define Z_PROBE_Y1 -30


#define Z_PROBE_X2 52


#define Z_PROBE_Y2 -30


#define Z_PROBE_X3 0


#define Z_PROBE_Y3 60


命令执行的开始和结束,分别会执行一段预定义的G-code。缺省的固件配置定义为:


#define Z_PROBE_START_SCRIPT “G28”


#define Z_PROBE_FINISHED_SCRIPT “”


可以看出,在缺省状态下,开始执行G29时,系统会自动对挤出头进行复位(G28命令)。结束执行G29时,没有特殊的动作。


G29命令的Z轴高度测试,通常由一个微动开关控制触发。这个开关的端口号,由Z_PROBE_PIN单独指定。


G29命令的输出,格式为:


X:0.00 Y:0.00 Z:200.00 E:0.00


Z-probe:5.01 X:-52.00 Y:-30.00


Z-probe:13.04 X:52.00 Y:-30.00


Z-probe:12.77 X:0.00 Y:60.00


X:0.00 Y:60.00 Z:-98.48 E:0.00


从以上例子的输出可以看出,G29命令一共测试了三个坐标点,分别在(-52, -30), (53, 30)以及(0, 60)的位置,形成一个正三角形。三个点的Z轴高度相差比较悬殊,在第一个点正好是5mm的情况下,后两个点分别是13.04mm以及12.77mm。第一行和最后一行,是测试开始时以及测试结束时的挤出头坐标位置。


G30 Z轴高度单点测试(单步)


这条命令作为一个完整Z轴高度测试过程的一步,测试打印平面上一个点的Z轴高度,并在串口上输出结果。这个完整的Z轴高度测试过程,通常是由3D打印机控制软件连续发出的,通过参数控制G30的执行状态。因此在手动工作方式下,G30命令只适合不带参数运行(等价于G30 P3,见下面的参数说明)。


G30命令的参数包括:


Pnnn表示测试的状态,P1表示当前这步是整个Z轴高度测试过程的第一步;P2表示当前这步是整个Z轴高度测试过程的最后一步;P3表示当前这步是Z轴高度测试过程的唯一一步,也就是说既是第一步也是最后一步;P0表示当前这步是Z轴高度测试过程中的中间一步。无参数情况下,P的缺省值是3。


与G29命令类似,G30命令同样由固件配置


#define FEATURE_Z_PROBE 1


决定是否开启。


G30命令的输出,与上面的G29输出格式一致,但只有其中的一行,需要上位机软件多次发出G30命令,再综合处理所有的输出结果。


G31 输出Z轴高度测试微动开关状态


这条命令非常简单,没有参数。执行后会输出当前Z轴高度测试微动开关的当前状态:


Z-probe state:L


其中L表示微动开关没有触发。如果是处于触发状态,这里会输出H。


G29命令、G30命令、G31命令只进行Z轴的高度测试,并不进行自动调平。有些上位机3D打印机控制软件,会通过这一组命令配合自动跳屏算法实现(上位机)热床自动调平功能。如果希望不通过上位机,只由3D打印机自身完成自动调平功能,需要使用G32命令。


G32 热床自动调平


这条命令在G29命令的基础上,不仅测试打印平面上三个点的Z轴高度,而且还会根据测试的结果,对3D打印机的机械参数进行调整,实现热床自动调平。G32命令使用的参数与G29命令是一致的:


Snnn测试结果的处理方式。S1表示更新内存中的相关参数值(重置系统会丢失),S2表示更新内存以及EEPROM中的相关参数值(重置系统不会丢失)。


G32命令执行完成时,不仅Z轴高度参数发生了改变,而且还会根据3D打印机的硬件配置,对热床进行相应的调平处理。


如果热床本身是使用步进电机进行高度控制的,那么程序会自动调整步进电机的位置,使热床自动调整为平整的状态;如果热床本身不能移动(这个应该是更常见的情况),那么G32命令会在3D打印机内存中构建一个转换矩阵(Transformation matrix),让未来3D打印机所处理的所有三维空间位置,都先经过这个矩阵的变换,保证在Z=0的情况下,正好与热床平面完全吻合。由于这里涉及到高深的计算机图形学知识,我们就不详细介绍了。有修改这方面代码需求的朋友,可以直接与打印虎进行联系。


G32命令,由固件配置


#define FEATURE_AUTOLEVEL 1


决定是否开启。


G32命令的输出,格式与G29命令类似:


X:0.00 Y:0.00 Z:200.00 E:0.00


Z-probe:5.00 X:-52.00 Y:-30.00


Z-probe:12.97 X:52.00 Y:-30.00


Z-probe:12.76 X:0.00 Y:60.00


Info: 0.99709 -0.00319 -0.07628 0.00000 0.99912 -0.4191 0.07634 0.004179 0.99621


Info: Autoleveling enabled


X:7.32 Y:64.08 Z:-95.66 E:0.00


X:0.00 Y:0.00 Z:200.00 E:0.00


除了与G29命令相似的测量信息之外,G32命令还输出了计算得到的自动调平矩阵,并且打开了自动调平功能。需要注意的一点是,G32命令虽然生成了自动调平矩阵,但并没将其保存在EEPROM中,因此下次开机这个信息将会丢失。可以配合M320 S1命令,将自动调平矩阵保存在EEPROM中。


M251 将当前Z轴位置保存为Z轴高度值


这条命令可以将当前的Z轴位置保存为Z轴高度值,以使前面的Z轴高度手动/自动测量的结果起作用。通常,M251命令只工作在三角洲机型上,并且应该与G29命令联合使用(自动测量Z轴高度)。这条命令没有相关的参数。


当3D打印机打开EEPROM支持时,这条命令还会将Z轴高度值同时保存在EEPROM中。


只有当固件配置定义


#define Z_HOME_DIR -1


也就是Z轴向正方向归位,并且定义


#define MAX_HARDWARE_ENDSTOP_Z true


也就是存在硬件的Z轴高位限位开关时,M251命令才会在编译中包含相关的代码。


通常,只有三角洲类型的3D打印机才能满足这两个条件限制。


M320/M321 开启/关闭自动调平


开启(M320)或者关闭(M321)自动调平功能,使自动调平转换矩阵起作用或不起作用。命令参数为


Snnn表示是否保存于EEPROM,没有S参数或者S0表示不保存于EEPROM,S1表示保存于EEPROM,在关闭自动调平(M321)命令中S3表示将自动调平矩阵清零且保存于EEPROM中;


M320的输出结果为:


Info:Autoleveling enabled


表示自动调平已经打开。


M321的输出结果为:


Info:Autoleveling disabled


表示自动调平已经关闭。


M322 清零自动调平转换矩阵


清零(M322)自动调平转换矩阵。显然,清零这个动作的同时自动调平功能也关闭了。命令参数为


Snnn表示是否保存于EEPROM,S0表示不保存于EEPROM,S1表示保存于EEPROM;


也就是说,


M321 S3


命令等价于


M322 S1


命令,两者都是清零自动调平矩阵,关闭自动调平功能,并且将这个设置保存于EEPROM之中。


以上三条命令,与G32命令相同,由固件配置


#define FEATURE_AUTOLEVEL 1


决定是否开启。


M322的输出结果为:


Info:Autolevel matrix reset


表示自动调平转换矩阵已经被清零。

第二节讲解到此结束,更多咨询关注沈阳卓序科技,联系我们
QQ:618654
电话:024-25858808
手机:18602418098