基于ACIS/HOOPS的3D应用开发简介

(整理) 

平台:       

        造型引擎——ACIS

        显示引擎—— Direct3D/OpenGL/GDI
        应用框架—— HOOPS
 
组件关系图

 
ACIS ——造型引擎
ACIS是美国Spatial Technology公司推出的三维几何造型引擎,它集线框、曲面和实体造型于一体,并允许这三种表示共存于统一的数据结构中,为各种3D造型应用的开发提供了几何造型平台.Spatial Technology公司在1986年成立,目前ACIS 3D Toolkit在世界上已有380多个基于它的开发商,许多著名的大型系统都是以ACIS作为造型内核,如AutoCAD,CADKEY,Mechanical Desktop,Bravo,TriSpectives,TurboCAD,Solid Modeler,Vellum Solid等。
 
ACIS 核心功能
3D 造型
Ø          将2D曲线经拉伸、旋转、扫掠等操作生成复杂的3D曲面或实体
Ø          高级倒角和圆角操作
Ø          网格曲面生成
Ø          阵列操作
Ø          实体抽壳和曲面加厚
Ø          曲线、曲面和实体的交互式弯曲、扭曲、延展、变形
Ø          曲线、曲面、实体的交、并、差运算
Ø          放样操作
Ø          模型中拔模面生成、曲面等距和移动
3D 模型管理
Ø          在模型的任何级别关联用户自定义的数据
Ø          跟踪几何和拓扑改变
Ø          计算质量和体积
Ø          使用单元拓扑表示实体模型子域
Ø          独立于历史流的无穷次的撤销(undo)和恢复(redo)操作
3D 模型显示
Ø          将曲面几何离散成多边形网格表示
Ø          利用可选可变形造型组件创建高级曲面
Ø          利用可选PHL V5 组件生成带隐藏线消除的精确2D工程图
Ø          利用Spatial提供的Tech Soft America的HOOPS/3dAF以及HOOPS/ACIS Bridge等产品搭建图形交互应用程序
 
ACIS是一个完整的modeling的内核,说白了就是一套用C++写的modeling类库,只要你掌握了这个库就可以完成所有的建模工作(基本上所有3D造型软件的功能他都有),但是这个库的易用性不够,所以在其上又开发了一些API进一步对底层的acis类库进行封装,而最上层则是现在非常流行的一中类lisp的解释器平台,应用scheme语言作为上层的开发语言,经过这么多步骤的封装,你只需要输入(block(0,0,0),(10,10,10))这个命令就能建立一个立方体,其他相似的简单命令就能完成很复杂的操作,已经相当于 AutoCAD里面的命令行模式了。
建立一个模型后不能只存为一个数据文件就完了,我们需要把这个模型显示在计算机屏幕上,并实时对他进行操作,这就需要一个图形显示引擎来干这个事儿了。
HOOPS是一个在底层图形驱动基础上开发的显示类库,他不是一个单独的图形显示引擎,而是对OpenGL、DirectX这些图形引擎进行封装和扩展的结果。他的最大优势是对大模型操作和显示的优化以及一种压缩比高,适合网络传输的stream模式。这两者都可以理解为对原有图形引擎的优化,使文件更小,运行更快。当然,灵活的对OpenGL和directX的支持也是其卖点,HOOPS保证自己能同步跟上OpenGL和DirectX的发展步伐并在其上做有益的改进。
ACIS是一个 B-rep建模引擎,它是通过定义几何对象的边界来表达一个实物。边界是可组成一个闭合区域的一系列面的集合。其拓扑结构如下图:
 

 

Body        模型对象的根结点,是块的集合,能描述线体、板体、实体,也能是几个彼此分离的体的集合,包含 0 个或多个 Lumps
Lump        空间有界的连通的区域。 Shell 约束的点的集合,一个实体上附加一个悬挂面也称为 Lump
Shell        一系列连通的Face / Wire 的集合。 线、面的集合,能位于实体外,也能在内部形成空洞。一个体含一个悬挂面,一个体内嵌许多和外表面相连的面都称为 shell
Face                广义的面。 ACIS 能定义无限薄的双面或单面 ( 这种情况下,单面法向量指向面的一侧,实体材料存在于另一侧 )
Loop         a connected series of coedges, Closed
Wire          not attached to faces
Coedge     Edge被多个Face引用。 ACIS 中允许边是一个、两个或多个面的交线,因此它能描述二流形体和非流形体。一条边由两条共边 ( 有时也是单条共边 ) 组成。
Edge              one or more vertices。 边是多个面的交线时 (
  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值