OpenCascade Primitives BRep-Cylinder

eryar@163.com

Abstract. BRep is short for Boundary Representation. Boundary Representation gives a complete description of an object by associating topological and geometric information for solid modeling. In this case, objects are described by their boundaries. There are two types of information in BRep: Topological information and Geometric information. This paper is concerned with the Cylinder BRep in OpenCascade, and also show how to use Tcl script to dump cylinder BRep info.

Key words. OpenCascade, BRep, Boundary Representation, Cylinder

1. Introduction

本文通过在Draw Test Harness中的Tcl脚本来生成圆柱Cylinder的边界表示(BRep)数据,通过对生成的数据进行分析,来理解OpenCascade中的Cylinder的边界表示方式。

如下图所示为使用Tcl命令在Draw Test Harness中生成的圆柱:

Figure 1.1 Cylinder Generated by Tcl in Draw Test Harness

2. Dump Cylinder BRep Info by Tcl

使用Tcl脚本在Draw Test Harness中输出圆柱(Cylinder)的边界表示(BRep)数据的脚本程序如下图所示:

Figure 2.1 Tcl Script to Dump Cylinder BRep Info

上述Tcl生成一个底面位于原点(0,0,0)半径为10,高度为20的圆柱,如下图所示:

Figure 2.2 The Cylinder Generated by Tcl

3. Cylinder BRep in OpenCascade

还是从顶点(Vertex)开始编号,来对圆柱(Cylinder)的BRep表示进行理解。从导出的信息可知,圆柱有两个顶点Vertex,对其编号,如下图所示:

Figure 3.1 Vertex of Cylinder

圆柱共有三条Edge,编号分别是#9,#10,#12。下面对三条Edge中的几何曲线进行分析。其中#9边Edge中包含了三条几何曲线:一条三维空间曲线3D Curve和两条曲面上曲线PCurve,三条曲线的取值范围都是[0,2PI]。空间曲线3是圆心(0,0,0)半径为10,位于圆柱底部的圆,参数方程如下所示:

Figure 3.2 Curve 3D in Edge #9

Figure 3.3 PCurve 5 on Surface 1 of Edge #9

曲面1上的参数曲线PCurve 5是位于原点(0,0)方向为u方向的直线。当u取[0,2PI]时,得到曲面上u,v值分别为(0,0)和(2PI,0)。对应到曲面1上时,u的取值范围为[0,2PI],v的值为0。曲面1的参数方程如下所示:

当u取[0,2PI],v恒为0时,代入曲面参数方程得到空间圆的参数方程。

同理曲面3上的参数曲线PCurve 6是位于平面上的圆。边Edge#12与Edge#9一样,只不过#12是位于圆柱顶部的圆。

Figure 3.4 Edge #10 of the Cylinder

边Edge#10中的三维空间曲线是起点为(10, 0, 0)方向为Z轴的直线,取值范围[0,20]。曲面1上的参数曲线3,4是衔接边(Seam Edge),对应于BRep_CurveOnClosedSurface。代入曲面的参数方程时,u只取两个固定值0和2PI,v取值范围为[0,20]得到的曲线与三维空间曲线相同。将所有边编号绘出图示如下:

Figure 3.5 Edges of the Cylinder

圆柱Cylinder的环Wire有三个:Wire #4,Wire#6和Wire#8。其中Wire#4是圆柱底部的圆,Wire#6是圆柱顶部的圆。Wire#8是上下两个圆加上一个衔接边(Seam Edge)组成闭合环。将所有环Wire编号绘出图示如下:

Figure 3.6 Wires of the Cylinder

Wire#4,Wire#6和Wire#8分别对应Face#3,Face#5和Face#7。不过要注意面的朝向(Orientation)。最后这三个面Face组成一个Shell#2,Shell#2中又给每个Face定义了朝向。Shell#2组成了一个Solid#1。

4. Conclusion

通过Tcl生成的圆柱Cylinder的边界表示BRep信息,分析了OpenCascade中的圆柱的边界表示方式。要注意理解朝向(Orientation)对每个拓朴结构的意义。

5. References

1. OpenCascade, Test Harness User’s Guide 2013

2. OpenCascade, BRep Format Description White Paper, 2013

3. John K. Ousterhout, Tcl and Tk Toolkit, 1993

