读取STEP文件(文本)并转换为xml

问题描述 投票:0回答:1

我目前正在开发一个转换器,该转换器应该将 STEP 文件转换为我自己的 C# XML。 我正在努力研究从 STEP 文件中提取数据的方法。 为了更方便使用,我将格式从 .step/.stp 更改为 .txt。

大致上,STEP 文件是由形状组成的,形状是从 ADVANCED_SURFACES 创建的,而 ADVANCED_SURFACES 又是从平面创建的,依此类推。它们都包含对其他行的引用。

...
#33=CLOSED_SHELL('',(#34,#35,#36,#37,#38,#39));
#34=ADVANCED_FACE('',(#46),#40,.F.);
...
#40=PLANE('',#127);
...

首先读取所有形状,然后使用它的值来查找表面(重新读取它),然后是平面等会更好吗?还是更简单/更快地读取所有线一次,将它们存储在字典中,然后使用字典查找所有值? 我是不是走错了路?还有其他/更好的方法吗?

c# xml visual-studio text step
1个回答
0
投票

首先将所有实体实例(例如

#40=PLANE('',#127);
)读入字典中。通常对同一个实体实例有多个引用,因此如果您只遵循所有引用链,您将获得大量冗余。即使您希望输出中有所有冗余,如果没有字典,它也会慢得多(O(n^2))。

实体实例通常被格式化为行,但换行符是可选的并且可以位于任何地方,因此不要将它们用于解析。按照 ISO 10303-21 https://www.steptools.com/stds/step/IS_final_p21e3.html 正确解析它。您可以使用简单的递归下降解析器来做到这一点。

© www.soinside.com 2019 - 2024. All rights reserved.