收藏 分享(赏)

Open CASCADE学习笔记.doc

上传人:精品资料 文档编号:10909139 上传时间:2020-01-20 格式:DOC 页数:42 大小:575.50KB
下载 相关 举报
Open CASCADE学习笔记.doc_第1页
第1页 / 共42页
Open CASCADE学习笔记.doc_第2页
第2页 / 共42页
Open CASCADE学习笔记.doc_第3页
第3页 / 共42页
Open CASCADE学习笔记.doc_第4页
第4页 / 共42页
Open CASCADE学习笔记.doc_第5页
第5页 / 共42页
点击查看更多>>
资源描述

1、前言很久就想这篇东西,可一直懒于动脑且为一些俗事烦恼,所以才拖到现在才动笔把我上学期间一篇论文整理一下,仅供参考。我分成几段来写,如果想看懂这篇文章,那首先要了解每段之前的关键词,不懂的可以在网上搜一下。然后还有看这篇文章的时候希望你能按自己的需要来看,有很多是写给自己看的,你只挑自己有用的看就行了,省得到时候埋怨我浪费你宝贵的时间,我这人写东西不行,尽量写的有条理,尽量吧。第 1 章 意义,它是三维造型软件的内核、基础。关键词:三维造型软件、虚拟现实技术、仿真技术、OpenGL、几何内核系统、布尔操作首先,做什么事情都要有意义,因此我先说明一下 Open CASCADE 到底是个什么类型的工

2、具,使用这个工具是否对你将要完成的目标有帮助。如果有帮助,那么你可以继续往下看它的具体用法;如果没有,那么你就应该按照你的目标继续寻找实现目标的手段,不用把时间浪费在这篇文章上;如果你清楚了 Open CASCADE 的这一工具是干什么用的就可以跳过意义直接看下一章。我先说一下我对这个工具的理解,然后会贴一些网上对这个工具的说明。Open CASCADE 是一款三维造型软件的内核系统,也就是制作三维造型软件的工具。那何为三维造型软件呢?其实市面上已经有很多这样的软件了,比如说PRO/E、UE 、 Solid Edge、 Catia、国内还自主研发的金银花系统(好象叫这个名字)以上这些大多都是用

3、于工业上的,3DMAX、VRML(这里要说明一下 VRML 其实是一款适合网络的三维造型语言,应属语言系列,和 HTML 语言类似,不太附和三维造型软件的标准)也是三维造型软件,当然还有很多很多这种类型的软件,就不做过多介绍。三维造型软件,可以在电脑上如实地(尺寸、颜色、材质等)搭建起一个虚拟的模型,这些模型可以用于工业设计、艺术设计、装修设计等等等一系列的虚拟现实技术相关的行业,也可以用来做一些仿真实验的模型构建。可能有很多人都已经用过一款或两款三维造型软件,但是你在用的时候想没想过三维造型软件是怎么做出来的呢?它的底层是由什么支持的?它是由两部分支持的,一是硬件支持,如显卡,这个我们不讨论

4、;二是软件,作为软件,我猜想(注意是我猜的,如有疑问请查实)它也是可以分成两个部分,一是硬件驱动的标准体系(请关注 OpenGL) ,二就是 几何内核系统。硬件支持和硬件驱动标准都不是本篇要讨论的内容,这里重点介绍的是几何内核系统。如果你的目标只是构建一个三维模型用来做仿真实验或做一个虚拟现实环境,那么你可以选用三维造型软件来完成。现在已有的三维造型软件发展的已经很好了(我当年用的第一款是 Solid Edge7.0,看看现在它的最新版本号吧,饿的神啊) ,不仅品种多,而且相当人性化,你想到了它也想到了,你没想到的它也想到了(注意这句话) ,恩,很好用。这里我建议,如果你能使用现有的三维造型软

5、件完成你的工作任务,请尽量使用它们,原因有三:第一、站在巨人臂膀上能看的更远;第二、使用几何内核系统开发出来的三维造型软件这一过程是相当艰辛的,且不一定能有什么好的结果;第三、你真的确定三维造型软件不能完成你的工作目标吗?举个例子,Pro/E 里有 N 多模块可供使用,你平常使用的可能只是零件、装配、工程图、板金、管道、电气模块这几个常用的,有些模块你可能从来就没见到过,但是你应该看看帮助或在网上查一下是否能用上其他的模块,如果能用上,那真要恭喜你了;还有,可以用一些编程工具,如 VB、VC 之类的开发 Pro/E 的模块,我没试过,只是听说来的。什么是几何内核系统?它是制作三维造型软件的工具

