Open CASCADE學習筆記 下載本文

前言

很久就想這篇東西,可一直懶于動腦且為一些俗事煩惱,所以才拖到現在才動筆把我上學期間一篇論文整理一下,僅供參考。我分成幾段來寫,如果想看懂這篇文章,那首先要了解每段之前的關鍵詞,不懂的可以在網上搜一下。然后還有看這篇文章的時候希望你能按自己的需要來看,有很多是寫給自己看的,你只挑自己有用的看就行了,省得到時候埋怨我浪費你寶貴的時間,我這人寫東西不行,盡量寫的有條理,盡量吧。

第1章 意義,它是三維造型軟件的內核、基礎。

關鍵詞:三維造型軟件、虛擬現實技術、仿真技術、OpenGL、幾何內核系統、布爾操作

首先,做什么事情都要有意義,因此我先說明一下Open CASCADE到底是個什么類型的工具,使用這個工具是否對你將要完成的目標有幫助。如果有幫助,那么你可以繼續往下看它的具體用法;如果沒有,那么你就應該按照你的目標繼續尋找實現目標的手段,不用把時間浪費在這篇文章上;如果你清楚了Open CASCADE的這一工具是干什么用的就可以跳過意義直接看下一章。

我先說一下我對這個工具的理解,然后會貼一些網上對這個工具的說明。Open CASCADE是一款三維造型軟件的內核系統,也就是制作三維造型軟件的工具。

那何為三維造型軟件呢?其實市面上已經有很多這樣的軟件了,比如說PRO/E、UE、Solid Edge、Catia、國內還自主研發的金銀花系統(好象叫這個名字)以上這些大多都是用于工業上的,3DMAX、VRML(這里要說明一下VRML其實是一款適合網絡的三維造型語言,應屬語言系列,和HTML語言類似,不太附和三維造型軟件的標準)也是三維造型軟件,當然還有很多很多這種類型的軟件,就不做過多介紹。三維造型軟件,可以在電腦上如實地(尺寸、顏色、材質等)搭建起一個虛擬的模型,這些模型可以用于工業設計、藝術設計、裝修設計等等等一系列的虛擬現實技術相關的行業,也可以用來做一些仿真實驗的模型

構建。可能有很多人都已經用過一款或兩款三維造型軟件,但是你在用的時候想沒想過三維造型軟件是怎么做出來的呢?它的底層是由什么支持的?它是由兩部分支持的,一是硬件支持,如顯卡,這個我們不討論;二是軟件,作為軟件,我猜想(注意是我猜的,如有疑問請查實)它也是可以分成兩個部分,一是硬件驅動的標準體系(請關注OpenGL),二就是幾何內核系統。硬件支持和硬件驅動標準都不是本篇要討論的內容,這里重點介紹的是幾何內核系統。

如果你的目標只是構建一個三維模型用來做仿真實驗或做一個虛擬現實環境,那么你可以選用三維造型軟件來完成。現在已有的三維造型軟件發展的已經很好了(我當年用的第一款是Solid Edge7.0,看看現在它的最新版本號吧,餓的神啊),不僅品種多,而且相當人性化,你想到了它也想到了,你沒想到的它也想到了(注意這句話),恩,很好用。這里我建議,如果你能使用現有的三維造型軟件完成你的工作任務,請盡量使用它們,原因有三:第一、站在巨人臂膀上能看的更遠;第二、使用幾何內核系統開發出來的三維造型軟件這一過程是相當艱辛的,且不一定能有什么好的結果;第三、你真的確定三維造型軟件不能完成你的工作目標嗎?舉個例子,Pro/E里有N多模塊可供使用,你平常使用的可能只是零件、裝配、工程圖、板金、管道、電氣模塊這幾個常用的,有些模塊你可能從來就沒見到過,但是你應該看看幫助或在網上查一下是否能用上其他的模塊,如果能用上,那真要恭喜你了;還有,可以用一些編程工具,如VB、VC之類的開發Pro/E的模塊,我沒試過,只是聽說來的。

什么是幾何內核系統?它是制作三維造型軟件的工具,三維造型軟件都是在幾何內核系統的基礎上制作完成的,因此一款幾何內核系統的好壞直接決定著三維造型軟件的優劣。

