Marlin中delta结构的笛卡尔空间坐标和电机轴坐标的转换详解_第1页
Marlin中delta结构的笛卡尔空间坐标和电机轴坐标的转换详解_第2页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Marlin固件中需要将从Geode中获取的待打印器件的3D模型中的坐标,转换为三角洲3D打印机的三个电机轴上的坐标。电机轴指的是三个电机对应的线轨。电机轴坐标指的是滑块在电机轴上的位置。笛卡尔空间坐标是指从Geode中获取的待打印器件的3D模型中的坐标。实现坐标转换功能的函数为calculate_delta()。voidcalculate_deIta(floattcartesian3deltaTOWER_1=sqrt(de1ta_diagonal_rod_2_tower_1- sq(delt已-cartesianX_AXIS)- c:q(dslta_towerl_y-广rt十ou:mnE)+

2、cartEsi已nZ_AXIE;deltaT0WER_2=tsqiL(delta_diagonal_rod_2_tower_2- sq(del1:&_七期总2_区-cartesianX_AXIS)- sq(delta_tower2_y-cartesianY_AXIS)+cartccian;deltaT0WER_3=sqra_diagonal_rod_2_towr_3- sq(delta_tower3_K-cartesianX_AXLti)- sq(deltdtowerdy-cartesianYAXIS)+cartesianZ_AXI3;变量中的tower指的是电机轴,towerl,to

3、wer2和tower3的位置如下图所示变量delta_tower1_x为电机轴towerl在笛卡尔坐标系中坐标x的值,变量delta_tower1_y为电机轴tower1在笛卡尔坐标系中坐标y的值,变量delta_tower2_x为电机轴tower2在笛卡尔坐标系中坐标x的值,变量delta_tower2_y,delta_tower3_x,delta_tower3_y类似。这三个电机轴转换到笛卡尔坐标系后的坐标如代码所示,原理如下图这是三角洲3D打印机抽象的俯视图。点towerl,tower2和tower3分别为三个电机轴(因为是俯视图,所以在图中表示为一个点),这三个点构成一个等边三角形,内

4、切圆的圆心为点z,内切圆的半径为delta_radius。笛卡尔坐标系的原点为等边三角形内切圆的圆心,即点z;x轴穿过原点,并且与towerl和toweer2组成的线段平行;y轴经过tower3和原点;z轴经过原点并且与tower3平行。电机轴towerl转换到笛卡尔坐标系的坐标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_r

5、adius,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,再来看下代码是不是这样的。thfrseaTiethedefaultvaluercanb$overridenwithH665FloDtfloatfloatFloHt

6、floatfloatfloatfloatfloatFloDtfloatfloatFloHtfloatdeltcdeltadeltadeltadeltaltadelt-sdeltadeltadoltcdeltadeltadeltadeltaradiKs=DELTA_FADIEJ3;towejrl_x-£Ib_6Utrmerl_y=-C0S_6CtowisrZ_x=SIiJ_tiOtowEjr-2_y-CDS_6utwer3x=D;(delta_radins+* (delta_radius+亓(delta_radiuis+* (delta_radins+DELTA_RADI血_TRIM_

7、TOWER_1;/DELTAZRADIUS_TRIM_TmTR_1);DET1A_RADIJS_TRIM_IWER_E;/DELTA_RADIUS_TRIM_IWER_2:zV£rantleftteiwtrfrontrighttnwsrbackmiddletow&r10wisr3_y=fd&lto.rcdius+DELTA-RADIUS.TRIM_TOWEFL3):dieiiLl_rod-DELTA_DIAGONAL_POD:dLacona1_rcd_trim_towex_1-IiELIDIAaDNAL.ROE.IEIbLTUWEFL11dinnflil_rGd_tr

8、iHLtQ阿r_2=DELTA_DIAGONAL_ROD_TRIM_IWER_?;d1agema1_rcd_trun_tower_3DELTA_DIAG0hlAL_ROD_TRIM_TOWER_3:diaLgoiiaLl_rcd_2_tcnwr_1-sq(delta_diaj&tial_rodd1agnnal_rod_Z_turnr_2=sg(delta_dlogo口日l_rodd1agcma1_rcid_2_tower_3sq(delta_dlagonal_roddelta_diag&ttal_r&d_tritti_toTFsr_l)5+dsilta_diago口日_

9、rod_triDLta'n,i3rZ);+de1ta_diagdeial_r0d_t:ri):回过头来看看是怎么计算电机轴上滑块位置的。假设有下图B打卑拘丿:点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坐标算出

10、来,所以BC也就可以算出来了。AB=DEXY平面如下所示点D为前一个图点A的投影,点E为点B的投影,点A为喷头的坐标,那么点D的xy坐标也是喷头的xy坐标,是已知的。点E电机轴tower2在XY平面的点,坐标也是已知的,点K和丨分别为点E在X和Y轴的投影。那么DH=OK-OG,即E的x坐标-喷头的x坐标EH=FI=01-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坐标)对应代码为deltaT0WER_2=sqrt(delta_diagonal_

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论