arcXY()

描述

使用順時針弧或逆時針劃圓弧。方向是從發生圓周運動的 Z 軸的正方向看的。
此方法依照輸入參數的不同來決定使用兩種不同的方式來控制弧線路徑:
1. 圓心模式 – 即給予圓心與終點位置來計算該弧線之路徑。
2. 半徑模式 – 即給予半徑與終點位置來計算該弧線之路徑。
※ 注意,不論是哪一種弧線運動方式都有可能會因為參數設定錯誤導至目標不在圓上,這將會導致機器出現非預期運動。
如欲了解各種運動方法請詳見運動方法解說頁面。

語法

machine.arcXY(r, dstX, dstY);
machine.arcXY(r, dstX, dstY, revDir);
machine.arcXY(r, dstX, dstY, revDir, feedrate);
machine.arcXY(cX, cY, dstX, dstY);
machine.arcXY(cX, cY, dstX, dstY, revDir);
machine.arcXY(cX, cY, dstX, dstY, revDir, feedrate);

參數

machine:為 Machine物件。

r: 半徑模式下的圓弧半徑。

cX: 圓心模式下的圓心 X 座標。

cY: 圓心模式下的圓心 Y 座標。

dstX: 目標 X 座標。

dstY: 目標 Y 座標。

revDir: 反轉方向,逆時針時使用 true,順時針時使用 false,預設使用順時針。

feedrate: 進給速度,不傳參數時將使用最後一次記錄的進給速度。

回傳

bool:

true: 機器存在且創建成功。
false: 機器不存在或創建失敗。

範例

設定機器的基本參數,並將機器在 XY 平面上各別用兩種模式做弧線運動。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

#include "Motion86.h"

 

// 產生機器物件,最多可使用 machine 0~2 三台機器,每台機器三軸。

Machine machine(0);

 

// 步進馬達 enable pin。

int EnablePin = 4;

 

void setup() {

  while (!Serial);

  pinMode(EnablePin, OUTPUT);

 

  // 若有需要,可以反轉運動軸的運動方向。

  // 在此範例中,需要反轉 x 軸和 y 軸的方向。

  machine.config_ReverseDirection(AXIS_X);

  machine.config_ReverseDirection(AXIS_Y);

 

  // PPU (pulse per unit) 是一虛擬長度單位,依照不同需求而定。

  // 此例 x 軸的單位長度設定為 80 pulses,對應到實際應用為 1 mm。

  machine.config_PPU(AXIS_X, 80.0);

  machine.config_PPU(AXIS_Y, 80.0);

  machine.config_PPU(AXIS_Z, 1600.0);

 

  // 控制之前,必須啟動機器。

  machine.machineOn();

  machine.setDefaultFeedrate(400);

 

  // 啟動步進馬達。

  digitalWrite(EnablePin, LOW);

}

 

void loop() {

  // 以半徑 10 順時針移動到 (10, 10, 0)。

  machine.arcXY(10, 10, 10, true);

 

  // 以半徑 10 逆時針移動到 (0, 0, 0)。

  machine.arcXY(10, 0, 0, false);

 

  // 以圓心 (0, 0, 10) 順時針移動到 (10, 10, 0)。

  machine.arcXY(0, 10, 10, 10, true);

 

  // 以圓心 (0, 0, 10) 逆時針移動到 (0, 0, 0)。

  machine.arcXY(0, 10, 0, 0, false);

 

  // 等待直到已規劃之運動完成。

  while (machine.isMoving());

}

See also

arcYZ()
arcXZ()
arcXY_Theta()
arcYZ_Theta()
arcXZ_Theta()


函式庫參考主頁面

86Duino 參考資料的文字遵循知識共享署名-Creative Commons Attribution-ShareAlike 3.0 License。參考資料中的程式碼範例已發佈到公共領域。