asmaloney / libE57Format

Library for reading & writing the E57 file format
Boost Software License 1.0
137 stars 66 forks source link

Files generated with version 3.2.0 fail to load in various applications #309

Open dgirardeau opened 1 month ago

dgirardeau commented 1 month ago

Hi,

Some CloudCompare users have reported that the files saved with version 3.2.0 of libE57Format won't open with Rhino8, SolidWorks 2023 and FARO Scene. Reverting to version 3.1.1 seems to fix the issue.

It seems to be related to this commit: feaa963f704ab5b677ad8978c4f9a42f0ceb145d (I've generated files with version 3.2.0 with only this commit reverted, and it seems to work fine). Even though it seems to be 'required by the standard', I guess these SW solutions are not able to handle the single CV index packet properly?

Maybe a solution would be to add a boolean somewhere to control whether this CV index packet should be automatically added or not? (with a default state to true)

@dancergraham I've attached a file that fails to load with the above applications. pumpsA_3.2.0.e57.zip

dancergraham commented 1 month ago

the rust e57 library seems to skip over index packets - I can read this file successfully with my e57 python library https://github.com/cry-inc/e57/blob/bdb8fa9015b1e87d5c600860c51002e25cb95c7d/src/queue_reader.rs#L80

nigels-com commented 3 weeks ago

Problems here too for v3.2.0 E57 to Cintoo cloud service. Reverting the mentioned commit works for us too. https://cintoo.com/

asmaloney commented 3 weeks ago

This should be reported to the applications that are failing. They will fail on any E57 file containing index packets.

My guess is they are based on either the original reference implementation or an older version of this library - both of which fail to read index packets properly (they throw an exception).

I fixed it in libE57Format somewhere along the way, so if they are using this they just need to update.

nigels-com commented 3 weeks ago

It's not realistic for us to require all our customers to chase their vendors to update their E57 reader. We're going to want a compile-time opt-out for this for a good while, I expect. (Better that than rolling back to v3.1.1, right?)

I am happy to raise it with Cintoo, but I'm not sure our relationship with them is going to be a particularly high priority.