6、,三维造型软件都是在几何内核系统的基础上制作完成的,因此一款几何内核系统的好坏直接决定着三维造型软件的优劣。那么我为什么要选择使用 Open CASCADE?我的专业是机械设计,现在实验室里我们专业都在搞虚拟现实之类的项目,比如说 VRML 与 MATLAB 结合绘制地图、OpenGL 碰撞检测、虚拟装配(我哥们做的,和我基本类似,但由于一些原因他没做完) 、虚拟造型(这就是我的活) 、机械人仿真(UG 造型、用一个仿真软件做的仿真,名字忘了) ,说说我的吧,要求是做一个课件(很郁闷,毕业设计竟然是做课件) ,但还不能说做课件,因为这种东西是毕不了业的,课件的要求是在一个虚拟的环境下,构建各种

7、模型、对这些模型进行必要的布尔操作及显示模型的三视图。问题来了,解决吧。三个要求,一是建模;二是布尔操作;三是三视图的制作。为了完成课题,我尝试了两种工具,VRML 和 Pro/E 建模。第一,先说 VRML。导师一开始想让我用 VRML 来做课题,一开始我也不懂就用了,简单说一下 VRML 吧(从网上的摘了一篇关于 VRML 的,见附录 1-什么是 VRML ) ,VRML( Virtual Reality Modeling Language)即虚拟现实建模语言。是一种用于建立真实世界的场景模型或人们虚构的三维世界的场景建模语言,也具有平台无关性。是目前 Internet上基于 WWW 的三

8、维互动网站制作的主流语言。见过网页上很炫的 FLASH 吗?简单的说,VRML 就是三维的 FLASH,是 FLASH 的升级版(3D 版) ,它就是为了网络的虚拟现实化而生的,与 FLASH 不同的是,它是一种标准化语言,你可以很方便的制作出一个虚拟的世界。为什么不用 VRML 做课题?VRML 的优点:简单易用;缺点:不灵活。它就不适合建模,太麻烦,需要依靠其他的三维造型软件来完成。要它实现布尔操作想都别想,三视图更别提了,手画比它要简单些。所以课题不能用 VRML 来完成,不过到用 VRML 做了两个小玩意,一个是虚拟装配(有点意思) ,二是 VRML 与 MATLAB 画相贯线(这个写

9、了论文,很扯淡) 。第二个是 Pro/E 建模。Pro/E 就不用我多说了,有很多工科专业都会用到这个软件,建模方面很强大。我当时学 Pro/E 的时候还是瀑布式菜单,一开始挺挺别扭的,现在用的还挺习惯。现在 Pro/E 野火版中大部分的命令都改成了更为人接受的工具条式命令,算是个不小的改进了,但还保留了很多当年瀑布式菜单的影子,用来做留念还是技术水平达不到就不得而知了。以前给教研室里的老师们上过 Pro/E 的课,虽然讲课时都把我导师讲的睡着了,但是 Pro/E 我是学的比较精通了,每个命令都仔细研究了下,但实际应用就差很多,毕竟光是上课,又不做什么项目,没得到什么实战锻炼。为什么不用 Pr

10、o/E 做课题?不选 Pro/E 做课题的最主要原因就是:因为 Pro/E 太强大了,强大到当时我实在想不出怎么用它来进行我的毕业设计,我总不能答辩的时候打开 Pro/E 去给那几个老师演示一下 Pro/E 建模吧,那样我 3007 年也毕不了业了。其实这只是当时的想法,现在想起来,有一点我没有想到,那就是 Pro/E 的模块开发,做一个模块来实现我需要的功能就行了,我看到过关于 Pro/E 模块开发的文章,可惜睌了,我不会有机会再做这个实验了,我也不想有。题外话-不经意的时候会思考一些问题,读研的时候到底学到了什么,那人生中的三年到底有没有意义,如果有机会再做选择的话还会选择那条路吗?在这里

11、我想说一下,在读研的三年里,学到最重要的东西不是知识,也不是方法,而是意义。意义也可以理解成“方向” 、“目标” 、 “理想”等等等等,虽然这些都是抽象的看上去遥不可及的,但它们就在每个人的心中,它们是每个人的精神支柱,一个人没有了支撑就失去了作为一个人的意义,成了一具行尸走肉。现在我才发现,原来我的精力实在有限,无法实现的理想太多,但我还是会努力去实现每一个对我来说很重要的事情,这样才有意义。每个人都有自己珍惜的意义,去努力珍惜吧。如果没有意义,就不要做这件事。意义是抽象的,但方法就显得具体许多了,但当今社会方法也是海量了,只一句-适合自己的方法才是最好的方法,自己能接受、对自己有益的方法才