OpenCascade Primitives BRep-Cylinder的更多相关文章

  1. OpenCascade Primitives BRep - Sphere

    OpenCascade Primitives BRep - Sphere eryar@163.com Abstract. BRep is short for Boundary Representati ...

  2. OpenCascade Primitives BRep - Box

    OpenCascade Primitives BRep - Box eryar@163.com Abstract. BRep is short for Boundary Representation. ...

  3. OpenCascade Primitives BRep-Cone

    OpenCascade Primitives BRep-Cone eryar@163.com Abstract. BRep is short for Boundary Representation. ...

  4. OpenCascade Primitives BRep-Torus

    OpenCascade Primitives BRep-Torus eryar@163.com Abstract. BRep is short for Boundary Representation. ...

  5. OpenCASCADE Make Primitives-Sphere

    OpenCASCADE Make Primitives-Sphere eryar@163.com Abstract. The sphere is the simplest topology shape ...

  6. OpenCASCADE BRep vs. OpenNURBS BRep

    OpenCASCADE BRep vs. OpenNURBS BRep eryar@163.com Abstract. BRep short for Boundary Representation. ...

  7. Geometry Surface of OpenCascade BRep

    Geometry Surface of OpenCascade BRep eryar@163.com 摘要Abstract:几何曲面是参数表示的曲面 ,在边界表示中其数据存在于BRep_TFace中, ...

  8. Topology Shapes of OpenCascade BRep

    Topology Shapes of OpenCascade BRep eryar@163.com 摘要Abstract:通过对OpenCascade中的BRep数据的读写,理解边界表示法的概念及实现 ...

  9. Representation Data in OpenCascade BRep

    Representation Data in OpenCascade BRep eryar@163.com 摘要Abstract:现在的显示器大多数是光栅显示器,即可以看做一个像素的矩阵.在光栅显示器 ...

随机推荐

  1. mac新手的烦恼

    最近新换了mac,我换mac并非自愿.无论mac的性能有多好,我依然讨厌使用appstore下载软件的感觉,尤其在我一遍又一遍忘记自己的appID的时候.无奈我的thinkpad常常死机,最近又常倒腾 ...

  2. 使用配置文件定义ADO.NET 的连接字符串

    最近一直在学习ADO.NET的相关知识,发现要对数据库操作的地方都要先创建一个连接字符串: string constr ="Data Source=(local);Initial Catal ...

  3. SQL Server 2008 表变量 临时表

    最近做一个报表,其中 在报表中用到了存储过程,游标,cte表达式,临时表和表变量. 在游标中循环遍历cte中的数据,把对应的数据存放在变量里面,之后把变量插入到表变量中,游标结束后,想要根据存储过程的 ...

  4. .net core Jwt 添加

    Jwt 已经成为跨平台身份验证通用方案,如不了解请关注:https://jwt.io/. 为了和微软其他验证模块有个比较好的衔接,项目中采用了微软开发的jwt组件: System.IdentityMo ...

  5. thrift笔记

    Thrift tutorial 演示 python服务端与客户端本文的开发环境是windows 7 + python2.7.3Thrift官方主页:http://thrift.apache.org/先 ...

  6. 最小生成树 prime zoj1586

    题意:在n个星球,每2个星球之间的联通需要依靠一个网络适配器,每个星球喜欢的网络适配器的价钱不同,先给你一个n,然后n个数,代表第i个星球喜爱的网络适配器的价钱,然后给出一个矩阵M[i][j]代表第i ...

  7. AJax登录。。转

    AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术.        AJAX 是一种用于创建快速 ...

  8. android 通过uri获取bitmap图片并压缩

    很多人在调用图库选择图片时会在onActivityResult中用Media.getBitmap来获取返回的图片,如下: Uri mImageCaptureUri = data.getData(); ...

  9. 有关DTCoreText无法加载网络图片及应用问题

    至于DTCoreText是干嘛的,不清楚的同学自行网上脑补,这就不啰嗦了,只说一下其用法. 里面有三种控件供大家使用,DTAttributedTextView, DTAttributedLabel 和 ...

  10. java并发编程(十三)经典问题生产者消费者问题

    生产者消费者问题是线程模型中的经典问题:生产者和消费者在同一时间段内共用同一存储空间,生产者向空间里生产数据,而消费者取走数据. 这里实现如下情况的生产--消费模型: 生产者不断交替地生产两组数据&q ...