arcXZ_Theta()

Description

Draws a circular arc using a clockwise or counterclockwise arc. The direction is from the positive direction of the Y axis where the circular motion occurs.
This method uses the center of circle mode to control the arc path, and uses the positive and negative values ​​of the rotation angle to select clockwise or counterclockwise.
For more information about various motion methods, please see the Motion Method Explanation page.

Syntax

machine.arcXZ_Theta(cX, cZ, theta); machine.arcXZ_Theta(cX, cZ, theta, feedrate);

Parameters

machine: The Machine object.

cX: The X coordinate of the center of the circle in the circle center mode.

cZ: The Z coordinate of the center of the circle in the circle center mode.

theta: The angle to be rotated. Use positive values ​​for clockwise and negative values ​​for counterclockwise.

feedrate: Feedrate. If no parameters are passed, the last recorded feedrate will be used.

Return

bool:

true: The machine exists and is created successfully.
false: The machine does not exist or fails to be created.

Example

Set the basic parameters of the machine and move the machine in a 90-degree arc on the XZ plane.

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

#include "Motion86.h"

 

// Generate machine objects. You can use up to three machines, machine 0~2, each with three axes.

Machine machine(0);

 

// Stepper motor enable pin.

int EnablePin = 4;

 

void setup() {

  while (!Serial);

  pinMode(EnablePin, OUTPUT);

 

  // If necessary, you can reverse the direction of the motion axis.

  // In this example, you need to reverse the direction of the x-axis and y-axis.

  machine.config_ReverseDirection(AXIS_X);

  machine.config_ReverseDirection(AXIS_Y);

 

  // PPU (pulse per unit) is a virtual length unit, depending on different needs.

  // In this example, the unit length of the x-axis is set to 80 pulses, which corresponds to 1 mm in actual application.

  machine.config_PPU(AXIS_X, 80.0);

  machine.config_PPU(AXIS_Y, 80.0);

  machine.config_PPU(AXIS_Z, 1600.0);

 

  // Before controlling, the machine must be started.

  machine.machineOn();

  machine.setDefaultFeedrate(400);

 

  // Start the stepper motor.

  digitalWrite(EnablePin, LOW);

}

 

void loop() {

  // Move 90 degrees clockwise to (10, 0, 10).

  machine.arcXZ_Theta(0, 10, HALF_PI, true);

 

  // Move 90 degrees counterclockwise to (0, 0, 0).

  machine.arcXZ_Theta(0, 10, HALF_PI, false);

   

  // Wait until the planned motion is complete.

  while (machine.isMoving());

}

See also

arcXY()
arcYZ()
arcXZ()
arcXY_Theta()
arcYZ_Theta()


Library Reference

The text of the 86Duino reference is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.