2025年OCC教学:几何

OCC教学:几何几何 1 介绍 MVC Model View Controller OCC 提供了一系列类 用户可以 按原样 应用或通过添加自定义类来扩展 这些提供某些概念 例如几何实体 的类通常按实现进行分组 模型层 视图层和控制器层 每层都在相应的包中实现 而包又包含类和函数 MVC Example

大家好,我是讯享网,很高兴认识大家。

几何:1.介绍

MVC.Model-View-Controller
MVC.Example

示例——二维圆的概念。
模型:包含圆心和半径的数据对象。(标准的直接构造函数:默认构造函数、带有点和半径的构造函数等。)
控制器:构建一个经过 3 个点的圆。构建一个以圆心且与直线相切的圆。(注意:每个控制器类都有一个返回抽象数据对象的方法。)
视图:可以在查看器中显示的对象。

MVC.Discussion

优点:

  • 模型是持久的,可以在不更改模型类的情况下添加新的控制类。
  • 模型是最小的,如果需要可以在程序执行期间创建控制器类的实例。
    缺点:
    有时,很难找到解决特定问题的类。
MVC.Implementation of controller classes

OCC中针对几何和拓扑对象实现的各种控制器类包括:

  • 直接构造(gce_MakeCircle、gce_MakeLin2d);
  • 通过二维约束构建 (GccAna_Circ2d2TanRad);
  • 复杂的构造算法:插值近似、投影(GeomAPI package)。

几何:2.概述

非参数和参数几何
非参数几何

模型类(二维类通过添加“2d”后缀,gp_Pnt2d):

  • gp_Pnt——笛卡尔点;
  • gp_Vec——向量;
  • gp_Dir ——方向(非空向量,模长大小等于 1.0);
  • gp_Trsf——欧几里得变换。可以独立设置平移、旋转和缩放;
  • gp_Ax1——轴,轴是点加方向;
  • gp_Lin、gp_Circ、gp_Elips、gp_Hypr、gp_Parab、gp_Cylinder、gp_Sphere、gp_Torus 表示曲线和曲面的图元。
    控制器类:
  • 直接构建 - gce_MakeCircle、gce_MakeLin;
  • 约束构造(仅限 2d)- GocAna_Circ2d2TanRad。
非参数几何的限制

非参数几何提供了有用的集合类,但它们存在一些原则限制:

  • 无法回答典型的几何问题:
    • 此时的曲率值是多少?
    • 此时曲线的切向量是多少?
    • 曲线和给定点之间的最小欧几里德距离是多少?
    • 这些对象相交吗?
  • 有些对象是无限的,并且没有办法让它们变得有限:
    • 直线、双曲线、抛物线
    • 平面、圆柱
  • 不能表示自由形式和非平凡的对象:
    • 如何表示飞机机身? (贝塞尔曲线和 B 样条曲线);
    • 如何表示偏置曲面? (需要法向);
    • 如何表示扫掠曲面? (线性挤压和旋转)。
参数几何

模型类(Geom2d 包中提供了二维类):

  • 曲线 - Geom_Curve 的子类:
    • Geom_Line
    • 二次曲线:Geom_Circle、Geom_Ellipse、Geom_Hyperbola、Geom_Parabola
    • 自由曲面:Geom_BSplineCurve、Geom_BezierCurve
    • Geom_OffsetCurve
    • 裁剪曲线:Geom_TrimmedCurve
  • 曲面 - Geom_Surface 的子类:
    • 基本曲面:Geom_Plane、Geom_CylindricalSurface、Geom_SphericalSurface、Geom_ToroidalSurface、Geom_ConicalSurface
    • 自由曲面:Geom_BSplineSurface、Geom_BezierSurface
    • 扫掠曲面:Geom_SurfaceOfLinearExtrusion、Geom_SurfaceOfRevolution
    • Geom_OffsetSurface
    • 裁剪曲面:Geom_Rectangular TrimmedSurface
      控制器类(二维类可以通过在包名 gce2d 中添加“2d”后缀来获得):
  • 直接构造-gce_MakeCircle、gce2d_MakeCircle
  • 约束构造(仅限 2d)- Geom2dGcc_Circ12d3Tan
    ![[1699951924663.jpg]]
    讯享网
