Moves the robot's tool tip in a complete circle defined by three Location values.
Move.Circle (location_1, location_2, profile_1)
Prerequisites
Parameters
location_1
A required Location Object or an expression that evaluates to a Location Object value. Can be either a Cartesian or an Angles type value.
location_2
A required Location Object or an expression that evaluates to a Location Object value. Can be either a Cartesian or an Angles type value.
profile_1
A required Profile Object or an expression that evaluates to a Profile Object value. The Straight property that specifies a Cartesian straight-line or a joint interpolated motion is ignored since the motion is always performed in Cartesian coordinates.
Remarks
This method simultaneously moves all of the axes of a robot in a coordinated, position controlled motion such that the robot's tool tip follows an arc path around a complete circle. The circle is defined by the XYZ values of the final position of the previous motion and location_1 and location_2. The performance parameters for the motion are defined by the Profile Object, profile_1 (e.g. Speed, Accel, Decel, AccelRamp, DecelRamp).
![]()
The circle begins at the final "total XYZ position" of the previous motion, goes through the "total" XYZ position of location_1 and the "total" XYZ position of location_2 and terminates at the starting position. The "total positions" of location_1 and location_2 are computed as the results of evaluating each Location'sPosWrtRef value relative to the “total position” of their respective reference frames, if any. If a Location is specified as an Angles type, its XYZ position is computed using the kinematic model for the attached robot.
If profile_1 has its InRange property set to zero or a positive value, the system will bring the robot to a stop at the final position. If this property is negative and the next motion statement is executed before this motion reaches its destination, GPL will attempt to blend the two motions together into a “continuous path”. Circular interpolated motions can be blended with any of the motion types, i.e. Cartesian straight-line, joint interpolated or other circular interpolated motions.
If the previous motion is still in process when the Move.Circle instruction is executed, the Move.Circle instruction will temporarily suspend execution of its thread. At the conclusion of the previous motion or as soon as the new Circle motion starts to be blended with the previous motion, the thread will automatically continue execution at the next instruction in the GPL procedure.
The following are special notes regarding the use of the Circle method.
- The circle can be defined in any arbitrary orientation and need not lie in an cardinal plane.
- The XYZ values of location_1 and location_2 need not be equal distance between the starting and ending positions of the circle although values closer to 120 degrees apart will increase the accuracy of the plane of the circle.
- If the three XYZ points that define the circle lie in a straight-line, the Circle method motion is automatically converted to a short move to nowhere.
- When blending a Circle motion with another motion, the s-curve AccelRamp and DecelRamp should be set to 0 and the Accel and Decel properties should be set high to ensure that the path tracks the circular path as closely as possible.
- During the circular motion, the orientation of the tool is held constant.
Examples
Dim p0 As New Location ' Create location objects
Dim p1 As New Location
Dim p2 As New Location
p0.XYZ(100,200,-100,0,180,0) 'Center on (200,200),radius 100
p1.XYZ(200,300,-100,0,180,0)
p2.XYZ(200,100,-100,0,180,0)
Move.Loc(p0,pf_start) ' Move to start position
Move.Circle(p1,p2,pf_on_path) ' Move in a circle
Move.WaitForEOM ' Pause thread until motion doneSee Also
Location Class | Move Class | Move.Arc | Move.Loc | Profile Class