12、是正确的方法。连方法都是海量的,更何况知识?知识早就爆炸了,用有限的精力调控好意义、方法和知识的关系,这就是我在读研期间最大的收获。言归正传,VRML 和 Pro/E 这两个工具都是十分优秀的三维造型工具,只是各自的用途不同,一个用于网络虚拟环境建立,另一个是用于专业建模。在我的课题里找不到它们的位置,所以我找到了第三种武器-Open CASCADE。最后,我说一下为什么选择 Open CASCADE。第一、Open CASCADE 的建模能力可以达到非常专业的水平,这一点比 VRML 强很多;第二、Open CASCADE 可以轻松完成模型之间的布尔运算;第三、Open CASCADE 提供

13、了很多类用来完成绘制三视图。其实这三点都是废话,说了等于没说。最重要的问题是:它为什么能有如此强大的功能呢,为什么有这么强大的功能但是大部分人却从未听说过它的大名呢?这一切的答案都是因为-Open CASCADE 是一款几何内核工具。简单说一下几何内核和三维造型软件的关系,Pro/E、Solid Edge 的几何内核是 Parasolid,这个内核在在市场上是找不到的,属于 Pro/E公司内部的使用工具;金银花的几何内核的是 ACIS,这个内核是可以买到的。打比方说,Parasolid 是 Pro/E 的父亲,而 Open CASCADE 就应该算是 Parasolid 的兄弟了,Pro/E

14、碰到Open CASCADE 是要磕头的。使用 Pro/E 的用户未必知道 Parasolid 是什么东西,他们也用不着知道,只要会用 Pro/E 完成 BOSS 交待的任务就 OK 了,因此作为底层开发工具的Parasolid、ACIS 和 Open CASCADE 不为人所知也就不足为怪了。“所有的三维造型软件都是基于几何内核来开发的。 ”既然有三种几何内核工具可选,那么我为什么选 Open CASCADE,是不是因为 Open CASCADE 是最强大的?当然不是,恰恰相反,因为 Open CASCADE 是免费的,在网上可以随便下载,Parasolid 买都买不着,ACIS 要花钱买,

15、谁给我钱?唉,没办法呀,没米下粥只能喝水充饥了。在这里,我建议如果有能力的话还是购买 ACIS 来做你的程序,虽然我没用过 ACIS,但总觉得花钱买的应该更健康些。还有,Open CASCADE 也不是完全免费的,你如果使用它,遇到不明白的问题无法自己解决的时候,咨询是要花钱的,你如果想做一个很完美的程序就一定会有问题要问的,我就碰到了一个棘手的问题,但是我没问,嘿嘿,其实我是出来混的,后面会写我遇到的问题。第 2 章 使用 Open CASCADE 的前提条件2 1、英语关键词:匈牙利命名法、CDL从小到大一直傻乎乎的学英语,也没人跟我说为什么学、以后能用上不,读研三年,工作两年,现在我可以

16、负责任的对大家说,英语很有用,真 TM 有用。且不说从初中到大学要经历无数场英语考试,光说在学校期间和工作中的用途。在学校做课题时你就会发现,先进的技术都 TM 是国外的,而国外的资料都 TM 是英语的,当然也偶尔有中文的,那仅限于比较热门的技术文档,中等温度或冷门的资料你就看吧,一路鸟语花香的。工作中,我是做电气的,对单片机热过一阵,很多数字产品的使用说明都是英语,偶尔也有中文翻译,但你还要小心,有些中文翻译你还不能全信,因为有时候它们会翻译错,我想是因为外行翻译的吧,唉,英语很重要。Open CASCADE 资料是全英文的,有些是你必须看的,所以英语不好你是要头疼的。我的论文里的有很多内容

17、是把这些资料翻译过来的,挑出比较精髓的部分整理归类贴进了论文里,其实我看了很多资料才选出这些,有很多细节的部分是无法写进论文里的。举个例子来说,论文里用到的 OCAF 框架,这有一篇资料专门介绍 OCAF 的用法,写的很详细,有理论有实例,这篇文章是必看的。当然还有很多资料需要看,这里就不详细说了。如果你想熟练使用 Open CASCADE,这里就提两个要求:一是阅读能力,这个不多说,自己看着办;二是对专业名词的理解,这个详细说一下,这里不仅仅是对你的英语能力有要求了,还需要对你的专业水平提出要求,你首先要明白中文的特有名词的清楚明了的认识,了解它的真正含义,在这套体系中所处的地位,然后才谈的

