Marlin固件中需要将从Gcode中获取的待打印器件的3D模型中的坐标,转换为三角洲3D打印机的三个电机轴上的坐标。 电机轴指的是三个电机对应的线轨。 电机轴坐标指的是滑块在电机轴上的位置。 笛卡尔空间坐标是指从Gcode中获取的待打印器件的3D模型中的坐标。 实现坐标转换功能的函数为calculate_delta()。 变量中的tower指的是电机轴,tower1,tower2和tower3的位置如下图所示 变量delta_tower1_x为电机轴tower1在笛卡尔坐标系中坐标x的值, 变量delta_tower1_y为电机轴tower1在笛卡尔坐标系中坐标y的值, 变量delta_tower2_x为电机轴tower2在笛卡尔坐标系中坐标x的值, 变量delta_tower2_y,delta_tower3_x,delta_tower3_y类似。 这三个电机轴转换到笛卡尔坐标系后的坐标如代码所示,原理如下图 这是三角洲3D打印机抽象的俯视图。点tower1,tower2和tower3分别为三个电机轴(因为是俯视图,所以在图中表示为一个点),这三个点构成一个等边三角形,内切圆的圆心为点z,内切圆的半径为delta_radius。 笛卡尔坐标系的原点为等边三角形内切圆的圆心,即点z;x轴穿过原点,并且与tower1和toweer2组成的线段平行;y轴经过tower3和原点;z轴经过原点并且与tower3平行。 电机轴tower1转换到笛卡尔坐标系的坐标x为点M,坐标y为点N。 电机轴tower2转换到笛卡尔坐标系的坐标x为点P,坐标y为点N。 电机轴tower3转换到笛卡尔坐标系的坐标x为0,坐标y为tower3本身。 M的坐标为(-sin60 * delta_radius, 0), N的坐标为(0, -cos60 * delta_radius), P的坐标为(sin60 * delta_radius, 0) 所以,tower1在笛卡尔空间坐标系中的x坐标delta_tower1_x= -sin60 * delta_radius,依次类推 delta_tower1_y =-cos60 * delta_radius , delta_tower2_x =sin60 * delta_radius , delta_tower2_y =-cos60 * delta_radius , delta_tower3_x =0 , delta_tower3_y =delta_radius , 再来看下代码是不是这样的。 回过头来看看是怎么计算电机轴上滑块位置的。假设有下图 点A为喷头的位置, 点B为点A投影到电机轴tower2(也是平行于笛卡尔坐标系的Z轴), 点C为滑块的位置, 点D为点A投影到笛卡尔坐标系的xy平面的点, 点E为电机轴tower2与笛卡尔坐标系的xy平面相交的点。 其中BE就是打印物品笛卡尔坐标系的z值,AC为推杆长度,AB垂直于BC,根据直角三角形斜边平方等于两直角边平方之和,即 AC*AC = AB *AB +BC*BC 其中AC已知,为推杆长度,AB可以通过喷头在笛卡尔坐标系的X坐标和Y坐标算出来,所以BC也就可以算出来了。 AB = DE XY平面如下所示 点D为前一个图点A的投影,点E为点B的投影,点A为喷头的坐标,那么点D的xy坐标也是喷头的xy坐标,是已知的。点E电机轴tower2在XY平面的点,坐标也是已知的,点K和I分别为点E在X和Y轴的投影。 那么DH = OK - OG ,即E的x坐标 - 喷头的x坐标 EH = FI = OI -OF , 即E的y坐标 - 喷头的y坐标 DE*DE = EH*EH +DH*DH 综上所述,滑块的z轴坐标 = BE + BC =喷头的z坐标 + BC =喷头的z坐标 + sqrt(推杆长度*推杆长度 - AB*AB) =喷头的z坐标 + sqrt(推杆长度*推杆长度 - (EH*EH + DH*DH)) =喷头的z坐标 + sqrt(推杆长度*推杆长度 - ((tower2的y坐标 - 喷头的y坐标) * (tower2的y坐标 - 喷头的y坐标) + (tower2的x坐标 - 喷头的x坐标) * (tower2的x坐标 - 喷头的x坐标))) 对应代码为 delta[TOWER_2] =sqrt(delta_diagonal_rod_2_tower_2 - sq(delta_tower2_x -cartesian[X_AXIS]) - sq(delta_tower2_y -cartesian[Y_AXIS]) ) + cartesian[Z_AXIS]; 现在再看看函数calculate_delta() 友情提示电机轴坐标,三个电机轴平行,并且原点在限位开关处,即原点在上面。如下所示 O1,O2,O3分别为三个电机轴的原点。 所以delta[TOWER_2] 是tower2对应的滑块在笛卡尔坐标系中z轴值。
|
你可能喜欢
人工智能与3D打印技术结合,实现小型核反应
最新《Nature》:动态界面3D打印
石墨烯增强混凝土能否推动可持续建筑? UVA
杜克大学:新型无溶剂3D打印材料,可用于医
推荐课程
神奇的3D打印
SLA3D打印工艺全套培训课程 - 软件篇
3D打印月球灯视频教程 包括完整贴图建模流
【原创发布】Cura软件修改二次开发定制视频