FreeCAD 0.16模型文件解析

1.文件内容查看方式

FCStd文件是FreeCAD的主要模型导出格式,修改此文件后缀名为zip,再解压就可以查看其内容

FreeCAD 0.16模型文件解析_第1张图片

2.FCStd文件手动或代码生成方式

1)手动生成方式

先右键Document.xml文件将其压缩为zip格式(rar不可以),再按.brp -> GuiDocument.xml -> Color的顺序将这些文件拖拽至.zip文件中,最后将后缀名改为FCStd就可以在FreeCAD中打开了。

FreeCAD 0.16模型文件解析_第2张图片

2)代码创建方式

代码创建与手动创建的思路相同,都是创建一个压缩文件,之后向其中逐个添加文件。

我的压缩功能使用的是Zip Utils的C++包,下载链接附上:Zip Utils - Clean, Elegant, Simple, C++/Win32 - CodeProject

代码如下,也可以通过遍历逐一添加:

HZIP hz;
hz = CreateZip(_T("C:\\Users\\Dell\\Desktop\\d\\simple1.zip"), 0);
ZipAdd(hz, _T("Document.xml"), _T("C:\\Users\\Dell\\Desktop\\d\\Document.xml"));
ZipAdd(hz, _T("PartShape.brp"), _T("C:\\Users\\Dell\\Desktop\\d\\PartShape.brp"));
ZipAdd(hz, _T("PartShape1.brp"), _T("C:\\Users\\Dell\\Desktop\\d\\PartShape1.brp"));
ZipAdd(hz, _T("GuiDocument.xml"), _T("C:\\Users\\Dell\\Desktop\\d\\GuiDocument.xml"));
ZipAdd(hz, _T("DiffuseColor"), _T("C:\\Users\\Dell\\Desktop\\d\\DiffuseColor"));
ZipAdd(hz, _T("DiffuseColor1"), _T("C:\\Users\\Dell\\Desktop\\d\\DiffuseColor1"));
CloseZip(hz);

3.文件内容解析

1)解析后得到的文件中核心文件是Document.xml,它不仅存储了模型的基本信息,如创建时间创建者等,还以特征为单位存储了模型的设计顺序以及每个特征的参数信息,结构如下:

FreeCAD 0.16模型文件解析_第3张图片

标签中存储了模型的基础属性信息,包括创建者、所有者、创建时间、修改时间、用户id、版权信息等。

标签中按设计顺序记录了每个特征的类型及名称。

标签中记录了每个特征的详细参数数据以及每个特征操作与brp文件的对应关系,如草图的几何信息、约束信息;特征操作的参数数据、操作前后模型所对应的.brp文件名等。

2).brp文件是每一步特征操作生成的过程文件,如草图、每一步特征操作结果、每一步特征操作结果与主模型布尔操作后的结果等,此文件为文本文件,直接以记事本方式打开后可以看到其中以矩阵、点、线、面的形式描述了此模型。

3)GuiDocument.xml与DiffuseColor文件都是模型的色彩文件。

 

你可能感兴趣的:(FreeCAD,xml,c++)