IGES(Initial Graphics Exchange Specification) 即图形初始交换规范,是一种用来描述大型三维CAD/CAM系统之间信息交换的工业国际标准文件。它是一种半向量图形格式,它涉及多个主题,如设计图,模型图以及三维对象。
IGES最初是由国际电气和电子工程师协会 (IEEE) 设计,以支撑美国国家工程研究院(NBS)的图形交互代码(GIC)项目。IGES属于绘图文件,它以字符描述形式储存设计图和模型图,其中包括大量曲线和曲面,还包含相应的元数据添加。这种文件类型执行流程十分简单,而且有利于不同的应用程序之间进行简单数据交换。
IGES文件主要由8个部分构成,它们分别是开始纪录(START RECORD)、总体属性纪录(GLOBAL SECTION)、参数纪录(PARAMETER DEFINITIONS)、实体参数纪录(ENTITY PARAMETER RECORD)、作图参数纪录(GRAPHIC PARAMETER RECORD)、终止纪录(TERMINATE RECORD)、绘图文件结束纪录(DRAWING FILE TERMINATE RECORD)和后缀纪录(SUFFIX RECORD)。
IGES只存储了模型的几何尺寸及点线面的拓扑关系,相对来说存储的内容较少,并且打开速度慢、拓扑关系容易丢失(破面)。同时,IGES在应用中暴露的主要问题是当数据文件过大时,数据转换处理时间非常长,同时也只注意了图形数据转换而忽略了其他信息的转换。
#include <IGESControl_Reader.hxx>
#include"Viewer.h"
int main(int argc, char* argv[])
{
//Loading the IGES file
IGESControl_Reader reader;
IFSelect_ReturnStatus status = reader.ReadFile("1.igs");
//Checking the IGES file
//Standard_Boolean ok = reader.Cheak();
Standard_Boolean failsonly = false;
IFSelect_PrintCount mode = IFSelect_Mapping;
//IFSelect_PrintCount mode = IFSelect_EntitiesByItem;
reader.PrintCheckLoad(failsonly, mode);
Handle(TColStd_HSequenceOfTransient) list = reader.GiveList();
Standard_Integer nbtrans = reader.TransferList(list);
//reader.IsDone();
TopoDS_Shape shape = reader.OneShape();
Viewer vout(50, 50, 500, 500);
vout << shape;
vout.StartMessageLoop();
return 0;
}