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"

 

// 创建一个机器对象。您最多可以使用三个机器,0 到 2,每个机器包含三个轴。

Machine machine(0);

 

// 步进电机的有效引脚。

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 个脉冲,在实际应用中对应 1 毫米。

  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, 0) 坐标,半径为 10。

  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);

e>

 

 

  // 等待计划移动完成。

  while (machine.isMoving());

 

参考

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


函数库参考主页

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