18、上英语专业名词的理解。其实这并不容易,因为翻译本来就是英语中最有学问的部分,在很多情况下,翻译过来的就不是那个味了。但是你并不用为此担心,因为大部分的专业名词都是一一对应的。特殊专业名词的缩写是需要你记住的,比较好记,都是单词首字母的大写组合,比方说OCAF、 MFC、 AIS、HLR 等,人家不会拿你开涮,不是重要的不会有简写形式,多看资料自然就记住了。专业名词缩写:CDL(Component Description Language) 、IGES (模型标准) 、XDE(模型标准) 、STEP(模型标准) 、BREP(模型标准) 、HLR(Hidden Line Removal) 、OCA

19、F(Open CASCADE Application Framework)、TCL/TK (Tool Command Language/Tool Kit) 、AIS (Application Interactive Services) 、DF(Data Framework)等还有一点要说明的是,既然要涉及到编程了,就要熟悉匈牙利命名法,在你熟练使用那些类时对你会有帮助的。在 Open CASCDE 中,利用 CDL(component definition language)对类、方法、包、可执行文件等进行定义。CDL 语言的使用方法在帮助文档中有详细介绍。我当时看资料大概用了一个月?记不清了

20、,反正是以月为单位的,我英语很一般。2 2、VC+大二的时候开始接触 VB,一开始有很多不明白的问题,很多繁琐的名词让人不知所措,现在想来 VB 还算是挺简单的,完全模块化的编程工具,微软做好各种基本积木造型,你想造什么房子,搭起来行了,熟练掌握就成了熟练的程序员。VC+也差不多一个道理,不过不一样的是,它的积木造型更细化,你可以设计自己基本积木造型,搭房子的过程更细化,这样你可以加进更多自己的东西,让房子更加合适自己的需要。学 VC+的基础是 C 语言和 C+,其实 C+就是 C 语言的升级版,多了继承性、多态性和*性(忘了)而已,这里就不多说了,想要熟练使用需要多练练。学习 VC+强烈建议

21、学习孙鑫老师的教程,由浅入深,很喜欢,一共二十课,每课两个小时,听下来多练练就基本能对 VC+有个初步的了解。说实话,我现在的 VC+水平已经很低了,由于很长时间也没做程序,生疏了。VC+很难,每次我在看 VC+程序看不下去的时候我就想问候一下 BILL GATES,当然也很佩服他们居然能搞出这么复杂的东东,不过人家搞的有条不紊,确实是很不容易了。学习它是一条很艰辛的道路,你需要接触并搞清楚无数复杂的晦涩的名词,需要熟悉很多“类”的意义、用途及使用方法,需要了解程序流程是怎么走的,需要明白怎么调试程序。本人每次听孙老师讲课经常会感觉困意难当,是一个爬下- 起来回放- 爬下-起来回放的循环过程,

22、每课都要听两遍以上,每次听都感觉在听新的一样,学习 VC+大概用了一个月左右吧,毕竟以前有一些学语言的基础,还算比较快了。VC+有个必备的工具,MSDN ,是一套帮助系统。第 3 章 关于 Open CASCADE3 1 下载上面说了足够多的废话,下面说正题,刚才说了 Open CASCADE 是免费的,你可以从它的官网上下载(www.opencascade.org) ,在华军等网站上也提供它的下载程序。下载的时候特别注意,你需要下载两个安装文件,一是 Open CASCADE 工具的安装文件(OpenCASCADE6.1.0.rar-409MB) ,二是 Open CASCADE 帮助文档(

23、OCCTDocumentation6.1.0.rar-63MB) ,这个帮助文档也是需要安装的。我当时用的版本号是 Open CASCADE 6.1.0,现在最新的还是这个版本号,看来这是最终版本了。3 2 安装及示例安装 Open CASCADE6.1.0 时,你可以选择全安装,这样可以试试每个模块的功能和用法。当时我安装的时候需要花 10-20 分钟(也可能是当时机器落后的缘故) ,挺慢的,现在配置高的机器几分钟就能搞定。安装完成后,Open CASCADE 不会像其实安装程序一样跳出对话框问你是否运行该程序,因为 Open CASCADE 是一个庞大的类库系统,没有程序可以运行。安装 O

24、pen CASCADE6.1.0 完成后,再把帮助文档安上(其实就是把OCCTDocumentation6.1.0.rar 解压一下)就可以进行下一个环节了。安装完成后,你可以看看 Open CASCADE 为你提供的示例(如图 1) ,在我的课题中主要的内容就是在 OCAF 为基础上进行形体的拓扑运算(布尔运算) ,至于三视图嘛,本来是应该采用 HLR(Hidden Line Removal)消隐线技术来实现的,后来发现需要在二维界面上进行建模,需要重新建立一个二维的建模体系,太麻烦了,因此就在三维体系上做了一个视角的改动,变向的实现了三视图的生成,这种方法明显不如 HLR 生成三视图功能强

