OpenCASCADE Make Primitives-Box

本文通过构建Box来解析OpenCASCADE的BRep(边界表示)数据结构,从顶点、边到实体,逆向理解Winged-Edge结构。通过创建Face、Edge和Vertex,展示如何在Draw Test Harness中显示并进行布尔运算验证形状正确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Abstract. By making a simple box to demonstrate the BRep data structure of the OpenCASCADE. The construction method is different from BRepPrimAPI_MakeBox. In the paper construct the box from vertex, edge to solid, while in BRepPrimAPI_MakeBox from solid, shell to vertex. From the construction, the BRep data structure in OpenCASCADE also can be called the Winged-Edge data structure.

Key Words. OpenCASCADE, BRep, Box, The Winged-Edge Structure

1. Introduction

OpenCASCADE的Toolit TKPrim中提供了基本图元的创建功能,像Box, Cylinder, Sphere等等。直接使用Package BRepPrimAPI中的功能,可以方便地创建出基本图元,而不用关心其内部的数据结构。

wps_clip_image-27189

Figure 1. BRepPrimAPI Package classes

为 了理解ModelingData模块中OpenCASCADE的边界表示法BRep数据结构,决定参考其实现,自己来创建出基本图元,进而理解其中的 BRep数据结构。本文以最简单的长方体Box入手,从点、边到体的创建出一个形状。并将构造的形状在Draw Test Harness中进行显示,且进行布尔运算,来验证构造结果的正确性。

2.Make a Face of the Box

在OpenCASCADE的包BRepPrim中,构造长方体的方式是形状的根结点出发到叶子结点,即从Shell到Face到Wire最后到Vertex,如下图所示:

wps_clip_image-5617

Figure 2.1 Data structure of a Shape

为了程序演示的清晰,本文中采用与OpenCASCADE中相反的方式,即先从叶子结点出发,逐步回到根结点,即先构造出顶点、边最后到实体。长方体由六个面构成,所以先从一个面开始来构造。将一个面构造成功后,其他六个面的构造方法就相同了。

构造使用了BRep_Builder,在创建相应的拓朴的同时可以将其相关的几何信息设置进去。如创建顶点Vertex时,可以将点的坐标信息及容差值设置进去,代码如下所示:

复制代码
BRep_Builder aBuilder;

// make vertex of the box.
aBuilder.MakeVertex(aVertices[0], aPoints[0], Precision::Confusion());
aBuilder.MakeVertex(aVertices[1], aPoints[1], Precision::Confusion());
aBuilder.MakeVertex(aVertices[2], aPoints[2], Precision::Confusion());
aBuilder.MakeVertex(aVertices[3], aPoints[3], Precision::Confusion());
aBuilder.MakeVertex(aVertices[4], aPoints[4], Precision::Confusion());
aBuilder.MakeVertex(aVertices[5], aPoints[5], Precision::Confusion());
aBuilder.MakeVertex(aVertices[6], aPoints[6], Precision::Confusion());
aBuilder.MakeVertex(aVertices[7], aPoints[7], Precision::Confusion());
复制代码

创建边的同时,将其边中的三维曲线信息也设置进去,代码如下所示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值