Hello.
First, let me say I'm happy to use your wonderful software.
However, there is some strange behaviour I've recently found working with it. I'm trying to emulate an external axis with a help of the Python API and a part of my script must collect time statistics of a robot program.
So I call it like this:
And then I get something strange (all the next references are relative to the applied station and the spreadsheet):
* MOVE_ID = 4 is skipped and I believe it's ok since there is no movement (in the physical sense) around it
* MOVE_ID = 6 is skipped for the reasons unknown to me
* Two program movements 'MoveL 27' and 'MoveL 29' are merged under the same MOVE_ID = 28
* The final 'MoveC 30' aka 'MoveC (Target1, Target1)' has MOVE_ID = 0 instead of 31
So far I've managed to solve the issues #1,2,4. The script generates unique IDs for the movements in the joint_list and then matches them against the program movements in a cycle. If the joint positions are close enough (less than 0.001 deg) then they're considered matching.
As for the issue #3, well. While the movement is relatively short in this very example, I still can find some average position between the last matching movement and the next one in a cycle. But what if I consider accelerations or a movement will take a long time elsewhere. Maybe there is an easier way. Could you please help me with this issue?
Note: the spreadsheet's been modified by hand to find the matching program movements.
First, let me say I'm happy to use your wonderful software.
However, there is some strange behaviour I've recently found working with it. I'm trying to emulate an external axis with a help of the Python API and a part of my script must collect time statistics of a robot program.
So I call it like this:
Code:
message, joint_list, status = prog.InstructionListJoints(flags=4, time_step=0.01)
# the next line is here just for the debug purpose
prog.InstructionListJoints(flags=4, save_to_file=r'Z:\VM_Shares\steps.csv', time_step=0.01)
* MOVE_ID = 4 is skipped and I believe it's ok since there is no movement (in the physical sense) around it
* MOVE_ID = 6 is skipped for the reasons unknown to me
* Two program movements 'MoveL 27' and 'MoveL 29' are merged under the same MOVE_ID = 28
* The final 'MoveC 30' aka 'MoveC (Target1, Target1)' has MOVE_ID = 0 instead of 31
So far I've managed to solve the issues #1,2,4. The script generates unique IDs for the movements in the joint_list and then matches them against the program movements in a cycle. If the joint positions are close enough (less than 0.001 deg) then they're considered matching.
As for the issue #3, well. While the movement is relatively short in this very example, I still can find some average position between the last matching movement and the next one in a cycle. But what if I consider accelerations or a movement will take a long time elsewhere. Maybe there is an easier way. Could you please help me with this issue?
Note: the spreadsheet's been modified by hand to find the matching program movements.