25、大,但还凑合吧。我的课题就是在 OCAF 的基础上做出来的,因此首先建议看看 OCAF的实例。在运行实例程序的时候,会有一个 New Document 对话框,这里面的程序是该实例的核心程序,而且会随着你的操作而实时更新内容,很好很强大,好好研究一下吧。然后你可以看一下 AIS(Application Interactive Services)相关的程序,AIS 很重要,它提供了模型的视图控制功能,比如说选取模型、视角控制、隐藏模型、显示模型等等。其他的实例我没怎么用到,所以这里就不多说了。图 3-13 3 运行示例时的调试这个课题已经做过两年多了,现在我已经转行做电气,无论做电气改造还是做程

26、序,调试都是最重要的一个环节。不管你在运行实例程序,还是调试自己的程序时,由于每个人硬件不尽相同、操作系统不同、安装的驱动软件不同等等各种原因,会出现各种各样的错误,而分析错误原因、解决问题的过程就是调试过程。我不可能把每个出现的问题说清它的来龙去脉,只能把我在做课题时遇到的一些问题摆出来,讲一讲我是怎么分析、解决它们的。在安装 Open CASCADE 时,已经把示例程序的 EXE 文件拷贝到“安装目录OpenCASCADE6.1.0samplesstandardmfcrelease”下,可以直接运行它们就可以了。下面是我遇到的两个错误和相关的解决方法:第一个错误:示例程序无法运行,报错“D

27、fBrowser.dll 没找到” ,解决方法:先从电脑中搜出 DfBrowser.dll,把该文件放到 windows/system32 下。第二个错误:在“安装目录OpenCASCADE6.1.0samplesstandardmfc”里,有 15个实例的源程序。调试这些程序的时候,报错缺少 mfcsample.lib 头文件。解决方法:见第 5 章第 3 节。第 4 章 关于我的论文对于写东西来说,我是很头疼的,没办法,没小就没这个天分。如果要我自己给我的毕业论文打分的话,我只能打 60 分了,我并没有把我使用 Open CASCADE 的经验完全从论文中体现出来,这也正是我写这篇文章的原

28、因,不管从哪个角度来说我都应该把这件事做的尽可能完整些。最后我还会给出我的程序的源码,供大家参考。下面对我这篇篇论文再做一些说明。前三章大家就没有必要看了,那些是只是又臭又长又无用的陈述。第 4 章在这看来是篇篇论文里写的最让我满意的一章了,前两节是从资料里摘抄下来的关于 OCAF(Open CASCADE Application Framework)的功能介绍,是必看的;第三节是基于 OCAF 制作一个应用框架的过程。简单的说,MFC 是 VC+提供的一个应用程序框架,而 OCAF 又是Open CASCADE 在 MFC 基础上的一个应用程序框架,关于 MFC 的工作流程,你可以看一下孙鑫

29、老师的教程,有一课专门讲到了,很详细。那么 OCAF 是怎样的一个工作流程呢?他其实就是在 MFC 的特定类中加入一些代码,过程是:先通过设备类建立一个应用程序类,用来管理文档、视图等;再建立文档类,用来保存各种相关属性参数;然后建立视图类,用来控制怎样显示模型。刚才又看了一遍第四章,觉得没什么需要多说的,如果你具备了一定的 VC+编程能力,你应该可以看的懂这一章,当然由于篇幅的原因,有一些可能介绍的简单一点,但是你可以翻看一下帮助文档,里面有一篇是讲 OCAF 的,很详细。结合那篇文章,按照论文中介绍的方法就可以做出一个自己的三维造型框架来。当然,如果你想熟练运用 Open CASCADE

30、来建模、布尔运算、视图的生成等等,那需要多花点心思把这个应用框架完全搞明白,了解这个框架能实现什么功能、通过那些类库来实现、各种类和类之间的关系及每个类的具体功能、操作方法等。第 5 章写的很不太好,可能有很多人看不懂,这也难怪,其实当时我自己都是晕的。但是,这一章的内容却是最重要的,因为课题所要实现的功能都是在这一章完成的,我认为,如果你决定使用 Open CASCADE 来做你自己的程序,那么就要求你必须具备能够熟练运用 OCAF 来进行建模、各种视图操作等的能力。而第 5 章最主要的目的也正是介绍这一部分的内容,由于当时比较懒,也是水平所限,所以介绍的很简单,很惭愧。说一下第5 章内容吧

