Movment single coordinate
Patrizio
✭
Hello,
in RAPID is possible to create a function to perform a movement of a single coordinated interpolated at the last movment?
For example
MoveL pPoint, vmax, z100, tGrip;
MoveL Move_XYZ (0,0,300), Vmax, z100, tGrip;
where the function Move_XYZ is the following:
FUNC robtarget Move_XYZ (num PosX, PosY num, num PosZ)
VAR robtarget PosXYZ;
PosXYZ: = CRobT ();
IF (PosX <> 0) THEN
PosXYZ.trans.x: = PosX;
ENDIF
IF (PosY <> 0) THEN
PosXYZ.trans.y: = PosY;
ENDIF
IF (PosZ <> 0) THEN
PosXYZ.trans.z: = PosZ;
ENDIF
RETURN PosXYZ;
ENDFUNC
I have the need that the movement derived from the function is interpolated to the previous movment but that the coordinates of the robot used to perform the function are those of arrival of pPoint. How can I do. Thank you!
For example
MoveL pPoint, vmax, z100, tGrip;
MoveL Move_XYZ (0,0,300), Vmax, z100, tGrip;
where the function Move_XYZ is the following:
FUNC robtarget Move_XYZ (num PosX, PosY num, num PosZ)
VAR robtarget PosXYZ;
PosXYZ: = CRobT ();
IF (PosX <> 0) THEN
PosXYZ.trans.x: = PosX;
ENDIF
IF (PosY <> 0) THEN
PosXYZ.trans.y: = PosY;
ENDIF
IF (PosZ <> 0) THEN
PosXYZ.trans.z: = PosZ;
ENDIF
RETURN PosXYZ;
ENDFUNC
I have the need that the movement derived from the function is interpolated to the previous movment but that the coordinates of the robot used to perform the function are those of arrival of pPoint. How can I do. Thank you!
0
Comments
-
Hello,
you can do the following:
func robtarget Move_XYZ(INOUT robtarget PosXYZ,num PosX,num PosY,num PosZ)
IF (PosX<>0) PosXYZ.trans.x:=PosXYZ.trans.x+PosX;
IF (PosY<>0) PosXYZ.trans.y:=PosXYZ.trans.y+PosY;
IF (PosZ<>0) PosXYZ.trans.z:=PosXYZ.trans.z+PosZ;
RETURN PosXYZ;
ENDfunc
then executing each movement below will move according to previous movementvar robtarget tPoint;
tPoint:=pPoint;
MoveL Move_XYZ(tPoint,0,0,0),vmax,z100,tGrip;
MoveL Move_XYZ(tPoint,0,0,300),vmax,z100,tGrip;
MoveL Move_XYZ(tPoint,100,0,0),vmax,z100,tGrip;
or you can execute directly
MoveL Move_XYZ(pPoint,0,0,0),vmax,z100,tGrip;
MoveL Move_XYZ(pPoint,0,0,300),vmax,z100,tGrip;
MoveL Move_XYZ(pPoint,100,0,0),vmax,z100,tGrip;
but then you modify the coordinates of your pPoint, i dont know if you need it for later on in your program.
BR
Peter0 -
MoveL offs(pPoint,0,0,0),vmax,z100,tGrip;
MoveL offs(pPoint,0,0,300),vmax,z100,tGrip;
MoveL offs(pPoint,100,0,0),vmax,z100,tGrip;
but then you modify the coordinates of your pPoint
BR
Amar0
Categories
- All Categories
- 5.5K RobotStudio
- 396 UpFeed
- 18 Tutorials
- 13 RobotApps
- 297 PowerPacs
- 405 RobotStudio S4
- 1.8K Developer Tools
- 250 ScreenMaker
- 2.8K Robot Controller
- 316 IRC5
- 61 OmniCore
- 7 RCS (Realistic Controller Simulation)
- 800 RAPID Programming
- AppStudio
- 3 RobotStudio AR Viewer
- 18 Wizard Easy Programming
- 105 Collaborative Robots
- 5 Job listings