circleXY()

Description

Use a clockwise arc or counterclockwise arc to draw a complete circle. The direction is from the positive direction of the Z axis where the circular motion occurs.
This method uses the center of circle mode to control the arc path. Since it is a complete circular motion, the target position will return to the starting position.
For more information about various motion methods, please refer to the Motion Method Explanation page.

Syntax

machine.circleXY(cX, cY); machine.circleXY(cX, cY, revDir); machine.circleXY(cX, cY, revDir, feedrate);

Parameters

machine: Machine object.

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

cY: The Y coordinate of the center of the circle in circle center mode.

revDir: Reverse direction, use true for counterclockwise, use false for clockwise, and use clockwise by default.

feedrate: Feedrate. If no parameter is 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 make the machine draw a circle on the XY 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 a circle clockwise with the center at (0, 10, 0).

  machine.circleXY(0, 10, true);

 

  // Move a circle with center (0, 10, 0) counterclockwise.

  machine.circleXY(0, 10, false);

   

  // Wait until the planned motion is complete.

  while (machine.isMoving());

}

See also

circleYZ()
circleXZ()


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.