31、,前两节不用看,在第三节里,对建模过程得有个比较详细的介绍,可以看一下建模的流程,对你建模能力的提高有帮助,也可以在 OCAF 文档中找到相关的建模实例,多实践一下就 OK 了。布尔操作的介绍相对简单,当时懒了,所以没多写,其实也是没得写,因为那一部分我也是一团雾水的。三视图部分我居然漏写了,有些不应该,我会在后面的部分补上的(见第 6 章第 3 节 5) 。其实,写这篇文章最主要的目的就是想把这一章内容充实一下,最近我又写了一个新的程序,我会结合这个程序对建模、视图操作及布尔运算做一个比论文内容更加详细的说明和总结。第 6 章是泛泛写的,对程序进行一个大体的介绍,然后贴几张图片,秀一下成果,

32、其实这一章没有参考价值,只是不得不写罢了。对于整篇论文,1、2、3 章和第 6 章都没有参考价值,大家不用去浪费时间看。第 4章和第 5 章第三节很有参考价值,但是限于论文写作要求、格式、篇幅等原因,没有把这一部分写的很充实,有很多话想写都没有形成文字。而且最最重要的是,论文里又不能粘贴整个程序,而最具有参考价值的是正是程序本身,因此这次我会把程序源码放到网上供有兴趣的参考。写了这么多很大一部分是为了把自己对 Open CASCADE 的理解变成文字写给我自己看的,给大家的只是程序源码而已。最后,感谢我的父母、哥哥、老师、我爱的人和爱我的人、众多哥们、朋友和每一个认识或不认识的人。我真心的感谢

33、他们!(论文的致谢都是在结尾处写的,习惯性的写个总结性致谢) 。第 5 章 Getting Started好了,上文中,我对“Open CASCADE 的功能” 、 “需要的准备工作”及“我的论文”做了一个简单的介绍。下面就开始说一下帮助文档的分类及使用方法、MS 调试方法和Open CASCADE 的结构。5 1、帮助文档有两套帮助文档。第一套帮助:你安装 Open CASCADE 完成后,单击“开始菜单”里“introduction”网页,进入的是 Open CASCAD 的第一个帮助系统,他的作用是对 Open CASCAD 做一个详细的帮助说明,内容包括他的功能、包含的模块、各模块的作

34、用、扩展工具等。第二套帮助:你下载的 OCCTDocumentation6.1.0 帮助文档,解压后就可以打开index.htm 看了,他的作用是对每一个类的属性、方法、从属于哪个文件等等进行介绍,举个例子来说,你要用到 BRepAlgoAPI_Cut 类(他是用来对两个模型进行减布尔操作的类)但你不会使用他,怎么从 OCCTDocumentation6.1.0 里找出他来?首先,你应该知道他是属于哪个模块的,从表中,我们可以看出,他是属于建模运算类的,那么在帮助网页首页上,单击 ModelingAlgorithms 再单击 Class Hierarchy,然后 CTRL+F 搜一下就 OK

35、了。这两套帮助文档的使用是你做程序时必需的。5 2、第一套帮助文档内容及我的补充说明521 第一套帮助文档“开始菜单”打开 Open CASCADE 的帮助首页(如图 2) ,分为三部分,分别是 Open CASCADE 的总体简介、技术概括和一些扩展性工具。总体简介简单看一下就可以了,主要内容就是怎么安装、需要的软硬件支持、如何开始使用 Open CASCADE、环境变量的注册等问题,不多说了;最为重要的内容是技术概括,应该对这一部分内容熟悉到无以复加,因为你对这一部分的了解程序直接决定着你运用Open CASCADE 的熟练程度,下段专门说一下;在这七种扩展性工具中,我使用了OCAF Br

