10-19-2023, 06:42 PM
I have a fairly large codebase/environment and the relevant call happens deep inside, so I am not able to provide an exact reproducible example of what I am seeing. However, I can reproduce it on my own and I would be happy to demonstrate it on a call if desired.
Here's a mock-up of what my function looks like:
With RoboDK API 5.6.4 (`pip install robodk=5.6.4`), I get the following exception on the last line of the function above.
In the debug console, I repeatedly called t_0.Name() and, bizarrely, got a different result each time.
After `pip install robodk=5.6.3`, this issue completely disappears and my code runs fine, throwing no exceptions.
Here's a mock-up of what my function looks like:
Code:
def example_fn(t_0: robolink.Item, t_1: robolink.Item):
v = robomath.subs3(t_1.Pose()[0:3,3].tolist(), t_0.Pose()[0:3,3].tolist())
z = robomath.subs3(t_0.Pose()[0:3,3].tolist(), t_0.Pose().Offset(x=0, y=0, z=-1)[0:3,3].tolist())
t_0.setPose(robomath.point_Xaxis_2_pose(point=t_0.Pose()[0:3,3], xaxis=v, zaxis_hint1=z))
With RoboDK API 5.6.4 (`pip install robodk=5.6.4`), I get the following exception on the last line of the function above.
Quote:Exception has occurred: error
required argument is not a float
In the debug console, I repeatedly called t_0.Name() and, bizarrely, got a different result each time.
Code:
>>t_0.Name()
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "my_path\robolink.py", line 4491, in Name
name = self.link._rec_line()
^^^^^^^^^^^^^^^^^^^^^
File " my_path\robolink.py", line 862, in _rec_line
return str(b''.join(bytes_list).decode('utf-8')) # python 2 and python 3 compatible
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
>>t_0.Name()
'\x00\x00\x00\x00t_0'
>>t_0 .Name()
't_0'
>>t_0 .Name()
't_0'
After `pip install robodk=5.6.3`, this issue completely disappears and my code runs fine, throwing no exceptions.