arcYZ()

描述

使用顺时针弧或逆时针划圆弧。方向是从发生圆周运动的 X 轴的正方向看的。
此方法依照输入参数的不同来决定使用两种不同的方式来控制弧线路径:
1. 圆心模式 即给予圆心与终点位置来计算该弧线之路径。
2. 半径模式 即给予半径与终点位置来计算该弧线之路径。
※ 注意,不论是哪一种弧线运动方式都有可能会因为参数设定错误导至目标不在圆上,这将会导致机器出现非预期运动。
如欲了解各种运动方法请详见运动方法解说页面。

语法

machine.arcYZ(r, dstY, dstZ);
machine.arcYZ(r, dstY, dstZ, revDir);
machine.arcYZ(r, dstY, dstZ, revDir, feedrate);
machine.arcYZ(cY, cZ, dstY, dstZ);
machine.arcYZ(cY, cZ, dstY, dstZ, revDir);
machine.arcYZ(cY, cZ, dstY, dstZ, revDir, feedrate);

参数

machine:为 Machine物件。

r: 半径模式下的圆弧半径。

cY: 圆心模式下的圆心 Y 座标。

cZ: 圆心模式下的圆心 Z 座标。

dstY: 目标 Y 座标。

dstZ: 目标 Z 座标。

revDir: 反转方向,逆时针时使用 true,顺时针时使用 false,预设使用顺时针。

feedrate: 进给速度,不传参数时将使用最后一次记录的进给速度。

回传

bool:

true: 机器存在且创建成功。
false: 机器不存在或创建失败。

范例

设定机器的基本参数,并将机器在 YZ 平面上各别用两种模式做弧线运动。

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 顺时针移动到 (0, 10, 10)。

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

 

  // 以半径 10 逆时针移动到 (0, 0, 0)。

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

 

  // 以圆心 (0, 0, 10) 顺时针移动到 (0, 10, 10)。

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

 

  // 以圆心 (0, 0, 10) 逆时针移动到 (0, 0, 0)。

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

   

  // 等待直到已规划之运动完成。

  while (machine.isMoving());

}

See also

arcXY()
arcYZ()
arcXY_Theta()
arcYZ_Theta()
arcXZ_Theta()


函式库参考

86Duino 参考资料的文字遵循知识共享署名-Creative Commons Attribution-ShareAlike 3.0 License。参考资料中的程式码范例已发布到公共领域。