Opencascade 导入.stp、.stl、.igs、.brep文件

Opencascade 导入.stp、.stl、.igs、.brep文件


*使用Opencascade实现对stp、stl、igs、brep文件的读取到TopoDS_Shape结构中
*本文不再赘述在Visual Studio 2015 工程中配置Opencascade环境,直接阐述Opencascade的API接口调用方法

开发环境

Opencascade 6.9.0

Visual Studio 2015

.stp(.step)文件

STP文件
STP文件是基于ASCII格式符合STEP应用协议ISO 10303-21标准的正文编码的交换结构的三维图像数据。是CAD绘图软件的3D图形文件的格式(扩展名),其中包含三维对象的数据;提供对产品模型数据交换的支持。

	STEPControl_Reader aReader_Step;
	aReader_Step.ReadFile("linkrods.step");
	aReader_Step.WS()->MapReader()->SetTraceLevel(2);
	aReader_Step.PrintCheckLoad(Standard_False, IFSelect_ItemsByEntity);
	for (Standard_Integer i = 1; i <= aReader_Step.NbRootsForTransfer(); i++)
		aReader_Step.TransferRoot(i);
	for (Standard_Integer i = 1; i <= aReader_Step.NbShapes(); i++)
		TopoDS_Shape shape_Step = aReader_Step.Shape(i);

.stl文件

STL只能用来表示封闭的面或者体。stl文件有两种:一种是ASCII明码格式,另一种是二进制格式。
只能描述三维物体的几何信息,不支持颜色材质等信息,是计算机图形学处理CG,数字几何处理如CAD, 数字几何工业应用, 如三维打印机支持的最常见文件格式。

	StlAPI_Reader aReader_Stl;
	TopoDS_Shape shape_Stl;
	aReader_Stl.Read(shape_Stl, "propeller.stl");

.igs(.iges)文件

在IGES文件中,信息的基本单位是实体,通过实体描述产品的形状、尺寸以及产品的特性。
CAD/CAM技术在工业界的推广应用,使得越来越多的用户需要把他们的数据在不同CAD/CAM系统之间交换。IGES正是为了解决数据在不同的CAD/CAM间进行传递的问题,它定义了一套表示CAD/CAM系统中常用的几何和非几何数据格式,以及相应的文件结构,用这些格式表示的产品定义数据可以通过多种物理介质进行交换。
如数据要从系统A传送到系统B,必须由系统A的IGES前处理器把这些传送的数据转换成IGES格式,而实体数据还得由系统B的IGES后处理器把其从IGES格式转换成该系统内部的数据格式。把系统B的数据传送给系统A也需相同的过程。
标准的IGES文件包括固定长ASCⅡ码、压缩的ASCⅡ及二进制三种格式。固定长ASCⅡ码格式的IGES文件每行为80个字符,整个文件分为5段。段标识符位于每行的第73列,第74~80列指定为用于每行的段的序号。序号都以1开始,且连续不间断,其值对应于该段的行数。

	IGESControl_Reader aReader_Iges;
	aReader_Iges.ReadFile("hammer.iges");
	aReader_Iges.TransferRoots();
	TopoDS_Shape aShape_Iges = aReader_Iges.OneShape();

.brep文件

Brep文件是Opencascade下的边界表示,它是几何造型中最成熟、无二义的表示法。实体的边界通常是由面的并集来表示,而每个面又由它所在的曲面的定义加上其边界来表示,面的边界是边的并集,而边又是由点来表示的。

	TopoDS_Shape shape_Brep;
	BRep_Builder builder_Brep;
	BRepTools::Read(shape_Brep, "edge.brep", builder_Brep);

你可能感兴趣的:(Opencascade 导入.stp、.stl、.igs、.brep文件)