关于Grbl中mc_arc的一点认识

跟Marlin中的贝塞尔曲线规划类似,都是将曲线离散成多个点,相邻点构成的直线的中点与该小段曲线中点的差恰好在误差范围内。圆上的离散点比较好找,因为圆是规则的,可以通过以下方法轻松找到这些离散点。

计算圆心到圆弧起始点向量b(r_axis0 ,r_axis1)和圆心到圆弧终点向量c(rt_axis0 ,rt_axis1)的夹角的正切值,注意夹角a的方向是起始点向量b逆时针转向终点向量c的角,这个在后面判断角度值符号时会用到。根据向量夹角余弦公式,推出向量夹角正切公式,套入向量b和向量c的坐标,即可得出tana。下面公式中的atan2是反正切函数,a=atan2(y,x),即角度a=y/x的正切值。

float angular_travel = atan2(r_axis0*rt_axis1-r_axis1*rt_axis0, 
    r_axis0*rt_axis0+r_axis1*rt_axis1);

if (gc_state.modal.motion == MOTION_MODE_CW_ARC) { 
    //如果圆弧顺时针移动,角度应该是负值,如果计算出的角度为正值,需要在计算出的角度基础上减去2*pi(pi为圆周率)
    if (angular_travel >= 0) { angular_travel -= 2*M_PI; }
} else {
    //如果圆弧逆时针移动,角度应该是正值,如果计算出的角度为负值,需要在计算出的角度基础上加上2*pi(pi为圆周率)
    if (angular_travel <= 0) { angular_travel += 2*M_PI; }
}

圆弧上的小线段到弧顶的最大距离,这里设为h,有图可知,假设线段|AB|长度的一半为k,那么有勾股定理可知,r*r=k*k+(r-h)*(r-h)。知道了r和h,那么k*k=h*(2*r-h)。这样总共的小线段个数也就出来了,这就是下面这个公式的含义。

uint16_t segments = floor(fabs(0.5*angular_travel*radius)/
             sqrt(settings.arc_tolerance*(2*radius - settings.arc_tolerance)));

得到段数后,对总的角度平均分segments段,即可得到满足条件的离散点,发给mc_line。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: grbl_v1_1h.zip是一个压缩文件,其包含了一个名为"grbl_v1_1h"的软件版本。Grbl是一个开源的、高性能的G代码解释器和CNC控制器固件。它被广泛应用于DIYCNC(自制数控机床)和小型CNC机床。 在grbl_v1_1h.zip,你可以找到该软件的源代码和相关文档。源代码是用C语言编写的,用于控制CNC机床进行不同的运动和操作。相关文档包括安装说明、配置指南和用户手册,这些文档将帮助用户了解和使用这个软件。 要使用grbl_v1_1h.zip,你可以首先解压缩文件并查看其的文档,以获取有关安装和配置的指南。然后,你可以根据文档的说明,将源代码加载到你的CNC控制器,并进行相应的配置。一旦成功安装和配置完毕,你就可以使用该软件来控制你的CNC机床进行各种操作,如切割、雕刻、钻孔等。 Grbl的不断发展和更新,让用户能够享受到更多功能和改进的体验。grbl_v1_1h可以帮助你将CNC机床变得更加智能和高效。无论是DIYCNC爱好者还是专业制造商,这个软件都提供了一个方便、灵活和可靠的解决方案,以实现他们的创意和生产需求。 总之,grbl_v1_1h.zip是一个包含了Grbl CNC控制器软件源代码和相关文档的压缩文件,用户可以通过使用该软件来控制和操作自己的CNC机床。 ### 回答2: grbl_v1_1h.zip是一个文件。这个文件是一个压缩包,可能包含了GRBL v1.1h版本的固件文件或者相关的程序文件。GRBL是一个开源的、高性能的G代码解释器,主要用于驱动小型CNC机床。GRBL v1.1h是GRBL团队开发的一种改进版本,可能在功能上有一些更新和改进。使用这个压缩包,我们可以解压出其的文件,并根据需要进行安装或更新GRBL固件。这个固件可以用于控制CNC机床的运动,包括移动、旋转等。GRBL v1.1h可能在性能、精度、速度等方面有所提升,并且可能修复了一些以前版本的bug。GRBL是一个非常流行和广泛使用的固件,它提供了开放源代码的优势,使用户能够根据需要自定义和调整GRBL的功能和性能。因此,grbl_v1_1h.zip可以被视为一个重要的文件,供CNC机床爱好者或专业人士使用。 ### 回答3: grbl_v1_1h.zip是一个软件文件,它是一个开源的数控机床控制软件。GRBL是一个非常流行的开源项目,它可以将G代码转换为机床控制命令,从而控制机床进行加工操作。 GRBL_v1_1h是GRBL软件的一个特定版本,它是GRBL开发者为了改进、修复错误和添加新功能而发布的一个更新版本。它在原有GRBL_v1_1版本的基础上进行了改进,提供更稳定和可靠的性能。 grbl_v1_1h.zip文件是用于安装和更新GRBL_v1_1h软件的压缩文件。要使用该软件,首先需要下载该文件并解压缩,然后将解压后的文件加载到适当的设备或平台上。 一旦安装了GRBL_v1_1h软件,用户就可以使用它来控制数控机床进行各种加工操作。用户可以通过编写和加载G代码,指定所需的加工路径和操作参数。GRBL_v1_1h将根据用户提供的G代码生成相应的机床控制命令,并向机床发送这些命令,从而实现对机床的精确控制。 总之,grbl_v1_1h.zip是一个用于安装和更新GRBL_v1_1h软件的文件,该软件是一个开源的数控机床控制软件。它可以将G代码转换为机床控制命令,从而实现对机床的精确控制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值