那么我為什么要選擇使用Open CASCADE?我的專業是機械設計,現在實驗室里我們專業都在搞虛擬現實之類的項目,比如說VRML與MATLAB結合繪制地圖、OpenGL碰撞檢測、虛擬裝配(我哥們做的,和我基本類似,但由于一些原因他沒做完)、虛擬造型(這就是我的活)、機械人仿真(UG造型、用一個仿真軟件做的仿真,名字忘了),說說我的吧,要求是做一個課件(很郁悶,畢業設計竟然是做課件),但還不能說做課件,因為這種東西是畢不了業的,課件的要求是在一個虛擬的環境下,構建各種模型、對這些模型進行必要的布爾操作及顯示模型的三視圖。問題來了,解決吧。三個要求,一是建模;二是布爾操作;三是三視圖的制作。

為了完成課題,我嘗試了兩種工具,VRML和Pro/E建模。

第一,先說VRML。導師一開始想讓我用VRML來做課題,一開始我也不懂就用了,簡單說一下VRML吧(從網上的摘了一篇關于VRML的,見附錄1-《什么是VRML》),VRML(Virtual Reality Modeling Language)即虛擬現實建模語言。是一種用于建立真實世界的場景模型或人們虛構的三維世界的場景建模語言,也具有平臺無關性。是目前Internet上基于 WWW的三維互動網站制作的主流語言。見過網頁上很炫的FLASH嗎?簡單的說,VRML就是三維的FLASH,是FLASH的升級版(3D版),它就是為了網絡的虛擬現實化而生的,與FLASH不同的是,它是一種標準化語言,你可以很方便的制作出一個虛擬的世界。

為什么不用VRML做課題?

VRML的優點:簡單易用;缺點:不靈活。它就不適合建模,太麻煩,需要依靠其他的三維造型軟件來完成。要它實現布爾操作想都別想,三視圖更別提了,手畫比它要簡單些。所以課題不能用VRML來完成,不過到用VRML做了兩個小玩意,一個是虛擬裝配(有點意思),二是VRML與MATLAB畫相貫線(這個寫了論文,很扯淡)。

第二個是Pro/E建模。Pro/E就不用我多說了,有很多工科專業都會用到這個軟件,建模方面很強大。我當時學Pro/E的時候還是瀑布式菜單,一開始挺挺別扭的,現在用的還挺習慣。現在Pro/E野火版中大部分的命令都改成了更為人接受的工具條式命令,算是個不小的改進了,但還保留了很多當年瀑布式菜單的影子,用來做留念還是技術水平達不到就不得而知了。以前給教研室里的老師們上過Pro/E的課,雖然講課時都把我導師講的睡著了,但是Pro/E我是學的比較精通了,每個命令都仔細研究了下,但實際應用就差很多,畢竟光是上課,又不做什么項目,沒得到什么實戰鍛煉。

為什么不用Pro/E做課題?

不選Pro/E做課題的最主要原因就是:因為Pro/E太強大了,強大到當時我實在想不出怎么用它來進行我的畢業設計,我總不能答辯的時候打開Pro/E去給那幾個老師演示一下Pro/E建模吧,那樣我3007年也畢不了業了。其實這只是當時的想法,現在想起來,有一點我沒有想到,那就是Pro/E的模塊開發,做一個模塊來實現我需要的功能就行了,我看到過

關于Pro/E模塊開發的文章,可惜睌了,我不會有機會再做這個實驗了,我也不想有。

題外話------

不經意的時候會思考一些問題,讀研的時候到底學到了什么,那人生中的三年到底有沒有意義,如果有機會再做選擇的話還會選擇那條路嗎?在這里我想說一下,在讀研的三年里,學到最重要的東西不是知識,也不是方法,而是意義。意義也可以理解成“方向”、“目標”、“理想”等等等等,雖然這些都是抽象的看上去遙不可及的,但它們就在每個人的心中,它們是每個人的精神支柱,一個人沒有了支撐就失去了作為一個人的意義,成了一具行尸走肉。現在我才發現,原來我的精力實在有限,無法實現的理想太多,但我還是會努力去實現每一個對我來說很重要的事情,這樣才有意義。每個人都有自己珍惜的意義,去努力珍惜吧。如果沒有意義,就不要做這件事。意義是抽象的,但方法就顯得具體許多了,但當今社會方法也是海量了,只一句----適合自己的方法才是最好的方法,自己能接受、對自己有益的方法才是正確的方法。連方法都是海量的,更何況知識?知識早就爆炸了,用有限的精力調控好意義、方法和知識的關系,這就是我在讀研期間最大的收獲。

