您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 其它办公文档 > Open+CASCADE中文教程
目录更多教程请到项目概览.........................................................................................41.1.先决条件.................................................................................41.2.项目.........................................................................................41.3.项目说明.................................................................................42.技术描述..........................................................................................62.1.点..............................................................................................62.2.几何..........................................................................................72.3.拓扑..........................................................................................82.4.完整描述.................................................................................103.构建主体.........................................................................................123.1.柱体.........................................................................................123.2.倒圆角.....................................................................................133.3.瓶颈.........................................................................................153.4.空洞.........................................................................................164.构建螺纹.........................................................................................194.1.创建表面.................................................................................194.2.2D曲线.....................................................................................194.3.边框.........................................................................................234.4.螺纹.........................................................................................245.组合部件..........................................................................................266.附录..................................................................................................271.项目概览这个教程将教你使用OCC建立3D模型。这个教程的目的不是描述所有的OCC类,而是让你开始思考OCC这个工具。1.1.先决条件这个教程假设你已经有了C++的经验。因为OCC是一个用C++设计的高性能建模库。这样的组合将使你能够创建健壮的应用程序。1.2.项目下图是使用这个3D几何建模库提供的方法创建的一个瓶子:本教程将一步一步的教你创建这样一个瓶子。你也可以在OCC安装目录中找到教程的源码(Tutorial/src/MakeBottle.cxx.)1.3.项目说明瓶子的详细参数参数参数名称参数值瓶高MyHeight70mm瓶宽MyWidth50mm瓶厚MyThickness30mm另外我们将采用笛卡尔坐标系的原点做为瓶子的中心建立这个模型需要的四个步骤•构建瓶子的轮廓•构建瓶子的主体•构建瓶颈上的螺纹•组合部件2.描述2.1.点创建瓶子轮廓,首先要在XOY平面上创建特征点(下图)。这些点将用来定义几何体的轮廓。在OCC里有2个类可以用来描述3D坐标点:•gp_Pnt类•Geom_CartesianPoint类(句柄操作)这里句柄是一种提供自动内存管理的智能指针。如何选择最合适类,考虑下列因素:•gp_Pnt通过值操作。所有像它这样的类型,都有有限的生存域。•Geom_CartesianPoint是通过句柄操作的,而且可能有多重引用,这将使他有较长的生存域。因为所有的点你仅仅是用来创建轮廓的曲线,一个实体有有限的生存时间。选择gp_Pnt类。初始化这些点需要它们的坐标值:gp_PntaPnt1(-myWidth/2.,0,0);gp_PntaPnt2(-myWidth/2.,-myThickness/4.,0);gp_PntaPnt3(0,-myThickness/2.,0);gp_PntaPnt4(myWidth/2.,-myThickness/4.,0);gp_PntaPnt5(myWidth/2.,0,0);如果使用Geom_CartesianPoint,语法将不太一样。所有的操作是通过一个句柄,需要使用new操作符:Handle(Geom_CartesianPoint)aPnt1=newGeom_CartesianPoint(-myWidth/2.,0,0);一旦定义了对象,你就可以按照C++的方式访问这些类的属性,比如得到坐标的X值:gp_PntaPnt1(0,0,0);Handle(Geom_CartesianPoint)aPnt2=newGeom_CartesianPoint(0,0,0);Standard_RealxValue1=aPnt1.X();Standard_RealxValue2=aPnt2-X();2.2.轮廓:定义几何体我们借助于先前定义的特征点,可以知道瓶子轮廓,如下图所示,它是由2个线段和一个圆弧组成:为了创建这样一个实体,需要一个用来实现3D几何对象的数据结构。这些可以在OCC的Geom开发包中找到。一个OCC开发包是由一组类构成的,它们通常有相同或类似的结构。OCC类使用类名称前缀来标识这样一组类,比如Geom_Line,Geom_Circle这2个类属于Geom开发包。这个开发包实现3D几何对象:基本曲线和曲面(比如Bezier和BSpline)。但是,Geom开发包仅仅提供几何对象的数据结构。你可以直接使用这些数据结构定义几何体。因此GC开发包提供了更简单的生成这些基本几何对象的方法。GC开发包提供了2个算法类,它对通过参数计算得到几何对象更容易:•类GC_MakeSegment创建线段。它的其中一个构造函数支持使用2个点P1,P2来构造线段。•类GC_MakeArcOfCircle创建圆弧和圆。一个常用的方法是通过圆弧的2个端点和圆弧所通过的一个点来生成圆弧。这些类返回一个Geom_TrimmedCurve句柄。这是基本曲线的一个基类。距离:Handle(Geom_TrimmedCurve)aArcOfCircle=GC_MakeArcOfCircle(aPnt2,aPnt3,aPnt4);Handle(Geom_TrimmedCurve)aSegment1=GC_MakeSegment(aPnt1,aPnt2);Handle(Geom_TrimmedCurve)aSegment2=GC_MakeSegment(aPnt4,aPnt5);所有的GC类提供重载方法,所以基类可以调用任何派生类的方法。你可以通过IsDone和Value方法来保证更安全的使用这些类:GC_MakeSegmentmkSeg(aPnt1,aPnt2);Handle(Geom_TrimmedCurve)aSegment1;if(mkSegment.IsDone()){aSegment1=mkSeg.Value();...}2.3.轮廓:拓扑结构现在已经创建了一部分几何对象,但他们没有任何关系。为了方便建模,需要将3个曲线变成一个实体。这将用到OCC中的TopoDS开发包:这个开发包可以将几何对象关联在一起,让它们生成一个复合对象。TopoDS开发包的所有对象都是由TopoDS_Shape类派生而来,下面是对这种拓扑结构的描述:图形OpenCASCADEClass描述Vertex(顶点)TopoDS_Vertex表示几何体上的一个点Edge(边)TopoDS_Edge表示一个曲线和一个有边界的向量Wire(网格)TopoDS_Wire由顶点连起来的一系列边Face(面)TopoDS_Face由闭合的网格组成的边界平面Shell(壳)TopoDS_Shell通过边连接起起来一组面Solid(体)TopoDS_Solid由壳组成的有边界的三维空间CompSolid(复合体)TopoDS_CompSolid通过面连接的一组体Compound(复合对象)TopoDS_Compound由上面各种图形形成的一个集合参考前面的表格,可以看出来,构建轮廓需要先创建:•用前面的曲线构建3条边。•用这些边形成一个网格。TopoDS包中只提供了拓扑实体的数据结构。在BRepBuilderAPI包中,可以找到计算标准拓朴对象的算法类。为了创建一个边,通过前面得出曲线,使用BRepBuilderAPI_MakeEdge类来完成:TopoDS_EdgeaEdge1=BRepBuilderAPI_MakeEdge(aSegment1);TopoDS_EdgeaEdge2=BRepBuilderAPI_MakeEdge(aArcOfCircle);TopoDS_EdgeaEdge3=BRepBuilderAPI_MakeEdge(aSegment2);在OpenCASCADE中,有几种创建边的方法。可以直接通过两点来创建一个边,在这种情况下所生成的边是直线。输入的两个顶点是直线的两个端点。比如:TopoDS_EdgeaEdge1=BRepBuilderAPI_MakeEdge(aPnt1,aPnt3);TopoDS_EdgeaEdge2=BRepBuil
本文标题:Open+CASCADE中文教程
链接地址:https://www.777doc.com/doc-5173352 .html