occt关键内容摘要(一)

OCCT基本概念

用面向对象方法和软件工程思想分析,整个 OCC 由五个模块组成,分别是
基础类模块、建模数据模块、建模算法模块、可视化模块、数据交换模块和应用
程序模块。其中,建模数据模块主要提供二维和三维几何模型的数据结构,也称
据结构模块。

1.类和泛化

OCC中类分为 普通类 通用类 推迟类 分别对应 C++中 具体类 抽象类和模板类

2.数据类型分类

句柄处理类型 和 值处理类型两种

OCC 中所有数据类型可分为两大类:
通过句柄(或引用)处理的数据类型和通过值处理的数据类型

3.持久化和数据模式

持久化声明对象需要要从Standard_Persistent 类或其派生类派生的

基础类分析

基础类是 OCC 的基石。它提供了大量的通用服务,如自动动态内存管理(通过句柄对对象进行处理)、集合容器、异常处理、通过向下抛掷和构建插件程序而获得的泛化等

1.根类组件

a.基本数据类型 

如 Boolean(布尔类型)、Character(字符型)、Integer(整型)或者 Real(实型)等

b.动态对象的安全处理,以确保那些不再被引用的对象能被及时删除(Standard_Transient 类)

c.可设置的内存优化管理器。它能改善那些经常使用动态对象的程序性能。

d.run-time 类型信息扩展机制。它使得复杂程序的创建变得更为简易。

e.异常管理以及C++各种流的封装。

根类主要在 Standard 和 MMgt 两个包中实现。

2.串类组件

串类用来处理动态大小的 ASCII 和 Unicode 字符序列,可以通过句柄处理,
因此也可以被共享。串类在 TCollection 包中实现

3.集合容器组件

集合容器是处理动态大小的数据集合的类

集合容器包含许多通用类,如 run-time 大小的数组、列表、栈、队列、集(Set)和散列图(hashmap)。集合容器在 TCollection 和 NCollection 包中实现。

4.标准对象的集合容器组件

TColStd 包为 TCollection 包中通用类的一些经常使用的实例化提供对象(Standard 包)或者串(来自 TCollection 包)

5.向量和矩阵类组件

向量和矩阵类提供了有关向量和矩阵的常用数学算法和基本运算(加、乘、转置、求逆等)。

6.基本几何类型组件

基本几何类型提供了基本几何实体和代数实体的实现。这些实现符合 STEP
(Standard Exchange of Product data model,即产品数据模型的交换标准)。它们提
基本几何 Shape 的描述(点、向量、直线、圆与圆锥、平面与基本曲面、通过
标轴或坐标系使 Shape 在平面上或空间中定位)和 Shape 几何变换的定义与应
(平移、旋转、对称、缩放、复合变换、代数计算工具)

7.常用数学算法组件

常用数学算法为那些经常使用的数学算法提供 C++实现。这些算法有:
(1)求解线性代数方程组的算法 ;
(2)求一元或多元函数最小值的算法;
(3)求解非线性方程或非线性方程组的算法;
(4)求矩阵特征值和特征向量的算法

8.异常类组件

OCC 提供了一套异常类。所有异常类都是基于它们的根类—— Failure 类

9.数量类组件

数量类为日期和时间信息提供支持,同时也为表示常用物理量的基本类型
(如长度、面积、体积、质量、密度、重量、温度和压力等)提供支持。

10.应用服务组件

四种服务:

a.单位转换工具。它们为各种量和相应物理单位的处理提供统一机制。
这种机制能够检查单位的兼容性,以及在两种不同的单位间进行数值转换等(详UnitsAPI 包)。

b.有关表达的基本解释器。它使得用户脚本工具的建立和表达的通用定义等变得更容易(详见 ExprIntrp 包)。

c.用于处理配置资源文件(见 Resource 包)和用户定制信息文件(见
Message 包)的工具。有了这些工具,为应用程序提供多语言支持就很容易了。

d.进程提示和用户中断接口

数据类型、句柄、内存管理器和异常类

