首页 > 编程知识 正文

woodwop教程,斯维尔软件介绍

时间:2023-05-03 16:24:21 阅读:39626 作者:1105

一、 ACIS相关知识

ACIS是基于英国剑桥大学博士论文提出的基于边界表示法生成三维实体的理论体系开发的三维几何造型引擎,采用面向对象的数据结构,将线框、曲面、实体造型一体化,这三种表达在统一的数据结构中共存许多著名的CAD/CAM系统都使用ACIS作为几何核心,如Auto CAD、Turbo CAD和CADKEY。

几何、拓扑和属性是ACIS模型的三个基类,三个统一来自最基本的抽象类ENTITY。 虽然实体本身不表示对象,但实体定义了所有子类必须具有的数据和方法,包括保存、恢复和回溯。 ACIS模型数据的ENTITY和派生类的层次关系如图1所示。

图1 ACIS数据的c类层次结构图

1 .几何图形。 几何是模型的物理描述,如点、曲线、曲面和直线。 这些元素之间没有空间或拓扑关系。 的实现方法有两种。 一种是构建几何图形的数学定义的c类,包含几何图形,主要用于数学计算,不作为用户模型的一部分直接存储在模型中,但可以包含在模型几何图形中形成永久实体对象。 名称以小写字母表示。 例如,cone、ellipse、sphere等。 第二类是模型几何,即添加模型操作功能以构建几何的c类,与模型一起保存在SAT文件中。 模型操作功能包括保存和恢复模型数据、跟踪模型操作历史及其、转换,以及将预定义属性和用户定义属性附加到模型的功能。 模型几何图形派生自ENTITY类,名称由大写字母表示,如APOINT、CONE和ELLIPSE。

2 .拓扑。 拓扑是构成模型的各个对象之间的空间关系,即几何图元之间是如何连接的。 ACIS的拓扑包括:主体(LUMP )块(shell )子壳(FACE )面(LOOP )环(WIRE )线框(COEDGE )有向边每个拓扑对象之间的关系以及拓扑和几何体之间的关系如图2所示。 拓扑模型遍历是一个自上而下循环搜索的过程。

3 .实体的属性。 实体属性用于描述实体的非形状信息。 实体可以是零或多个属性。 ACIS提供了用于描述属性的ATTRIB类,它为所有属性(包括用户定义的属性和系统属性)提供了公用的数据和功能。 开发者可以从ATTRIB类中派生自己的属性类,并将其作为实体添加特定于APP应用程序的数据。

图2 ACIS中模型的数据结构

ACIS是一种基于软件组件技术构建的开放体系结构,通过采用软件组件技术,用户可以根据实际开发的系统需求自由选择、组合组件,用户可以访问accis ACIS的c库由35个DLL组成,为开发人员开发3d APP应用程序提供了巨大的灵活性和功能基础。 ACIS组件包括核心组件和可选组件,可选组件可以集成到核心组件中。 核心组件提供基本的建模功能,而所有组件基本上依赖于核心组件。 其中核心组件KERNEL提供基本实体和属性支持,定义拓扑和几何实体类、结构几何类、数学处理类、文件存储及其恢复,支持历史和追溯; 核心组件ACIS 3d工具包在通用一致的数据结构上提供了线框、曲面和实体建模功能框架,并提供了三维建模的基本功能,如零件/模型管理、图形操作、基本显示和OpenGL显示组件BASE提供了供其他ACIS组件使用的基本通用功能。

ACIS的每个组件都包括ACIS类、API函数和DI函数。 ACIS类描述实体模型的几何、拓扑和物理属性信息,并定义实体模型的数据结构。 在APP应用程序中,可以通过类的公共数据成员和受保护的数据成员以及成员函数直接与ACIS进行交互。 开发人员还可以根据自己的系统需要从ACIS类派生自己的APP应用程序类,类接口可能在每个版本中发生更改。 作为ACIS和用户程序的接口,API函数在用户程序开发中非常重要,它封装了几乎所有实体模型数据的关键操作,包括几何模型的创建、模型属性的更改和模型信息的提取该APP应用程序调用API函数来创建、修改或恢复数据。 API函数将建模功能与APP应用程序支持特性相集成,并应用变量错误检查和回溯等支持特性。 如果API例程发生错误,ACIS会立即自动恢复到调用此API例程之前的状态,以确保模型不会崩溃。 无论ACIS基础数据结构或函数如何更改,这些API函数都不会在每个版本中更改。 DI函数提供了一个不依赖于API而直接访问ACIS建模功能的接口。 与API不同,这些函数可能会在每个版本中更改。 因此,我们正在开发使用ACIS类和API函数,而不是DI函数。

二、HOOPS相关知识

HOOPS是一个更高级的APP应用程序框架,构建在OpenGL、Direct3D等图形编程界面上。 HOOPS为软件开发人员提供强大的图形功能,包括高质量的模型显示、方便的人机交互、对多种渲染管线(包括OpenGL和Direct3D )的支持、高级渲染和3D图形矢量化

动画、动态干涉检查以及图形数据流化处理等。

