OpenCascade Primitives BRep-Cylinder
OpenCascade Primitives BRep-Cylinder
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
PDF Version: OpenCascade Primitives BRep-Cylinder
OpenCascade Primitives BRep-Cylinder的更多相关文章
- OpenCascade Primitives BRep - Sphere
OpenCascade Primitives BRep - Sphere eryar@163.com Abstract. BRep is short for Boundary Representati ...
- OpenCascade Primitives BRep - Box
OpenCascade Primitives BRep - Box eryar@163.com Abstract. BRep is short for Boundary Representation. ...
- OpenCascade Primitives BRep-Cone
OpenCascade Primitives BRep-Cone eryar@163.com Abstract. BRep is short for Boundary Representation. ...
- OpenCascade Primitives BRep-Torus
OpenCascade Primitives BRep-Torus eryar@163.com Abstract. BRep is short for Boundary Representation. ...
- OpenCASCADE Make Primitives-Sphere
OpenCASCADE Make Primitives-Sphere eryar@163.com Abstract. The sphere is the simplest topology shape ...
- OpenCASCADE BRep vs. OpenNURBS BRep
OpenCASCADE BRep vs. OpenNURBS BRep eryar@163.com Abstract. BRep short for Boundary Representation. ...
- Geometry Surface of OpenCascade BRep
Geometry Surface of OpenCascade BRep eryar@163.com 摘要Abstract:几何曲面是参数表示的曲面 ,在边界表示中其数据存在于BRep_TFace中, ...
- Topology Shapes of OpenCascade BRep
Topology Shapes of OpenCascade BRep eryar@163.com 摘要Abstract:通过对OpenCascade中的BRep数据的读写,理解边界表示法的概念及实现 ...
- Representation Data in OpenCascade BRep
Representation Data in OpenCascade BRep eryar@163.com 摘要Abstract:现在的显示器大多数是光栅显示器,即可以看做一个像素的矩阵.在光栅显示器 ...
随机推荐
- SRM 628 DIV2
250 想想就发现规律了. 500 暴力,括号匹配. 1000 给一个f数组,如果i存在,那么f[i]也得存在,问这样的集合有多少种. 先拓扑一下,dp[i] = mul(dp[son]+1)最后 ...
- 有关iOS系统中调用相机设备实现二维码扫描功能的注意点(3/3)
今天我们接着聊聊iOS系统实现二维码扫描的其他注意点. 大家还记得前面我们用到的输出数据的类对象吗?AVCaptureMetadataOutput,就是它!如果我们需要实现目前主流APP扫描二维码的功 ...
- Ubuntu install JDK适合像我的小白
1.#下载JDK,记住保存的目录 2. sudo mkdir /usr/java 3. sudo tar zxvf jdk-7u75-linux-x64.tar.gz -C /usr/java 4. ...
- Java技术体系图
Java程序员高级特性 反射.泛型.注释符.自动装箱和拆箱.枚举类.可变 参数.可变返回类型.增强循环.静态导入 核心编程 ...
- Web服务网站故障分析常用的命令
1.查看TCP连接状态netstat -nat |awk ‘{print $6}’|sort|uniq -c|sort -rn netstat -n | awk ‘/^tcp/ {++S[$NF]}; ...
- 原生js移动端touch事件实现上拉加载更多
大家都知道jQuery里没有touch事件,所以在移动端使用原生js实现上拉加载效果还是很不错的,闲话不多说,代码如下: //获取要操作的元素 var objSection = document.ge ...
- Python之路Day13--堡垒机
一.前景介绍 到目前为止,很多公司对堡垒机依然不太感冒,其实是没有充分认识到堡垒机在IT管理中的重要作用的,很多人觉得,堡垒机就是跳板机,其实这个认识是不全面的,跳板功能只是堡垒机所具备的功能属性中的 ...
- PHP 通过百度API 实现通过城市名称获取经度
$city = $_GET['city'];print_r(getjw($city));/*** $city 需要查询的地址* $key 百度开发者账号*/function getjw($city){ ...
- svg格式的中国地图轮廓图
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C ...
- Powershell 十个常见任务
学习Powershell的时候,基本的语法也了解了一些,但是就是不知道要写些什么?作为一个过来者,和大家一起分享下常见的几个管理任务脚本. 1.更改本地Administrator账号密码 [ADSI] ...