老熟妇,老熟女chese老熟女,亚洲AV中文无码字幕色三,超碰欧美

Delta3D打印機代碼解讀及調機心得(三) 

2016-02-21 09:53
Delta3D打印機代碼.webp

好,看了一大段代碼后小結一下。對于普通結構來說,G1 每次將新讀取gcode代碼參數(shù)傳遞給prepare_move()函數(shù)中destination數(shù)組以后,prepare_move()就會將其傳遞到plan_buffer_line()進行電機的運動。而delta結構呢,就相對復雜一點,G1命令讀取了gcode代碼參數(shù)后也是傳遞到prepare_move()函數(shù)中destination,然后marlin要計算目標坐標與當前坐標的笛卡爾距離,然后通過固定時間間隔的方式來將笛卡爾距離分成若干個小直線,通過這樣的方式來就減少cpu的浮點預算量,然后再通過calculate_delta函數(shù)來將簡化后的destination換算成三個電機的運動坐標,并傳遞到delta中,接下來就是plan_buffer_line()了。
最后!到了最后了!來看看calculate_delta()函數(shù),這個函數(shù)的主要用途是將打印件的世界坐標轉換為三個垂直的電機軸的運動坐標哦。注意:新的marlin支持SCARA結構的delta,那里也有個calculate_delta()的函數(shù),不過那個跟rostock有點差異。所以我們還是看rostock的吧。
void calculate_delta(float cartesian[3])
{
  delta[X_AXIS] = sqrt(delta_diagonal_rod_2
                       - sq(delta_tower1_x-cartesian[X_AXIS])
                       - sq(delta_tower1_y-cartesian[Y_AXIS])
                       ) + cartesian[Z_AXIS];
  delta[Y_AXIS] = sqrt(delta_diagonal_rod_2
                       - sq(delta_tower2_x-cartesian[X_AXIS])
                       - sq(delta_tower2_y-cartesian[Y_AXIS])
                       ) + cartesian[Z_AXIS];
  delta[Z_AXIS] = sqrt(delta_diagonal_rod_2
                       - sq(delta_tower3_x-cartesian[X_AXIS])
                       - sq(delta_tower3_y-cartesian[Y_AXIS])
                       ) + cartesian[Z_AXIS];
  /*
  SERIAL_ECHOPGM("cartesian x="); SERIAL_ECHO(cartesian[X_AXIS]);
  SERIAL_ECHOPGM(" y="); SERIAL_ECHO(cartesian[Y_AXIS]);
  SERIAL_ECHOPGM(" z="); SERIAL_ECHOLN(cartesian[Z_AXIS]);

  SERIAL_ECHOPGM("delta x="); SERIAL_ECHO(delta[X_AXIS]);
  SERIAL_ECHOPGM(" y="); SERIAL_ECHO(delta[Y_AXIS]);
  SERIAL_ECHOPGM(" z="); SERIAL_ECHOLN(delta[Z_AXIS]);
  */
}

代碼很簡單delta是指電機軸的運動坐標,cartesian是指打印件的世界坐標,從上面的程序來看就是從prepare_move()中經(jīng)過插值簡化的destination。大伙隨便看一個軸的換算
  delta[X_AXIS] = sqrt(delta_diagonal_rod_2
                       - sq(delta_tower1_x-cartesian[X_AXIS])
                       - sq(delta_tower1_y-cartesian[Y_AXIS])
                       ) + cartesian[Z_AXIS];
delta_diagonal_rod_2 是推桿長的平方
delta_tower1_x 是左前柱的x坐標值,是由radius這個參數(shù)算出來的
delta_tower1_y 是左前柱的y坐標值,是由radius這個參數(shù)算出來的
具體怎么算就看下面這個函數(shù)
void recalc_delta_settings(float radius, float diagonal_rod)
{
delta_tower1_x= -SIN_60*radius; // front left tower
delta_tower1_y= -COS_60*radius;           
delta_tower2_x=  SIN_60*radius; // front right tower
delta_tower2_y= -COS_60*radius;           
delta_tower3_x= 0.0;                  // back middle tower
delta_tower3_y= radius;
delta_diagonal_rod_2= sq(diagonal_rod);
}

