尝试打开dxf文件格式(C++中的实际项目),我可以理解文件的基本结构,但无法找到多维数据集的实际表示方式。

对于CAD中的多维数据集,我希望至少有9个值:
我希望X,Y,Z,A,B和C在实体部分,
但是在示例文件中,我看到了许多设置、预览图像(在文件中占据了重要的空间)、布局等等。但我无法与立方体的实际构建方式相媲美。
问题:
如何在dxf文件中表示/读取多维数据集?
更多信息
以下是有关文件格式的文档:
http://help.autodesk.com/view/OARX/2018/ENU/?guid=GUID-235B22E0-A567-4CF6-92D3-38A2306D73F3
下面是一个带有多维数据集的文件示例(用BricsCAD创建)。不幸的是,我不能嵌入文件,因为它太大了。“立方体”为20毫米x25毫米x30毫米。
我检查了LibreCAD源代码,但它不管理3D模型。而且,libdxfrw库过于通用(它只使用完整的实体数据调用接口回调)。
发布于 2021-07-06 08:11:08
这个多维数据集是嵌入的二进制ACIS数据(3 3DSOLID),没有空间公司的库就无法解释。有关更多信息,请参阅我对另一个问题的回答:如何从dxf文件解析nurbs曲面?或者您知道用于解析它的库(对于js,如果存在或任何其他语言)?。
编辑:查找ACIS实体的二进制数据
从R 2013/ at 1027开始,ACIS数据的Modeler几何学存储在ACDSDATA节的ACDSRECORD中,这些记录没有句柄,而是有一个ID。3 3DSOLID的记录从第22393行开始,ID 10:
0
ACDSRECORD
90
1
2
AcDbDs::ID
280
10
320
D2 <<< handle to 3DSOLID
2
ASM_Data
280
15
94
9259 <<< size in bytes
310
41534D2042696E61... <<< binary data as multiple tags of group code 310这是带有句柄D2的3 3DSOLD,它从第2187行开始:
0
3DSOLID
5
D2 <<< handle of your 3DSOLID
330
1F
100
AcDbEntity
8
0
100
AcDbModelerGeometry
290
0
2
{00000000-0000-0000-0000-000000000000}
100
AcDb3dSolid
350
0如您所见,在ACDSRECORD部分中,3 3DSOLID与二进制内容之间没有关联。
我对将这些数据连接在一起的表格(字典)一无所知。我所知道的唯一方法是在ACDSRECORD部分中搜索到ACDSDATA对象的链接(组代码320)。
FYI:在R2013之前的DXF版本中,ACIS数据作为ascii文本以糟糕的xor“加密”形式存储在实体中。我对DXF格式的所有知识都写在我的Python包中:埃兹德克斯。
https://stackoverflow.com/questions/68259913
复制相似问题