This section will show you how you can make small changes to an existing post processor. Most post processors have some variables that can be easily modified to change or activate vendor-specific robot programming features.
As an example, the following changes will be made to existing KUKA and ABB post processors:
● Generate a program with its subprograms as one file and force programs to have 3000 lines of code per program at most. Large programs will be divided into smaller programs and called sequentially.
● Set a joint movement to generate the motion command using joint angles information.
● Override the maximum speed to 500 mm/s. Even if the robot is programmed to move faster, the speed will be limited to 500 mm/s in the post processor.
The following sections show how to make the suggested changes on a text editor.
This example will show you how you can change the default behavior of the KUKA KRC4 post processor to generate a main program with its subprograms in the same file.
Make sure the post processor editor plug-in is enabled and follow these steps to make the post processor modifications:
1.Select Program➔Post Processor Editor.
2.Select the post processor you want to customize (KUKA KRC4).
3.Select OK. A new window will open, and you’ll see the variables you can modify as shown in the following image.
4.Set the Include Sub Programs variable to True instead of False.
5.Select Save Post Processor as…
6.Enter a new name to save it (the default name uses the modification date).
You should now have a new post processor in the Posts folder of RoboDK. You can now update your project to use this new post processor by following these steps:
1.Right click your robot.
2.Select Select Post Processor.
3.Select the new post processor you created.
4.Generate your programs again to see the result.
You could also make these changes using a text editor. Follow these steps to change the default Python code of the post processor:
1.Select Program➔Add/Edit Post Processor
2.Select your post processor. For example, for KUKA KRC4 select KUKA_KRC4.
3. Select OK. The post processor will be shown in a text editor.
4.Set the variable MAX_LINES_X_PROG to 3000.
5.Set the variable INCLUDE_SUB_PROGRAMS to True.
This example will show you how you can impose a speed limit of 500 mm/s and avoid using higher speeds when generating a program with RoboDK.
In this example we assume we are using a KUKA KRC2 or KRC4 controller:
1.Select Program➔Add/Edit Post Processor
2.Select your post processor. For example, for KUKA KRC4 select KUKA_KRC4.
3.Select OK. The post processor will be shown in a text editor.
4.Locate the setSpeed function definition (def setSpeed)
5.Add the following line to make the maximum speed 500 mm/s. The line needs to be added before generating the $VEL.CP output which will change the speed in m/s:
speed_mms = min(speed_mms, 500)
This section will show you how you can modify an existing post processor to force an axial movement using joint values instead of Cartesian values.
In this example we’ll apply this change to an ABB IRC5 robot controller.
1.Find the programming manual of your robot controller. In this example we use the ABB IRC5 RAPID programming manual.
2.Look for the joint movement instructions. In this case, ABB’s absolute joint movement command is called MoveAbsJ. This command requires a jointtarget variable that defines the joint axes.
3.Select Program➔Add/Edit Post Processor and select the post processor you are currently using to modify it. If you are currently using a customizable post processor it will be selected by default.
4.You should look for the MoveJ function inside the post processor. This function defines the way post processors generate the joint motion commands. Alternatively, RoboDK uses MoveL for linear movements. Using Python programming language, modify the line that is added to the program file to provide joint angle information, as shown in the following image.
5.Finally, you may need to modify the way the post processor converts the joint angles or the pose to a string. The functions angles_2_str and pose_2_str define how the joint angles and a pose, respectively, is converted to text.
Most RoboDK post processors use joint data for joint movements and Cartesian coordinates for linear movements. It is recommended to always start the first point in a sequence of linear movements as a joint movement, specifying joint coordinates. This avoids starting a program with the wrong robot configuration and reaching a singularity or axis limits.