好了回顧一下marlin的delta機型參數(shù)是需要什么?
推桿的長度、電機軸上滑塊的寬度、噴頭支架的寬度,還有三個電機的圓半徑。對不對?忘了?!不要緊,給你看看代碼
//=================================================================
//========================Delta Settings =============================
//=================================================================
// Enable DELTA kinematics and most of the default configuration for Deltas
#define DELTA

// Make delta curves from many straight lines (linear interpolation).
// This is a trade-off between visible corners (not enough segments)
// and processor overload (too many expensive sqrt calls).
#define DELTA_SEGMENTS_PER_SECOND 200

// NOTE NB all values for DELTA_* values MUST be floating point, so always have a decimal point in them

// Center-to-center distance of the holes in the diagonal push rods.
#define DELTA_DIAGONAL_ROD 250.0 // mm  //桿長

// Horizontal offset from middle of printer to smooth rod center.
#define DELTA_SMOOTH_ROD_OFFSET 175.0 // mm  //電機軸的圓半徑

// Horizontal offset of the universal joints on the end effector.
#define DELTA_EFFECTOR_OFFSET 33.0 // mm  // 裝噴嘴的平臺的中心到桿連接處的距離

// Horizontal offset of the universal joints on the carriages.
#define DELTA_CARRIAGE_OFFSET 18.0 // mm  //電機軸滑塊的距離

// Effective horizontal distance bridged by diagonal push rods.
#define DELTA_RADIUS (DELTA_SMOOTH_ROD_OFFSET-DELTA_EFFECTOR_OFFSET-DELTA_CARRIAGE_OFFSET)
通過上述的參數(shù)可以算出一個DELTA_RADIUS ,這個delta_radius就是上面“delta_tower1_x 是左前柱的x坐標值,是由radius這個參數(shù)算出來的 ”里面的radius了。
至此所有有關與delta的運動的代碼已經(jīng)通讀了一遍。下面就開始分析分析代碼和運動的關系了。


Delta3D打印機代碼解讀及調機心得(一)

Delta3D打印機代碼解讀及調機心得(二)

Delta3D打印機代碼解讀及調機心得(四)
聲明:3D打印資源庫(3dzyk)內網(wǎng)友所發(fā)表的所有內容及言論僅代表其本人,并不代表3D打印資源庫(3dzyk)觀點和立場;如對文章有異議或投訴,請联系kefu@3dzyk.cn。
一只,懶貓...

作者其他文章

Delta3D打印機代碼解讀及調機心得(三) 
快速回復 返回頂部 返回列表
久久精品无码毛片| 美丽人妻在夫前被黑人| 日韩大香蕉| 97在线视频人妻无码| 八一影院| 欧美男人久久| 国产视频在线观看| 色综合久久综合网影院| 丁香图片| 紧身裙女教师被射视频| 性色av一区二区三区久久久| 东北骚妇AV| 国产97黄色视频| 成人高清在线视频| 亚洲热妇无码Av在线播放| 九九九精品成人免费视频7| 天天射狠狠操| 国产综合久久久久| 亚洲地3区| 国产视频久久久久久| 龙州县| 亚州精品区| 久草综合在线| 黄色视频你懂得| 欧美人动性xxxxz0oz| 极品人妻| 欧美老司机| 久久人体| 97人人插| www.四虎.com| 久久久免久久久蜜桃免费| 你懂的日韩| 欧美日韩国产亚洲色| 青草狠狠插| 新人影院| 国产精品麻豆99久久久久久| 欧美视频久久| 久久高清免费视频| 国产亚洲欧美性爱| 吴忠市| 日本av网|