36、owser 和 Wizards/OCAF Wizard 这两样工具,使用方法很简单,在论文里和程序里都能找到相关的应用,就不多说了。图 5-1522 技术概括很想把这一部分翻译过来,因为这一部分即使是中文也会有很多人看不明白,它是整个 Open CASCADE 的核心部分,怎么熟练的应用这六大类是你做程序是否能顺利进行的关键。翻译技术概括的首页内容如下:/*紫罗兰为译文, 蓝色为本人注释Open CASCADE 对象库是一个面向对象的 C+类库,它是为尖端的某些领域所设计应用的快速制作而设计的。使用 Open CASCADE 开发的典型应用程序能够在通用或具体的CAD 系统、制造或分析应用、模

37、拟应用或图例工具中处理二维或三维几何建模问题。Open CASCADE 对象库可以帮助你快捷的开发你的应用程序。-Open CASCADE 其实就是一个类库,分成六大模块,每个模块里有 N 多功能类似的类包,每个包里有 N 多功能类似的类。开发的时候,利用编程工具(本文使用 VC+6.0)使用这些类来进行程序设计。 Open CASCADE 提供了一个 RAD (Rapid Application Development 快速开发工具)框架环境,其实这个 RAD 就是 OCAF( Open CASCADE Application Framework) ,用户可以在 OCAF下快速的开发自己的应

38、用程序。对象库提供以下功能:2D 和 3D 几何建模工具包让你可以对任何类型的对象进行建模创建基本体,如棱柱、圆柱、圆锥和圆环面布尔操作(加、减和交集)倒角、倒圆角和草图操作平移、抽壳、打孔和扫掠建模计算属性,如表面面积、体积、重心和曲率进行投影、插补和近似操作(插补和近似是优化设计里的内容)可视化模块让你可以管理模型的显示和操作视图的显示例子包括:3D 旋转缩放控制阴影应用程序框架特征把非几何应用数据和几何体关联起来模型的参数化Java 应用程序平台(JAD) ,一个用于创建用户图形接口的框架CASCADE 模型和三维模型标准化格式之间的数据转换接口-功能很强,越强的东西内容越多,越复杂。O

39、pen CASCADE 对象库是基于 CAS.CADE 技术构建的,由 Open CASCADE 出品。他们是实现了模块化和可扩展性设计。就其本身而言,这些类库分为三类:定义数据结构(几何建模,显示和图形选择) 、复杂几何运算、提供应用程序接口。相关的类被打包进一个包内以防类名冲突;C+类名都是以包名为前缀的。例如,所有定义 3D 几何体的类都在 Geompackage 包内。在这个 Geompackage 包内,用于生成Bezier surfaces(贝赛尔曲面)的类就被命名为 Geom_BezierSurface。这些包又被归档入不同的类库内。最后,这些类库又被分成了六个模块(基类、建模数

40、据类、建模运算类、可视化类、数据转换类和应用框架类) 。这些类库模块及其内容如下表 5-1,图 5-2基类 建模数据类 建模运算类 可视化类 数据转换类 应用框架内核类数学工具二维几何体三维几何体几何体工具拓扑基本体构造布尔操作倒角圆角偏移草图缝补扫掠特征消除隐藏线几何工具拓扑工具二维三维通用体系二维可视化体系三维可视化体系IGESSTEP AP203 AP214扩展数据 exchange (XDE)数据框架数据存储应用界面表 5-1*/图 5-2这六大模块我结合我做的程序说一下,一方面简单说一下这些模块的作用,另一方面有例子讲起来应该更生动些。这也有一个缺点,我不可能讲的很全面,能力所限,我

41、理解多少就说多少吧。第一、 基类具体的文档内容我就不翻译了,基类,顾名思义,最基本的类,哪些是最基本的类呢?c语言里都如果你想申明一个整数变量,只要写“int i ;” 就行了,而在如果使用Open CASCADE做程序,你申明一个整数变量,则应该写成“Standard_Integer i” , Standard_Integer类就是一个基类,明白了吧,其实这种类型的基类的作用就是为了申明bool、整数、浮点数等基本数据类型。再举个例子, gp类包里的gp_Pnt 类,这个基类是给一个空间点设计了一个数据结构,用于保存该点,看看他的构造函数gp_Pnt (const Standard_Real

42、 Xp, const Standard_Real Yp, const Standard_Real Zp),他用笛卡尔坐标系(Xp,Yp,Zp)创建一个点。而这些基类在程序中会经常使用到。第二、 建模数据类作用是为 2D、3D、几何工具和拓扑结构定义数据结构。我做的课题中,没有使用 2D或 3D 的建模数据类,使用的是 拓扑结构类,即使用了 TopoDS 类,TopoDS 类是用来构建拓扑的数据结构,我的三维模型都是用 TopoDS_Shape 类保存的。这里为什么不使用 3D类呢,我的分析:使用 TopoDS_Shape 类主要是为方便 OCAF 框架的使用,在Modeling Data 的

43、PDF 文档中,第 5 章 Topology 的第一句话 “Open CASCADE Topology allows us to access and manipulate data of objects without dealing with their 2D or 3D representations.”,没有 3D 的建模数据类,也可以访问和操作模型数据,说白了,即使不用3D 建模类建立模型也可以使用 TopoDS_Shape 类使用 3D 模型。而且,最为重要的一点,TopoDS_Shape 类这种拓扑类提供了图形拓扑功能。拓扑是什么意思,它在图形学里有什么作用?自己网上查。第三、

