Automatic process path optimization
![]()
Path optimization
Automated process path optimization is a functional package that can help reducing the user’s effort in offline programming. Offline programming is normally geared towards achieving an “optimal” process toolpath in terms of:
-
avoiding collisions
-
keeping the machine / robot system away from singularities and axis limits
-
ensuring the reachability of the toolpath
-
aligning the process with reference values and keeping it within specified tolerances
-
fulfilling other custom guidelines.
The automated process path optimization evaluates the whole toolpath, except for the connection link between operations; i.e. the range (program, group or operation) that has been selected and tries to find an optimized solution that matches with the given quality criteria and results in minimum costs.
Although the execution evaluates the toolpath and potentially optimizes any individual position, it will preserve explicitly defined (manual) programming events and not overwrite them, such as:
-
teach events
-
interpolations
-
jolt optimizations
-
suppressed positions.
With this information in mind one could sketch the workflow of toolpath creation and the step of when to apply the automatic toolpath optimization as in the picture below.
The automatic process path optimization is a package of methods that can analyze and modify the process path autonomously. Its main objective is to modify that toolpath section in such a way that it is free of collisions, free of singularity conflicts and always reachable under these conditions.
The main driver for the automatic optimization is to generate solutions that meet the given toolpath quality criteria at lowest possible costs.
Because automatic process path optimization can be a time consuming process, it has to be started on demand with the dedicated command in the Active program or Toolpath monitor dashboard.
Optimization settings
The attributes to manage the automatic process path optimization can be found in the Automatic path optimization tech tab.
Optimization control
By default not all attributes are being displayed. It is limited to the most common applied ones. Switching the Expert mode button at the top right of the dashboard will expand the container to show all available attributes.
The Optimization control is a set of attributes to manage the optimization process. Most of these attributes are common for all situations, but some depend on the applied technology or the type of manufacturing resource. The image above is only an example.
| Attribute | Description | Remark | Mode | |
|---|---|---|---|---|
![]() | Heuristic parameter to balance between best result and fastest computation time. | The value can be interpreted as cost tolerance per meter toolpath. A value of 0 would result in the global best result, i.e. lowest costs, regardless the required computation time. A value of 1 would mean that even a toolpath having higher costs up to 1 per meter in average would be acceptable as optimization result, though there would be better results with lower total costs. | ||
| In the standard optimization process, each toolpath position is analyzed against the collision tolerance that has been set in the simulation settings. When the initial toolpath position has collisions, the optimization tends to find a solution very close to this collision (or collision tolerance), to minimize the costs impact. With the following attributes an additional collision free requirement can be defined. | ||||
| Push away | Activates an additional optimization criterion with the goal to increase the distance between possible colliding objects. | It works as a repulsive force that attempts to increase the distance between the objects while also taking other target criteria into account. | ||
| Intensity | The strength of the repulsion effect. | Depending on the cost of other target criteria, a certain degree of strength can have different visible impacts. | ||
| Safety clearance | The minimum angular distance from collision to be maintained if possible. | If the safety distance cannot be maintained, solutions closer to the collision are also selected. A default value of 1 deg. has been set. | Expert | |
| Max. # variations | Divides the range in a maximum number of variations, i.e. step size. | Expert | ||
| Max. rotary step | The maximum allowed rotation step per variation of the robot / machine axis. | Expert | ||
| Abort if no solution | Terminates the optimization. | To prevent unnecessary long computation times, the optimization process will be aborted when on the first iteration step no solution has been found. | Expert | |
| If the resource has limited rotary axis, closed contour geometry can lead to unwind situations depending on start point and process direction. | ||||
| Use turn variants | Prevent unwind situations by selecting proper turn values for the first process point. | Limited to one turn value below and one above the default turn value. Turn variants will be not considered, if the turn value is already set for the first process point. | Expert | |
| The automatic toolpath optimization builds an optimized toolpath based on the incident validation at the toolpath positions and the via points on circular toolpath sections. It cannot prevent that in between these toolpath positions the trajectory still encounters some incident issue, because the trajectory itself cannot be evaluated. With using the motion check of the data of the toolpath, the algorithm can define intermediate points between the toolpath positions and evaluate them for incidents. The quality evaluation on these intermediate points restricts for incidents on collision, reachability and singularity. | ||||
| Max. distance | The maximum Cartesian distance between two consecutive points to be checked. | Expert | ||
| Max. angle | The maximum angular ‘distance’ between two consecutive points to be checked. | Expert | ||
| Toolpath quality is measured in costs. Incidents on toolpath positions, or between the positions normally increase these costs. The automatic optimization can identify the area of impact of these incidents. By trying to limit such area, the costs will reduce. This can be achieved by adding, inserting additional process points on the toolpath around these critical areas. | ||||
| Insert process points | Switch to enable to insert additional process points. | |||
| Minimum distance | The minimum Cartesian distance between two process points. | Measured between two inserted process points or between the inserted process point and an existing one. | Expert | |
| Minimum distance factor | The minimum distance as factor of the local process speed. | Measured between two inserted process points or between the inserted process point and an existing one. | Expert | |
The inserted process points belong to the automatic optimization data. This means that when running another optimization, removing the optimization data or anything else that causes a recomputation of the initial toolpath, these inserted process points will be deleted.
Variation space
By default not all attributes are being displayed. It is limited to the most common applied ones. Switching the Expert mode button at the top right of the dashboard will expand the container to show all available attributes.
The Variation space defines what modifications can be made to the toolpath elements to search for the optimal solution. It shows all variables that can be included in the optimization process, their range within they can be varied and the distribution step or discretization within that range.
The variables here might be specific for a technology or a certain technology setup in combination with an OEM brand controller and robot or machine. In other words; the exact content of the container might look different for each case.
The Variation parameters describe which axis of the toolpath element may be modified.
| Parameter | Description | Optimization options | Remark | Mode | |
|---|---|---|---|---|---|
| Tangent rotation | Varies the toolpath position while rotating it around its tangent direction. | Switch to include it in the optimization process. | Expert | ||
| Bi-tangent rotation | Varies the toolpath position while rotating it around its bi-tangent direction. | Switch to include it in the optimization process. | Expert | ||
| Singularity orientation | Evaluates singularity situations of the robot or machine. In case of a robot scenario, the singularity orientation means the rotation of the toolpath position around its normal axis. | Switch to include it in the optimization process. | Expert | ||
| Normal rotation (arc welding technology) | Varies the toolpath position while rotating it around its normal direction. | Switch to include it in the optimization process. | Expert |
The Boundary conditions section includes additional parameters that can be introduced to limit the amount of variations. Where normally the tangent and bi-tangent rotation of the toolpath position can vary between -180 and +180 degrees, cause these parameters extra conditions to allow the tangent and bi-tangent axis to rotate only within the range and as long as the boundary condition is still met.
| Parameter | Description | Optimization options | Remark | |
|---|---|---|---|---|
| Max. process angle deviation | The maximum allowed process angle deviation from the reference direction. | An optimization result is accepted when the process angle is smaller or equal to this value. This value can be only edited when its corresponding criteria Process angle deviation has been disabled from the quality evaluation. | ||
| Max. work angle deviation (arc welding technology) | The maximum allowed work angle deviation from the reference direction. | Only available when the process angle deviation criteria has been replaced by separated work and tool angle criteria. | ||
| Max. travel angle deviation (arc welding technology) | The maximum allowed travel angle deviation from the reference direction. | Only available when the process angle deviation criteria has been replaced by separated work and tool angle criteria. | ||
| Max. tool angle deviation (arc welding technology) | The maximum allowed tool angle deviation from the reference direction. |
Approach/Retract
By default not all attributes are being displayed. It is limited to the most common applied ones. Switching the Expert mode button at the top right of the dashboard will expand the container to show all available attributes.
The Approach/Retract defines what modifications can be made to the toolpath elements to search for the optimal collision free and reachable solution. It shows all variables that can be included in the optimization process.
The parameters to control the approach/retract optimization:
| Parameter | Description | Remark | Mode | |
|---|---|---|---|---|
| Collision tolerance | Defines additional safety distances for the approach and retract motions | Switch to include it in the optimization process. This value is also added to the process points. | ||
| Unlock external axis | Switch ON to unlock the external axis during path searching. | If the external axis changed during approach/retract motion, the axis is locked to this interval by default. If the external axis does not change, it is locked to this value. | Expert | |
| Max. #iterations | Defines number of loops for the internal optimizer. | This can be set to a higher value for stronger optimization. | Expert | |
| Unlock valid approach/retract | Switch ON to allow that optimization move all points | By default, the valid approach/retract points are not optimized. Only unreachable points or points with collision are modified. | Expert | |
| Position modification limit | Defines the Cartesian range of allowed modifications of the approach/retract points position. | Expert | ||
| Orientation modification | Defines the Euler angle range of allowed modifications of the approach/retract points orientation. | Expert |
Optimization and result
The automatic path optimization uses a methodology of iterative steps to find the optimal result, i.e. the result with the lowest costs value. When it is executed, a panel appears to indicate the progress of the optimization process.
In each iteration step, the number of variations can be narrowed down (Max. # variations attribute) to find the optimum result. From that optimum, a new range is being defined from the variation before to the variation after that found optimum. That range again is divided to search for the optimum again.
This process repeats itself until the variation step equals (or is smaller than) the discretization step of the variable or when any other boundary condition has been met.
The final found result is the global optimal solution for the toolpath.
Setting the value for the maximum number of variations low will speed up the optimization computation. But there will be a risk that the real optimum has not been found. Setting the value higher will slow down the optimization computation, but it will have a higher accuracy and efficiency to find the optimum solution.
To speed up the optimization process in general, the Quality cutback attribute comes in place. With this attribute a balance between finding the most optimal result and the fastest computation time is made. When using this attribute (values > 0), the iteration step of the methodology will no longer search for the optimal solution within that step, but will stop already when an iteration result meets the requirements, although that result might not be optimal. The sooner that decision can be made, the less computation time will be needed to come to a final result. Obviously because that final result might not be the global optimum, the result quality will be lower, i.e the resulting evaluation costs are higher than optimal.
It has to be understood that the optimization might not always find a better result, or might find no result at all.
Optimization state
The state of the automatic optimization is kept and made visible in the Toolpath monitor dashboard

The column here indicates on which parts of the whole program the optimization process has been executed and what its status is.
| Empty; no automatic optimization has been run so far. | |
| The automatic optimization has been run and is still valid. | |
| The automatic optimization has been run, but is outdated (i.e. overrun) because of other (additional) modification. |
