最近我一直在构建一个STEP(iso 10303-21)导入程序,作为我一直致力于的项目的必要条件。到目前为止,我的几何形状是正确的(据我所知),但方向和位置仅在60%-80%之间,这让我觉得我没有正确处理{{1} }第
现在我解析文件的方式从AXIS2_PLACEMENT_3D
开始,并处理它包含的两个形状表示。对于大多数BREP形状,它只是一个简单的“级联”效果,直到我到达处理所有2D(边缘)数据的SHAPE_REPRESENTATION_RELATIONSHIP
,然后传递到ADVANCED_FACE
,基于此构造形状那个数据。
目前我正在使用所有2D边缘几何体的变换,但忽略ELEMENTARY_SURFACE
的变换。我也忽略了所有ELEMENTARY_SURFACE
转换,但使用它们最终“获取”并使用SHAPE_REPRESENTATION
s。
我还应该提到(除了2D边缘数据),转换都被加起来,并最终应用。要添加变换,我将轴转换为旋转矩阵(通过this问题),将它们相乘,然后只需添加变换。
UPDATE1
通过删除翻译添加,我改变了将ITEM_TRANSFORMATION
添加到一起的方式。现在我只是添加旋转,并使用第二个翻译,似乎得到奇怪的更准确的结果。