The AGV.dll is not accessible to users.
However, you can create an array of control points on a Process Flow token and use the AGV travel task activity to utilize those points. (Either looping through a single AGV travel in a subflow, or multiple sequentially in a block.)
Otherwise you can look at the documentation here for information on how to create a custom route:
https://docs.flexsim.com/en/24.1/Reference/Tools/AGVNetworkTool/AGVNetwork/AGVNetwork.html#customizationDelegate
I read the documentation for AGV Customization Delegate that you introduced.
I understand that if the algorithm can be expressed in the form of "minimizing the sum of costs along the route," then it is possible to customize the default logic by changing the definition of "cost."
On the other hand, it seems that it is not possible to change the algorithm to, for erxample, the following:
Determine the route by taking into account the time it takes for the AGV to turn.
Could you please provide the information required to override the route search method in AGV.dll?
In addition, could you please let me know what I should be careful of when overriding the default logic?
Thank you in advance.
HI, I apologize for the turnaround time. Unfortunately, there isn't any way for users to directly modify / overwrite the AGV.dll, nor can we provide any information on how the AGV.dill works. It's just not accessible to users.
However, you should still be able to use the Route Cost method for your example situation:
"Determine the route by taking into account the time it takes for the AGV to turn."
If you use the Route Cost method in the General tab of the AGV Properties window, by checking the Divide By Speed box, the routing method will be determined taking into account curved path speeds and even AGV rotation speeds on non-curved paths.
Thank you for your reply.
I understand that AGV.dll is just not accessible to users.
I have a question about the Divide By Speed box.
You mention that the routing method will be determined taking into account AGV rotation speeds on non-curved paths.
However, the correct route does not seem to be selected in the attached model.
➀When the AGV is given a task to travel to ControlPoint2, it selects the red paths and arrives at the destination in 25.72 seconds. If the position of a red path is slightly shifted and separated from the black path, the AGV reaches the destination in 26.03 seconds.
In this case, it can be confirmed that the fastest route is correctly selected.
➁When the AGV is given a task to travel to ControlPoint3, it selects the red paths and arrives at the destination in 31.99 seconds. If the position of a red path is separated from the black path, the AGV reaches the destination in 30.40 seconds.
In this case, even though the route that does not use the red paths is the fastest, the red paths are mistakenly used.
This is just my guess, but when the Divide By Speed box is checked, the route search method itself is not changed, and the definition of the cost in the getPathTravelWeight method is simply changed. In that case, a phenomenon like the attached model may occur.
When using a simple Dijkstra algorithm, if a route with a smaller total cost to a certain node is found, information about other routes to the node is lost.
To deal with cases like "The red route is the fastest to go to CP2, but when going to CP3, an additional rotation cost is incurred at CP2, so it is faster not to use the red route," it is necessary to store the cost to each node for each adjacent edge, so wouldn't it be necessary to change the route search method itself?
I'm not sure that this is a bug so much as a lack of clarity in the documentation on how the "divide by speed" is supposed to work. I've logged a ticket with the devs to into that.
Hopefully this helps.
15 People are following this question.
FlexSim can help you understand and improve any system or process. Transform your existing data into accurate predictions.
FlexSim is a fully 3D simulation software environment. FlexSim can be used to simulate any process in any industry.
FlexSim®, FlexSim Healthcare™, Problem Solved.®, the FlexSim logo, the FlexSim X-mark, and the FlexSim Healthcare logo with stylized Caduceus mark are trademarks of FlexSim Software Products, Inc. All rights reserved.
Privacy | Do not sell or share my personal information | Cookie preferences | Report noncompliance | Terms of use | Legal | © 2025 Autodesk Inc. All rights reserved