言歸正傳,VRML和Pro/E這兩個工具都是十分優秀的三維造型工具,只是各自的用途不同,一個用于網絡虛擬環境建立,另一個是用于專業建模。在我的課題里找不到它們的位置,所以我找到了第三種武器---Open CASCADE。

最后,我說一下為什么選擇Open CASCADE。第一、Open CASCADE的建模能力可以達到非常專業的水平,這一點比VRML強很多;第二、Open CASCADE可以輕松完成模型之間的布爾運算;第三、Open CASCADE提供了很多類用來完成繪制三視圖。其實這三點都是廢話,說了等于沒說。最重要的問題是:它為什么能有如此強大的功能呢,為什么有這么強大的功能但是大部分人卻從未聽說過它的大名呢?這一切的答案都是因為--------Open CASCADE是一款幾何內核工具。簡單說一下幾何內核和三維造型軟件的關系,Pro/E、Solid Edge的幾何內核是Parasolid,這個內核在在市場上是找不到的,屬于Pro/E公司內部的使用工具;金銀花的幾何內核的是ACIS,這個內核是可以買到的。打比方說,Parasolid是Pro/E的父親,而Open CASCADE就應該算是Parasolid的兄弟了,Pro/E碰到Open CASCADE是要磕頭的。使用Pro/E的用戶未必知道Parasolid是什么東西,他們也用不著知道,只要會用Pro/E完成BOSS交待的任務就OK了,因此作為底層開發工具的Parasolid、ACIS和Open

CASCADE不為人所知也就不足為怪了。

“所有的三維造型軟件都是基于幾何內核來開發的。”

既然有三種幾何內核工具可選,那么我為什么選Open CASCADE,是不是因為Open CASCADE是最強大的?當然不是,恰恰相反,因為Open CASCADE是免費的,在網上可以隨便下載,Parasolid買都買不著,ACIS要花錢買,誰給我錢?唉,沒辦法呀,沒米下粥只能喝水充饑了。在這里,我建議如果有能力的話還是購買ACIS來做你的程序,雖然我沒用過ACIS,但總覺得花錢買的應該更健康些。還有,Open CASCADE也不是完全免費的,你如果使用它,遇到不明白的問題無法自己解決的時候,咨詢是要花錢的,你如果想做一個很完美的程序就一定會有問題要問的,我就碰到了一個棘手的問題,但是我沒問,嘿嘿,其實我是出來混的,后面會寫我遇到的問題。

第2章 使用Open CASCADE的前提條件

2.1、英語

關鍵詞:匈牙利命名法、CDL

從小到大一直傻乎乎的學英語,也沒人跟我說為什么學、以后能用上不,讀研三年,工作兩年,現在我可以負責任的對大家說,英語很有用,真TM有用。且不說從初中到大學要經歷無數場英語考試,光說在學校期間和工作中的用途。在學校做課題時你就會發現,先進的技術都TM是國外的,而國外的資料都TM是英語的,當然也偶爾有中文的,那僅限于比較熱門的技術文檔,中等溫度或冷門的資料你就看吧,一路鳥語花香的。工作中,我是做電氣的,對單片機熱過一陣,很多數字產品的使用說明都是英語,偶爾也有中文翻譯,但你還要小心,有些中文翻譯你還不能全信,因為有時候它們會翻譯錯,我想是因為外行翻譯的吧,唉,英語很重要。

Open CASCADE資料是全英文的,有些是你必須看的,所以英語不好你是要頭疼的。我的論文里的有很多內容是把這些資料翻譯過來的,挑出比較精髓的部分整理歸類貼進了論文里,其實我看了很多資料才選出這些,有很多細節的部分是無法寫進論文里的。舉個例子來說,論文里用到的OCAF框架,這有一篇資料專門介紹OCAF的用法,寫的很詳細,有理論有實例,這篇文章是必看的。當然還有很多資料需要看,這里就不詳細說了。





黑龙江22选5兑奖期限