OCC開源框架學習分享課件_第1頁
OCC開源框架學習分享課件_第2頁
OCC開源框架學習分享課件_第3頁
OCC開源框架學習分享課件_第4頁
OCC開源框架學習分享課件_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

OCC的一些分享OCC開源框架學習分享目錄研究方法總體描述OCC與MFC框架OCC的基礎數(shù)據(jù)OCC的顯示OCC與SmartElectrical數(shù)據(jù)的設計OCC開源框架學習分享1.研究方法(重點研究2D)1.閱讀ppt英文文檔,不清楚的地方再參考OCCT幫助文檔。(達到對occ有個大致了解的目的)2.重新建立一個OCC工程,在視圖窗口中畫一個死的基本元素。(能處理各種編譯問題,了解occ架構和基本運行原理)3.在此基礎上,參考occtry,OCAF的例子,完成對視圖中對象的動態(tài)繪制及交互處理。(對occ的整個操作模式有個基本的感受,基本入門)4.仔細研究OCAF,在OCAF上實現(xiàn)cad的一些基礎功能,包括繪圖,插入,移動,拷貝,回退,前進等操作。(達到可以進行SmartElectrical開發(fā)的要求)OCC開源框架學習分享2.總體描述選取occ作為底層框架的原因:1.基于C++2.易于實現(xiàn)CAD技術框架,2D,3D擴展性3.支持windows,android,mac4.發(fā)展多年,較為成熟,功能完善5.EPLAN等商業(yè)軟件也采用OCCOCC開源框架學習分享2.總體描述OCC開源框架學習分享2.總體描述FoundationClasses(基本類)1.基本的類型,變量,特殊字符串等定義,比如Standard_Integer2.自動內(nèi)存管理(handle管理機制)3.對象集合的管理4.基本的數(shù)學對象和運算定義,包括矢量,矩陣運算5.內(nèi)存對象的ACSII碼存儲?????知識零散,前3條必須掌握OCC開源框架學習分享2.總體描述ModelingData(數(shù)據(jù)類)1.建立2D,3D幾何對象2.各種幾何對象建立工具3.建立3D(2D)的TOPO對象重點:必須熟練運用OCC開源框架學習分享2.總體描述ModelingAlgorithms(幾何計算類)各種幾何計算工具,包括插值,曲面計算等等,,,,暫時可不研究OCC開源框架學習分享2.總體描述MESS(3D網(wǎng)格呈現(xiàn))主要用于3D實體網(wǎng)格化顯示,包括各種工具和方法暫時可不研究OCC開源框架學習分享2.總體描述Visualization(圖形顯示和交互)InteractiveContext及AIS對象,最重要的顯示及交互的環(huán)境,所有的顯示和交互由它來完成。InteractiveObjects,即交互實體,只有交互實體才能在交互環(huán)境中顯示。GraphicAttributesManager,用來設置交互實體的圖形屬性。SelectionFilters,對用戶希望的選擇進行設置。重點:熟練掌握OCC開源框架學習分享2.總體描述DataExchange(數(shù)據(jù)交互)STEP等標準的數(shù)據(jù)結構。(免費)DXF等標準的數(shù)據(jù)結構。(擴展,收費)稍后研究OCC開源框架學習分享2.總體描述OCAF(應用程序框架)結合mfc,App,doc,view的建立。主要工作在doc和view上,doc建立數(shù)據(jù),view完成交互。其他一些功能,拷貝,黏貼,回退,前進,外部數(shù)據(jù)交換,文檔保存等。逐步仔細研究OCC開源框架學習分享3.OCC與MFC框架它是OCAF在MFC上的實現(xiàn)CDocument->OCC_BaseDoc->OCC_2dDocCview->OCC_BaseView->OCC_2dViewpDocTemplateForView2d=newCMultiDocTemplate(IDR_2DTYPE,RUNTIME_CLASS(CMy2dDoc),RUNTIME_CLASS(CMyFrame2D),//customMDIchildframeRUNTIME_CLASS(CMyView2D));OCC開源框架學習分享3.OCC與MFC框架它是OCAF在MFC上的實現(xiàn)CWinApp->OCC_App->MyAppCDocument->OCC_BaseDoc->OCC_2dDoc->My2dDocCview->OCC_BaseView->OCC_2dView->My2dViewpDocTemplateForView2d=newCMultiDocTemplate(IDR_2DTYPE,RUNTIME_CLASS(My2dDoc),RUNTIME_CLASS(MyFrame2D),//customMDIchildframeRUNTIME_CLASS(MyView2D));OCC開源框架學習分享3.OCC與MFC框架視圖初始化過程1.在app構造函數(shù)中得到opengl連接句柄。2.在doc的構造函數(shù)中,用opengl連接創(chuàng)建viewer(僅創(chuàng)建視圖指針,而非視圖窗口),并作初始化設置。同時通過viewer再得到AISContext交互環(huán)境句柄。3.在view的OnInitialUpdate()中,創(chuàng)建窗口(window),完成顯示設置。OCC開源框架學習分享主要功能1.Doc完成圖形數(shù)據(jù)的構建,圖形數(shù)據(jù)的處理(移動,拷貝等)。視圖自動更新。2.View接收事件的消息,并調(diào)用doc中的方法來完成響應。3.OCC與MFC框架OCC開源框架學習分享學習方法仔細讀例子代碼,理清邏輯關系。3.OCC與MFC框架OCC開源框架學習分享4.OCC基礎數(shù)據(jù)一個圖形數(shù)據(jù)(component)分為以下三部分,并分在不同的package和class下面:Abstaction:圖形的數(shù)據(jù)抽象(極簡)Control:圖形的各種創(chuàng)建方法Presetation:圖形的顯示OCC開源框架學習分享4.OCC基礎數(shù)據(jù)1.Abstraction主要分兩類Basic:gp,例如gp_Pnt,gp_Circle……Advance(句柄操作):Geom,Geom2d,例如Geom_Pnt,Geom2d_Pnt……OCC開源框架學習分享4.OCC基礎數(shù)據(jù)2.ControlOCC開源框架學習分享4.OCC基礎數(shù)據(jù)3.PresentationOCC開源框架學習分享5.OCC的顯示幾何基本元素AIS_Interactive_ObjectAISContext->Display()圖形數(shù)據(jù)到顯示,調(diào)用過程如下:圖形Topo結構組合注意:只有AIS_Interactive_Object才可以添加到視圖中,其他幾何元素不行。OCC開源框架學習分享5.OCC的顯示ApplicationInteractiveServices(AIS)類用來管理視圖的顯示和選擇

可以在AIS_Context->display的方式往視圖添加AIS_Interactive_Object也可以AIS_Context->remove的方式從視圖刪除AIS_Interactive_ObjectOCC開源框架學習分享5.OCC的顯示ApplicationInteractiveServices(AIS)類用來管理視圖的顯示和選擇

顯示過程自動完成可以在AIS_Context->display的方式往視圖添加AIS_Interactive_Object也可以AIS_Context->remove的方式從視圖刪除AIS_Interactive_Object選中過程自動檢測可以在myAISContext->AddFilter(EdgeFilter)的方式設置選擇模式OCC開源框架學習分享5.OCC的顯示AIS_Interactive_Object分為三類:1.基本類(與幾何造型無關):AIS_Point,AIS_Axis,AIS_Line,AIS_Circle,AI

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論