没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
目录
更多教程请到http://blog.csdn.net/hoya5121/category/556157.aspx
1. 项目概览.........................................................................................4
1.1. 先决条件.................................................................................4
1.2. 项目.........................................................................................4
1.3. 项目说明.................................................................................4
2. 技术描述..........................................................................................6
2.1. 点..............................................................................................6
2.2. 几何..........................................................................................7
2.3. 拓扑..........................................................................................8
2.4. 完整描述.................................................................................10
3. 构建主体.........................................................................................12
3.1. 柱体.........................................................................................12
3.2. 倒圆角.....................................................................................13
3.3. 瓶颈.........................................................................................15
3.4. 空洞.........................................................................................16
4. 构建螺纹.........................................................................................19
4.1. 创建表面.................................................................................19
4.2. 2D曲线.....................................................................................19
4.3. 边框.........................................................................................23
4.4. 螺纹.........................................................................................24
5. 组合部件..........................................................................................26
6. 附录..................................................................................................27
1.
项目概览
这个教程将教你使用OCC建立3D模型。这个教程的目的不是描述所有的OCC类,而是让你开始思考OCC这个工具。
1.1.
先决条件
这个教程假设你已经有了C++的经验。
因为OCC是一个用C++设计的高性能建模库。这样的组合将使你能够创建健壮的应用程序。
1.2.
项目
下图是使用这个3D几何建模库提供的方法创建的一个瓶子:
本教程将一步一步的教你创建这样一个瓶子。你也可以在OCC安装目录中找到教程的源码(Tutorial/src/MakeBottle.cxx.)
1.3.
项目说明
瓶子的详细参数
参数 参数名称 参数值
瓶高
MyHeight
70mm
瓶宽
MyWidth
50mm
瓶厚
MyThickness
30mm
另外我们将采用笛卡尔坐标系的原点做为瓶子的中心
建立这个模型需要的四个步骤
• 构建瓶子的轮廓
• 构建瓶子的主体
• 构建瓶颈上的螺纹
• 组合部件
2.
描述
2.1.
点
创建瓶子轮廓,首先要在XOY平面上创建特征点(下图)。这些点将用来定义几何体的轮廓。
在OCC里有2个类可以用来描述3D坐标点:
• gp_Pnt
类
• Geom_CartesianPoint
类(句柄操作)
这里句柄是一种提供自动内存管理的智能指针。
如何选择最合适类,考虑下列因素:
• gp_Pnt 通过值操作。所有像它这样的类型,都有有限的生存域。
• Geom_CartesianPoint 是通过句柄操作的,而且可能有多重引用,这将使他有较长的生存域。
因为所有的点你仅仅是用来创建轮廓的曲线,一个实体有有限的生存时间。选择 gp_Pnt
类。
初始化这些点需要它们的坐标值:
gp_Pnt aPnt1(-myWidth / 2. , 0 , 0); gp_Pnt aPnt2(-myWidth / 2. , -
myThickness / 4. , 0); gp_Pnt aPnt3(0 , -myThickness / 2. , 0);
gp_Pnt aPnt4(myWidth / 2. , -myThickness / 4. , 0); gp_Pnt
aPnt5(myWidth / 2. , 0 , 0);
如果使用Geom_CartesianPoint
,
语法将不太一样。所有的操作是通过一个句柄,需要使用new操作符:
Handle(Geom_CartesianPoint) aPnt1 = new
Geom_CartesianPoint(-myWidth / 2. , 0 , 0);
一旦定义了对象,你就可以按照C++的方式访问这些类的属性,比如得到坐标的X值:
gp_Pnt aPnt1(0,0,0);
Handle(Geom_CartesianPoint) aPnt2 = new
Geom_CartesianPoint(0 , 0 , 0);
Standard_Real xValue1 = aPnt1.X(); Standard_Real
xValue2 = 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_MakeSegment mkSeg (aPnt1 , aPnt2);
Handle(Geom_TrimmedCurve) aSegment1;
if(mkSegment.IsDone()){ aSegment1 =
mkSeg.Value(); ... }
2.3.
轮廓
:
拓扑结构
现在已经创建了一部分几何对象,但他们没有任何关系。
为了方便建模,需要将3个曲线变成一个实体。
这将用到OCC中的TopoDS开发包:这个开发包可以将几何对象关联在一起,让它们生成一个复合对象。
TopoDS开发包的所有对象都是由TopoDS_Shape 类派生而来,下面是对这种拓扑结构的描述:
图形
Open CASCADE Class
描述
Vertex(顶点)
TopoDS_Vertex
表示几何体上的一个点
Edge (边)
TopoDS_Edge
表示一个曲线和一个有边界的
向量
Wire (网格)
TopoDS_Wire
由顶点连起来的一系列边
Face (面)
TopoDS_Face
由闭合的网格组成的边界平面
Shell (壳)
TopoDS_Shell
通过边连接起起来一组面
Solid (体)
TopoDS_Solid
由壳组成的有边界的三维空间
CompSolid (复合体)
TopoDS_CompSolid
通过面连接的一组体
剩余20页未读,继续阅读
资源评论
- yz3434899542012-07-05图文结合,是比较好的open cascade教程
- kzfz0002012-08-31还不错,但是觉得不够全面
- fywz252013-04-19不错,这方面的资料太少了
hoya5121
- 粉丝: 206
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功