1.数据类型

       a.基本类型

                OCC 基本类型                 C++基本类型

                Standard_Integer                     int

                Standard_Real                         double
                Standard_ShortReal                 float
                Standard_Boolean                    unsigned int
                Standard_False=0
                Standard_True=1
                Standard_Character                 char
                Standard_ExtCharacter            short
                Standard_Cstring                      char*        (指针类型)
                Standard_Address                    void*        (指针类型)
                Standard_Extstring                   short*        (指针类型)

         b.值处理类型
        值处理类型可分三大类:
        (1)基本类型;
        (2)枚举类型;
        (3)由这样一些类(既不是由 Standard_Persistent 类派生,也不是由
        Standard_Transient 类派生,无论是直接派生还是间接派生)定义的类型

        c.句柄处理类型
        句柄处理类型可以分为两大类:
        (1)由 Persistent 类的派生类定义的类型。这些类型可以被长久地存在文件。
        (2)由 Transient 类的派生类定义的类型。

2.句柄

        在 OCC 中,句柄是通过类实现的。句柄含有多个接口成员,其中一个包含
        个引用。一般情况下,仅需要使用它的引用。句柄处理类要么是持久的,要么是短暂的。

        这里提三个注意事项:
        (1)Transient 类和 Persistent 类不完全是通过句柄处理的,它们也可以通过值处理;
        (2)持久对象不能含有非耐存句柄(那些引用非持久对象的句柄);
        (3)使用句柄的目的是共享对象(对于所有局部操作,建议使用值处理类)。

        例:
        Handle (Geom_Point) p1;
        Handle (Geom_CartesianPoint) p2, p3;
        p2 = new Geom_CartesianPoint;
        p1 = p2; //可以,标准的赋值。
        p3 = Handle (Geom_CartesianPoint) : : DownCast (p1);
        // 可以,p1 的实际类型是 CartesianPoint 句柄,尽管它的静态类型是 Point 句柄。

3.内存管理器

       标准的内存分配有三种方式:静态分配、栈分配和堆分配

        建模程序在运行期间,需要构造和析构大量的动态对象。在这种情况下,标准的内存分配数可能无法胜任工作。因此,OCC 采用了特殊的内存管理器(在Standard 包中实现)。除了异类,所有 OCC 类都使用 OCC 内存管理器进行存储分配 

        Standard::Allocate()

        Standard::Free()

4.异常类

        异常处理机制实现了正常程序逻辑与错误处理的分离,提高了程序的可阅读性和执行效率。

集合容器和标准对象的集合容器

        集合容器组件包含一些具有动态大小的数据集合类,如数组类、列表类和图(map)类等。集合容器类是通用的,即它们可以持有许多不必从根类继承的对象。OCC 的集合容器有通用集合、通用图和迭代器。它们都在 TCollection 包中。

        通用集合有 Array1 、Array2 、HArray1 、HArray2 、Sequence 、HSequence 、
List 、Queue 、Stack、Set 和 HSet

这些实例化有:
(1)对于一维数组,使用标准对象和 TCollection 串对 TCollection_Array1
用类进行实例化。
(2)对于二维数组,使用标准对象对 TCollection_Array2 通用类进行实例化。
(3)对于通过句柄处理的一维数组,使用标准对象和 TCollection 串对
TCollection_HArray1 通用类进行实例化。
(4)对于通过句柄处理的二维数组,使用标准对象对 TCollection _H-Array2

用类进行实例化。
(5)对于序列,使用标准对象和 TCollection 串对 TCollection _Sequence 通用类进行实例化。
(6)对于通过句柄处理的序列,使用标准对象和 TCollection 串对 TCo-llection_HSequence 通用类进行实例化。
(7)对于列表,使用标准对象对 TCollection_List 通用类进行实例化。
(8)对于队列,使用标准对象对 TCollection_Queue 通用类进行实例化。
(9)对于集,使用标准对象对 TCollection_Set 通用类进行实例化。
(10)对于通过句柄处理的集,使用标准对象对 TCollection_HSet 通用类进行实例化。
(11)对于栈,使用标准对象对 TCollection_Stack 通用类进行实例化。
(12)对于基于图键的散列器,使用标准对象对 TCollection_MapHasher 通用类进行实例化。
(13)对于基本散列图:使用标准对象对 TCollection_Map 通用类进行实例化。
(14)对于有一组项目的散列图,使用标准对象对 TCollection_DataMap 通用类进行实例化。
(15)对于基本索引图,使用标准对象对 TCollection_IndexedMap 通用类进行实例化。
(16)对于有一组项目的索引图,使用标准对象对 TCollection_Indexed-DataMap 通用类进行实例化。
(17)对于整数图,使用 TColStd_PackedMapOfInteger 类进行实例化。这种实例化在性能和内存使用上都得到了优化(它使用位标记对整数编码;这样的优化结果是每 32 个整数只需 24 个字节空间)。就像对整数集一样,这个类也为整数图提供了布尔操作(求并运算、求交运算、求补运算、求异运算、相等和包含查)。