44、建模运算类本课题布尔操作功能的实现就是利用该模块的布尔运算类完成的,例如布尔运算里的减运算就是使用 BRepAlgoAPI_Cut 类来完成的,具体编程在下文里讲。这里需要提一下的是三视图的生成方法,也就是工程图的生成方法,作为二维图纸的工程图拥有广泛的使用群体,在每个三维造型软件中都会有工程图模块来制作或生成三维模型相对应的工程图。本课题的生成的三视图并不是二维视图,只是三维形体的固定视角罢了,因此并不能算是真正意义的工程图。真正的工程图是通过二维模块生成的,而实现工程图最重要的技术是消隐技术,消隐技术的内容我不做过多介绍,在 Open CASCADE 中,消隐技术的支持模块就是 Hidde

45、n Line Removal 相关类库。在 mfc 的示例中,也有相关的源码,有兴趣的拿相关的示例进行参考。第四、 可视化类前面三大模块的作用是解决了定义构建什么样的模型、怎么构建模型、模型的数据结构(即怎么存放模型)这三大问题。而可视化类解决了另一个大问题:怎么建立模型的视觉环境(包括二维环境和三维环境两大部分) 。可视化类解决了视觉方面的所有问题,主要分三个方面,模型的显示和选取、graphical presentation(数据结构的图形描述?翻译不出来了)和 AIS(Application Interactive Services 应用程序的交互服务,它是联系着数据结构和交互模型之间的

46、关系) 。零碎问题包括视觉角度、观察环境设置、亮度、模型的材质、模型的选取、以哪种方式观察模型(网格还是实体) 、透明度等等。第五、 数据转换类模型的数据接口作用是允许不同 CAD 系统互相利用对方的模型,从以前的 IGES 标准到现今的 STEP 标准,模型的数据接口已经发展了很多年。在课题中,也提供了一个接口来实现数据转换功能,就是打开不同标准的三维模型文件,同时也能保存不同标准的三维模型文件。第六、应用框架应用框架为用户提供一个快速开发环境,让用户可以快速开发自己的应用程序。论文的第 4 章主要是讲应用框架的,可以参考一下,这里就不多介绍了。对于应用框架,一定要熟悉 OCAF 的作用、原

47、理和使用方法。OCAF 的作用和原理是使用方法的理论基础,使用方法是实践手段,理论+实践才能得到好的效果。论文里简单描述了 OCAF 的作用、原理和建立基于 OCAF 的 MFC 单文档应用程序框架的过程。关于OCAF 的作用和原理部分如果有不懂的地方最好看一下帮助文档的 ocaf.pdf 文档,而建立基于 OCAF 的 MFC 单文档应用程序框架的过程,在这里我总结性的说一下流程,具体细节见程序和下文。建立基于 OCAF 的 MFC 单文档应用程序框架的过程是本论文中最主要的工作之一。首先,谈一下 MFC 应用程序框架,孙鑫老师在 VC+的教程里讲过 MFC 的运行机制,大体就是先生成应用程

48、序类(管理整个程序的运行) ,再生成文档类(保存相关参数) 、框架类(总体视图) 、视图类,然后把后它们的关系设置一下,形成一个多文档或单文档的应用程序。VC+的用户要做的工作就是修改这个应用程序来实现其想要实现的功能。这里要强调一下,MFC 绝不是一句话两句话能说明道清的,它是 VC+的核心技术之一,如果想要顺利的完成基于 MFC 的开发任务,必须对 MFC 的运行机制、使用方法有一个清楚的了解,这个需要自己多看书多练了。OCAF 应用程序框架就是基于 MFC 来开发的,它的运行机制和 MFC 的类似,首先生成一个应用程序类,再创建一个交互环境和三维视图器,生成文档类、视图类。这一过程虽然和

49、 MFC 的生成过程类似,但是复杂程度却不可同日而语,因为 OCAF 是在 MFC 基础上建立起来的,OCAF 只需要在 MFC 应用程序中的特定位置加入特定的代码就可以完成 OCAF 应用程序框架的建立。在论文里已经写过它的建立过程,在这里只是补充说明几个问题。1、利用 OCAF 向导生成的 OCAF 框架是 MFC 多文档应用程序框架,我们可以通过研究该向导生成的程序来得出 OCAF 框架的基本组成和运行原理,而后再按照此原理在对 MFC 单文档应用程序添加代码就可以得到基于 OCAF 的 MFC 单文档应用程序框架;2、论文中的 OCAF 应用程序框架是通用的,如果你不使用 VC+进行编程而使用其它编程工具,可以按此方法进行框架的建立(未验证) ;3、基于 OCAF 应用程序框架是此类程序开发的基础,框架建立起来后,开发人员只需要关心,建模、建模运算和可视化问题,不需要把精力放在底层接口的开发了。5 3、MS 调试方法我的程序会放在网上供大家参考,程序名是 MS(当初也不知道怎么会起这么个名字,随手起的) ,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报