裁剪概念

一些参数对象,例如线 (Geom_Line) 或平面 (Geom_Plane),与其非参数对象一样是无限的。怎么绑定他们呢?

  • 曲线——使用开始和结束参数进行边界 - Geom_TrimmedCurve
  • 曲面——使用矩形域进行表面绑定 -Geom_RectangularTrimmedSurface
    OCCT 没有保护边界外的曲面计值。此功能用于高级算法(例如偏移算法),但建议避免在参数域之外进行计值。
    ![[Pasted image 20231114170321.png]]

几何:3.约束几何

二维约束几何

在OCC中,二维曲线(或轮廓)具有隐式方向,并且定义了“内部区
域”的概念。
![[Pasted image 20231114170625.png]]

按照惯例,根据曲线描述的正方向,曲线的内部位于左侧。约束几何创建涉及参数的限定,即参数相对于解的位置:

  • 外部(Outside)——解和参数彼此在外部;
  • 包围(Enclosing)——解包围了参数;
  • 被包围(Enclosed)——解被参数所包围。
参数限定

如果 C1 和 C2 是参数,确定切线同时接触 C1 和 C2 的问题有 4 个解。这些解可以通过外部定位和包围定位实现。被包围的定位导致一个例外情况,因为直线不能在一个圆内部。
![[Pasted image 20231115095914.png]]

![[Pasted image 20231115100306.png]]

![[Pasted image 20231115100337.png]]

实现

用于创建约束几何体的包列表:

  • GocAna - 基础几何算法类
  • Geom2dGcc - 高级几何的算法类
  • GccEnt - 参数限定的方法和类型
    示例:![[Pasted image 20231115101307.png]]

几何:4.接口(API)

浮点:实现和限制

现代计算机使用 IEEE 754 作为表示实数的方式(替代方案是对数
系统、区间算术、unum / posit)。根据标准,实值表示为以
下形式:
v a l u e = s i g n i f i c a n d ⋅ b a s e e x p o n e n t value=significand\cdot base^{exponent} value=significandbaseexponent
其中有效数和指数是整数。示例:5.*10-4
下表展示了常见类型的位分布:
![[Pasted image 20231115101949.png]]

几何公差和精度

OCCT 提供了一组几何公差,旨在克服浮点问题。它们位于 Precision包中:
![[Pasted image 20231115102151.png]]

例子:
![[Pasted image 20231115102346.png]]

插值与近似
插值法
  • 结果中的高阶多项式(取决于插值算法);
  • 复杂的结果;
  • 振荡是可能的。
    ![[Pasted image 20231115102841.png]]
近似

近似是多项式构造的过程,它接近给定的一组点,但不完全通过它们。近似算法有以下缺点:

  • 与插值相比,它的计算强度要​​大得多;
  • 与插值相比,需要付出更多努力来调整参数。
    ![[Pasted image 20231115102855.png]]
曲线插值

OCCT提供曲线插值算法。可以使用或不使用与点关联的参数来运行它。用法示例如下:
![[Pasted image 20231115103030.png]]

带切线的曲线插值

插值问题有无穷个解:
![[Pasted image 20231115103412.png]]

可以使用起点和终点处的切向来选择特定的解:
![[Pasted image 20231115103458.png]]

曲线近似

OCCT 具有内置曲线近似算法。它可以按如下方式使用:
![[Pasted image 20231115103613.png]]

曲面插值

OCCT 支持使用输入点表进行表面插值:
![[Pasted image 20231115103803.png]]

曲线上的点投影

OCCT包含曲线上的点投影、曲面上的投影曲线等多种投影算
法。与插值算法不同,有时投影不存在:
![[Pasted image 20231115103908.png]]

曲面上的点投影

点不仅可以投影到曲线上,还可以投影到曲面上。下面的代码演示了这一功能:
![[Pasted image 20231115104458.png]]

有时,存在多种投影结果。在这种情况下,有必要迭代投影结果以获取所有的解。

在这里插入图片描述

小讯
上一篇 2025-03-07 21:26
下一篇 2025-02-14 10:16

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/11775.html