HOOPS组件按功能可分为HOOPS/3dAF、HOOPS/Stream以及HOOPS/NET三个子组件。HOOPS/3dAF组件是一个3D图形应用程序框架,是3D产品组的核心组件,采用了保留模式的图形数据库和多种渲染管道来管理和绘制图形对象。HOOPS/3dAF提供了一个基于一系列模块应用组件的灵活的架构基础,提供了非常全面的应用程序开发接口供用户选用或根据用户特定需求进行定制,这能促使快速开发和维持高性能的设计、可视和工程包。HOOPS/Stream是平台和GUI均独立的C++类的集合,它能使应用程序通过互联网和各种带宽的网络有效地流出高压缩的文件,包括巨大的2D、3D和自定义数据。这个功能使得它成为开发工程软件、CAD /CAM /CAE、分析、数字模仿、仿真和科学可视化应用的理想组件。它也允许开发者创建仅有的真正开放的可视化标准(HSF),这对于工程和网络用途都是最优的。HOOPS/NET组件则可以用于网络协同。这三个子组件既可以单独授权,也可以结合在一起使用。

在HOOPS中,场景是通过“片段”树的形式来描绘的。图3为一典型的“片段”树结构,位于最顶层的是根“片段”,树中的每个结点代表一个“片段”。构造一个模型时,首先要产生一个根“片段”,再根据具体要求从根“片段”产生一级子“片段”,二级子“片段”等。图3中的根“片段”有4个一级子“片段”,即Driver、Model、IncludeLibrary和StyleLibrary。Driver“片段”是HOOPS/3dGS自动创建的设备驱动“片段”,用来实现图形的显示与打印,针对不同的输出设备和显示平台,系统自动产生Type“片段”作为Driver的子“片段”。这些子“片段”实质上是一些抽象的C++类,不能直接调用,可通过生成类的对象实例来完成任务。若要在此窗口中显示模型,则需要把模型的“片段”插入窗口“片段”中。Model“片段”可看作是总装配体,包含part1“片段”、part2“片段”等零件。其中part1“片段”包含body1“片段”和body2“片段”两个零件,body2包含shell“片段”和line“片段”等实体“片段”。IncludeLibrary“片段”可以看作是零件库,在此“片段”下创建子“片段”构建标准零件库。图3中,part2“片段”是通过从此零件库复制子“片段”而得到。StyleLibrary“片段”可看作是属性库,某个“片段”的属性可通过复制其内部的属性子“片段”获得。

图3 HOOPS“片段”结构

三、BRIDGE相关知识

3D应用程序通过HOOPS/GUI和ACIS、HOOPS组件建立连接,从而实现利用ACIS内核进行造型,并利用HOOPS组件进行可视化和人机交互。ACIS和HOOPS之间通过HOOPS/ACIS桥进行通信,从而实现文档和视图分开。ACIS与HOOPS采用不同的数据结构来描述模型,需要经过转换才能将ACIS实体加入到HOOPS数据结构中。SpaHBridge动态库是连接ACIS与HOOPS的桥梁,用来完成实体转换和ID映射。在SpaHBridge中,HA_Render_Entities()函数可以读入ACIS实体列表,根据列表调用IEntityConverter类把ACIS的实体转换为HOOPS的实体“片段”并插入到HOOPS的“片段”树结构中加以渲染。

为了实现在HOOPS显示窗口中点选几何元素,实现对相应的ACIS实体进行操作,需要在HOOPS几何元素与ACIS实体元素之间建立映射关系。HA_Compute_Geometry_Keys()将ACIS实体指针作为参数来获取对应的实体“片段”的键值。相反,HA_Compute_Entity_Pointer ()可以获得与HOOPS实体“片段”对应的ACIS实体的指针。HOOPS/MVO的操作类通过键值访问“片段”,再通过调用HA_Compute_Entity_Pointer ()函数获得指针对ACIS实体进行操作.

四、开发过程总结

利用ACIS和HOOPS来开发三维图形软件,主要有以下几点:

1. 软件采用vc2005开发,主要内容是完成交互系统、造型系统和渲染系统的设计与实现。

2. 明确应用程序的开发框架,如图4所示。

图4 3D应用程序的开发框架

3. 通过HOOPS/MFC,建立MFC与HOOPS的接口,接收键盘/鼠标事件,并传递到HOOPS/MVO中。在HOOPS/MVO中,实现人机交互的控制。包括接受用户输入,对模型的渲染和显示控制,模型拾取操作等。

4. 通过HOOPS/ACIS桥,调用ACIS的API函数创建或修改3D几何对象,并存储在SAT文件中。对象的各种属性(几何属性和物理属性)存储在各自的属性表中。不论是简单几何体还是复杂几何体(通过布尔运算、拉伸、旋转等创建的物体)都通过ACIS来创建和修改。

5. 用ACIS来创建和管理几何模型,通过HOOPS/ACIS桥同步将其存放在HOOPS数据库的segment段中,最后通过各种渲染引擎渲染成几何实体。

6. 几何模型数据存放格式为hsf或hmf。

7. 开发时的一些基本程序代码。

启动:

      api_start_modeller(0);

HA_Init(0);

      unlock_spatial_products_1494();

……

造型:

      HC_Open_Segment_By_Key(m_pHView->GetViewKey());

BODY* sphere_body;

api_make_sphere(radius, sphere_body);

api_transform_entity(sphere_body, delta_transf);

……

转换:

HA_Set_Rendering_Option();

HA_Render_Entity((ENTITY*) sphere_body);

HC_Close_Segment();

……

终止:

HA_Close();

      api_stop_modeller();

……

======================================================================================================================

转载自:http://blog.csdn.net/qmroom/article/details/3580333

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。