我有两个来自 v30 的二进制 Parasolid 文件(内部建模器字符串是 3000226,架构字符串是 SCH_3000226_30000_13006)。其中,旧类型的嵌入模式信息在我拥有的 Parasolid XT 格式参考的最新副本中定义。但是,对于实体类型 204(在 28101 模式之后引入),嵌入式模式格式完全不同。幸运的是,它有很多字符串,所以很容易对它的基本形式进行逆向工程:
unsigned byte: number of fields
short string: nodename
short string: description
then for each field
short string: fieldname
five bytes: maybe somehow correspond to <transmit 1/0> <node class> <n_elements> ?
byte: (field) type
byte: possibly <variable 1/0> ?
然后实体按预期开始。
问题是这似乎是对二进制版本的可行解析,但在不知道这五个神秘字节实际对应的情况下,我不知道如何在 Parasolid 文本文件中实现对此的支持。它可能是两个短整数和一个无符号字符,可能是一个 4 字节整数和一个无符号字符。哎呀,因为在这两个例子中我的前三个神秘字节都是零,甚至可能有一个字符串在那里,在这种情况下恰好是 0 长度,在这种情况下,当然,它不是真的五个字节总是,但在我的两个示例中恰好是五个字节。
有谁知道神秘字节中发生了什么?
此外,我假设此方案将对实体类型 204 及更高版本有效。我不知道实体类型 203。我相信我从未见过包含该类型的 Parasolid 文件。
(另外,有没有人知道他们为什么会对仅用于支持向后兼容性的功能进行非向后兼容的更改?)