数学基本类型和数学算法

        在 CAD 软件中,主要解决的就是数学模型。因此,本节将描述 OCC 的数学基本类型和数学算法。它们包括向量和矩阵类、基本几何类型和常用数学算法。

1.向量和矩阵类

        向量和矩阵组件为向量和矩阵提供了 C++实现。这个组件通常用来定义更复杂的数据结构。向量和矩阵类支持由实数组成的向量和矩阵的标准操作,如加、乘、转置、求逆等。

2.基本几何类型

        gp 包为二维和三维对象提供了一些通过值处理的类。它定义了一些基本的非持久几何实体;这些实体在二维和三维的代数计算和基本几何结构分析中用到。它也提供一些基本的几何转换,如等价、旋转、平移、镜像、缩放、复合变换等。注意:gp 包中的实体是通过值处理的。

gp 包中可实现的几何实体有:二维和三维直角坐标(x, y, z)、矩阵、笛卡尔点、向量、方向、轴、直线、圆、椭圆、双曲线、抛物线、平面、无穷圆柱曲面、球面、螺旋面和圆锥面。

TColgp包为 TCollection 类的实例化提供类(来自 gp 包,如 XY、 XYZ、 Pnt、 Pnt2d、Vec、Vec2d、 Lin、Lin2d、 Circ、 Circ2d 等; 这些类是非持久的)。
 

3.常用数学算法

所有的数学算法都是采用相同的规则来实现的。这些规则包括:
(1)构造函数。在给定合适的参数后,构造函数完成算法需要实现的所有或者大部分算法。所有相关信息存储在构造的对象中。因此后发计算或后发问题将以最有效的方式解决。
(2)IsDone 函数。如果计算成功,IsDone 函数将返回布尔真值。
(3)对每一种算法的都提供了一套函数;每套函数能够包含多个结果。只有IsDone 函数返回真值时,才可以调用函数。否则将产生 StdFail_NotDone 异常。

内容概要:该论文深入研究了液压挖掘机动臂下降势能回收技术,旨在解决传统液压挖掘机能耗高的问题。提出了种新型闭式回路势能回收系统,利用模糊PI自整定控制算法控制永磁无刷直流电动机,实现了变转速容积调速控制,消除了节流和溢流损失。通过建立数学模型和仿真模型,分析了不同负载下的系统性能,并开发了试验平台验证系统的高效性和节能效果。研究还涵盖了执行机构能量分布分析、系统元件参数匹配及电机控制性能优化,为液压挖掘机节能技术提供了理论和实践依据。此外,通过实验验证,该系统相比传统方案可降低28%的能耗,控制系统响应时间缩短40%,为工程机械的绿色化、智能化发展提供了关键技术支撑。 适合人群:从事工程机械设计、制造及维护的工程师和技术人员,以及对液压系统节能技术感兴趣的科研人员。 使用场景及目标:①理解液压挖掘机闭式回路动臂势能回收系统的原理和优势;②掌握模糊PI自整定控制算法的具体实现;③学习如何通过理论建模、仿真和实验验证来评估和优化液压系统的性能。 其他说明:此研究不仅提供了详细的理论分析和数学建模,还给出了具体的仿真代码和实验数据,便于读者在实际工作中进行参考和应用。研究结果表明,该系统不仅能显著提高能源利用效率,还能延长设备使用寿命,降低维护成本,具有重要的工程应用价值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值