At the time of the error, T-splines code is reading “userdata”.
It is most likely, the T-splines code that writes or reads this userdata contains a bug. I do not have access this code so I cannot comment further on what this bug might be.
It is possible that part of the file has been corrupted. I cannot test this because I don’t know the structure of the T-splines user data chunk and so I don’t have enough information to inspect the internal CRCs we put at the end of each chunk that T-splines wrote.
...\opennurbs_6.1.18014.22401-2\example_read\HoleyCube.3dm is the file in question.
When this file is read without T-splines present, no errors occur. When T-splines is not present, the entire chunk is read as unknown userdata. All of the blocks that I have enough information to test have valid CRCs, so I will speculate that file corruption is less likely than a bug in the T-spines code.
All this said, I cannot rule out there is a bug in the opennurbs code, but I cannot do any further investigation because I don’t have access to the T-splines code.
The next step I would suggest to carefully watch that T-splines user data chunk being written in the debugger and take notes on the chunk sizes, offsets, and CRCs. Then carefully watch T-splines user data chunk being read and verify that the reading is exactly in sync with what was written.
– Dale Lear (There are 2 Dales - Dale Fugier and myself.)
CORRECTION - I see that the T-splines user data code is included in the zip file you posted (
atf_tspline_user_data.cpp/h). I apologize for missing this during my first inspection. I’ll ask somebody here to look into it further.