Hi…
As peers have already pointed out, your task is somewhat vague. But if it’s just something extremely simple, it could be like this…
1 - Create a stationary tool (toolE) and a movable object (wobjM) and a reference stationary tool as the center point of the circle (toolR)…
PERS tooldata toolE:=[FALSE,[[696.07,33.61,1182.52],[1,0,0,0]],[0.001,[0,0,0.001],[1,0,0,0],0,0,0]];
PERS wobjdata wobjM:=[TRUE,TRUE,"",[[696.07,33.61,1182.52],[1,0,0,0]],[[0,0,0],[1,0,0,0]]];
PERS tooldata toolR:=[FALSE,[[696.07,33.61,1182.52],[1,0,0,0]],[0.001,[0,0,0.001],[1,0,0,0],0,0,0]];
2 - Create the starting point of the circle, using the same position as the reference tool, another position for the rotation movements…
PERS robtarget P_0:=[[696.07,33.61,1182.52],[0.020359,-0.0363037,-0.998258,0.0418107],[0,-1,0,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];
VAR robtarget P_1;
3 - Build your logic and test…
Here’s an example…
MODULE Module1
PERS tooldata toolE:=[FALSE,[[696.07,33.61,1182.52],[1,0,0,0]],[0.001,[0,0,0.001],[1,0,0,0],0,0,0]];
PERS wobjdata wobjM:=[TRUE,TRUE,"",[[696.07,33.61,1182.52],[1,0,0,0]],[[0,0,0],[1,0,0,0]]];
PERS tooldata toolR:=[FALSE,[[696.07,33.61,1182.52],[1,0,0,0]],[0.001,[0,0,0.001],[1,0,0,0],0,0,0]];
PERS robtarget P_0:=[[696.07,33.61,1182.52],[0.020359,-0.0363037,-0.998258,0.0418107],[0,-1,0,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];
VAR robtarget P_1;
PROC main()
VAR num r:=300;
MoveJ P_0,v300,fine,tool0\WObj:=wobj0;
toolE:=toolR;
! r = radius of circle ...
Add toolE.tframe.trans.x,r;
WHILE TRUE DO
P_1:=RelTool(CalcRobT(CalcJointT(Offs(P_0,0,0,0),tool0\WObj:=wobj0),toolE\WObj:=wobjM),0,0,0\Rz:=0);
MoveL P_1,v1000,fine,toolE\WObj:=wobjM;
MoveL RelTool(P_1,0,0,0\Rz:=180),v1000,fine,toolE\WObj:=wobjM;
ConfL\Off;
MoveL RelTool(P_1,0,0,0\Rz:=-360),v1000,fine,toolE\WObj:=wobjM;
ConfL\On;
MoveJ P_0,v1000,fine,tool0\WObj:=wobj0;
ENDWHILE
ENDPROC
ENDMODULE
good job.