eryar

PipeCAD - Plant Piping Design Software.
RvmTranslator - Translate AVEVA RVM to OBJ, glTF, etc.
posts - 603, comments - 590, trackbacks - 0, articles - 0

OpenCASCADE-HLR Edge

Posted on 2023-12-02 12:23 eryar 阅读(415) 评论(0)  编辑 收藏 引用 所属分类: 2.OpenCASCADE

OpenCASCADE-HLR Edge

1 Introduction

用计算机生成三维物体的真实图形,是计算机图形学研究的重要内容。真实图形在仿真模拟、几何造型、广告影视和科学计算可视化等许多领域都有着广泛应用。在用显示设备描述物体的图形时,必须把三维信息经过某种投影变换在二维的显示平面上绘制出来。从三维投影到二维的降维操作,会导致图形的二义性。要消除这类二义性,就必须在绘制时消除被遮挡的不可见的线或面,习惯上称之为消除隐藏线Hidden Line Removal和隐藏面Hidden Face Removal。

这是渲染显示上对消隐的需求,在根据三维模型自动生成工程图的工程设计软件中,对消隐的需求有所不同。

工程设计软件与机械设计软件不同,工程设计软件一次出图消隐的模型量大,对出图的算法要求主要有:

  • 主要使用消隐线算法;
  • 消隐得到的线能找到与三维模型的关系,方便标注模型信息,如模型名称、规格等;
  • 自动标注布局算法,能对标注的名称、规格等自动布局,减少手工调整;
  • 自动尺寸标注;
  • 符号化处理,如管道模型能用一条线符号化处理;

其实最后总结成一句话就是一键根据模型生成能交付的图纸。虽然现在技术上具备三维模型下车间的能力,但是目前二维图纸依然是设计交付、加工制造主要依据。工程类设计软件主要的功能就是快速建模,碰撞检测和自动图纸生成。当模型量大时,消隐速度快及自动生成的标注文字排列整齐(或满足工程习惯)成了二维图纸自动生成的核心技术,也是程序处理中的难点。

2 HLR

几何内核一般都提供HLR算法,用来根据模型投影生成二维工程图。OpenCASCADE的HLR提供了隐藏线消隐算法。

https://www.spatial.com/zh/products/cgm-hlr-hidden-line-removal

OpenCASCADE 提供了两种消隐算法:HLRBRep_Algo和HLRBRep_PolyAlgo。这些算法都是基于相同的原理:比较形状每条边相对每个面的可见性,并 计算每条边的可见部分与消隐部分。算法通过计算在指定投影方向上的物体显示特性,去除或标记被面遮挡的边。这两个算法也与一些提取功能配合使用,如重构一 个简化的模型等,简化后新的模型由边组成,就是在投影方向上的轮廓线。

3 边的分类

OpenCASCADE的HLR中将边分为以下类型:

  • Sharp Edges
  • Smooth Edges
  • Sewn Edges
  • Outline Edges
  • Isoparameter Edges

从类HLRBRep_HLRToShape和类HLRBRep_PolyHLRToShape中给出了这些边的一些定义。其中Sharp Edge表示C0连续(非G1连续)的边,就是一般Edge;

Smooth Edge表示G1连续(非G2 连续)的边;

Sewn Edge表示G2连续的边;

Outline Edge表示模型的轮廓边,这种类型的边不在BREP数据中,需要根据投影方向生成;

Isoparameter Edge表示面的等参线生成的边,这种类型的边不也不在BREP数据中;

其中Sharp Edge、Smooth Edge和Sewn Edge一般都是BREP中的EDGE数据,而Outline Edge和Isoparameter Edge是根据设置额外生成的边。理解边的这些定义,方便对HLR算法进行理解。HLR算法是相对简单的算法,主要是就将上述五种类型的边与面进行求交,判断遮挡关系。

目前OpenCASCADE中的HLR算法代码写得有点乱,上次在深圳ogg的俄罗斯开发人员提到要重构HLR部分的代码。深入理解 HLR算法,为自动生成图纸功能打下基础。

 


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理