機械電子工程畢業(yè)設計-基于proe二次開發(fā)的標準件庫_第1頁
已閱讀1頁,還剩81頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  本科畢業(yè)論文</b></p><p><b> ?。?0 屆)</b></p><p>  基于Pro/E二次開發(fā)的標準件庫</p><p><b>  誠信聲明</b></p><p>  本人鄭重聲明:本論文及其研究工作是本人在指導教師的指導

2、下獨立完成的,在完成論文時所利用的一切資料均已在參考文獻中列出。</p><p>  本人簽名: 年 月 日 </p><p>  基于Pro/E二次開發(fā)的標準件庫</p><p>  摘要:本文研究以Pro/E二次開發(fā)工具Pro/TOOLKIT和Visual Studio 2005設計開發(fā)一套包括彈簧、齒輪、軸承三

3、大類零件的通用零件庫系統(tǒng),實現了Pro/E環(huán)境下這三大類零件的快速參數化的自動建模。系統(tǒng)將通用零件庫分為三類,使用 Pro/E建模和關系式,建立各種通用件的參數化模型數據庫,編程調用數據庫文件和利用Pro/TOOLKIT提供的UI對話框存儲各種通用件的參數初始值,或用戶手動輸入參數來實現各通用件特征的自動建模。</p><p>  關鍵詞:零件庫,Pro/TOOLKIT,二次開發(fā),參數化設計</p>

4、<p>  General Parts Library’s Secondary Development Based on Pro/E</p><p>  Abstract:Based on Pro/E, this paper designs and develops a general parts library system including three categories of parts :

5、 springs, gears, bearings using the secondary development tool Pro/TOOLKIT and Visual Studio 2005 to achieving the three kinds of parts’ fast automatic modeling of parameterized in Pro/E environment . The system divides

6、general parts library into three categories, establish all kinds of interchangeable parts parameterized model database and programming calls to the databas</p><p>  Keywords: Parts library, Pro/TOOLKIT, Se

7、condary development, Parametric design</p><p><b>  目 錄</b></p><p><b>  1前 言1</b></p><p>  1.1常用標準件庫基本原理1</p><p>  1.2三維CAD技術2</p>&

8、lt;p>  1.2.1 CAD技術的發(fā)展主要階段2</p><p>  1.2.2 CAD 技術的發(fā)展趨勢3</p><p>  1.3零件庫的發(fā)展及其研究現狀4</p><p>  1.4二次開發(fā)的提出及主要研究內容6</p><p>  1.4.1二次開發(fā)背景及意義6</p><p>  1.4.

9、2主要研究內容7</p><p>  2開發(fā)環(huán)境及相關技術9</p><p>  2.1 CAD平臺的選取9</p><p>  2.1.1 Pro/Engineer軟件簡介9</p><p>  2.1.2開發(fā)平臺的選取9</p><p>  2.2 Pro/TOOLKIT二次開發(fā)基礎9</p>

10、;<p>  2.2.1 Pro/TOOLKIT簡介9</p><p>  2.2.2 Pro/TOOLKIT的安裝10</p><p>  3自定義菜單與用戶對話框設計12</p><p>  3.1 Pro/TOOLKIT開發(fā)過程12</p><p>  3.1.1安裝VS插件Pro/TK Tools12</

11、p><p>  3.1.2新建工程13</p><p>  3.1.3設置包含文件和庫文件14</p><p>  3.1.4 編寫注冊文件15</p><p>  3.1.5程序的運行與卸載16</p><p>  3.2自定義菜單常用函數19</p><p>  3.2.1菜單欄菜單的

12、添加20</p><p>  3.2.2菜單按鈕的添加21</p><p>  3.2.3下級菜單的添加23</p><p>  3.3自定義菜單設計24</p><p>  3.4 UI對話框基本知識25</p><p>  3.4.1資源文件及格式25</p><p>  3.4

13、.2主要函數介紹27</p><p>  3.4.3 UI對話框元件29</p><p>  3.4.4 UI對話框屬性及相關函數30</p><p>  3.5直齒輪UI對話框實例31</p><p>  4零件參數化建模39</p><p>  4.1漸開線的幾何分析39</p><

14、p>  4.2直齒圓柱齒輪的建模過程40</p><p>  5零件庫系統(tǒng)設計55</p><p>  5.1零件庫系統(tǒng)整體設計55</p><p>  5.2直齒輪的參數化自動建模的實現57</p><p>  5.2.1調出UI對話框57</p><p>  5.2.2控件編程60</p&g

15、t;<p>  5.2.3生成不同結構形式的直齒輪61</p><p>  5.2.4更新設置新參數65</p><p>  5.3實例演示67</p><p>  5.3.1零件庫使用方法68</p><p>  5.3.2部分零件展示70</p><p><b>  結 論74

16、</b></p><p><b>  參考文獻75</b></p><p><b>  致 謝76</b></p><p><b>  1前 言</b></p><p>  1.1常用標準件庫基本原理</p><p>  根據標準件的

17、相似性原理 ,確定能夠完整表示該系列標準件所有零件特征的復合零件 ,根據該復合零件可以派生出此系列標準件中的任一個零件。復合零件是在 pro/ E 環(huán)境下創(chuàng)建的三維零件模型 ,也稱之三維零件樣板。在三維零件樣板的基礎上確定一組設計參數來控制零件的形狀和拓撲關系 ,并建立零件族設計參數的系列尺寸 ;通過訊則不同的系列尺寸來自動生成零件的三維模型[1] ,從而實現常用標準件庫的創(chuàng)建。例如;直齒輪</p><p>  

18、創(chuàng)建參數化齒輪的過程相對復雜,其中涉及到許多與齒輪有關的參數以及關系式。</p><p><b> ?。?)創(chuàng)建基本圓</b></p><p>  用草繪曲線的方法,創(chuàng)建分度圓、基圓、齒頂圓、齒根圓這四個齒輪的基本圓,圓的大小用事先設置好的參數來控制。</p><p><b>  (2)創(chuàng)建漸開線</b></p>

19、;<p>  前面已經分析了漸開線方程的相關知識,這里用從方程來生成漸開線的方法,創(chuàng)建漸開線。</p><p><b> ?。?)鏡像漸開線</b></p><p>  在適當位置創(chuàng)建一個平面,然后該平面為參照,鏡像已經創(chuàng)建好的漸開線,并用關系式來控制鏡像平面的尺寸約束。</p><p><b> ?。?)拉伸形成實體&

20、lt;/b></p><p>  這是創(chuàng)建齒輪的關鍵步驟,以齒根圓和漸開線為參照,用拉伸的方法創(chuàng)建包括齒輪的齒根圓實體和齒輪的一個齒形實體。</p><p><b> ?。?)陣列輪齒</b></p><p>  將創(chuàng)建的齒形實體進行陣列,完成齒輪的基本外形。同時需要添加關系式來控制輪齒的生成個數。</p><p>

21、;<b> ?。?)創(chuàng)建其它特征</b></p><p>  創(chuàng)建齒輪的鍵槽、中間孔、腹板或輪輻孔等特征,并通過關系式來控制相關的尺寸。</p><p>  1.2三維CAD技術</p><p>  CAD是計算機輔助設計的簡稱,具體指通過計算機和圖形設備的使用,幫助設計人員完成設計工作。隨著計算機技術的廣泛普及、計算機性能的不斷提高以及智能化

22、信息處理技術的發(fā)展,CAD技術已經由傳統(tǒng)的二維技術發(fā)展成為三維技術,并朝著集成、開放、標準化的方向發(fā)展。CAD技術是新興的計算機應用技術,不僅能夠促進CAD軟件行業(yè)的發(fā)展,而且能夠促進機械設計行業(yè)的發(fā)展[1]。在某些特定的工程領域內,CAD技術從根本上改變了設計者的工作方式,在計算機技術領域內CAD技術本身也己經發(fā)展成為一個世界范圍的產業(yè)[2]。</p><p>  1.2.1 CAD技術的發(fā)展主要階段</

23、p><p>  1.20世紀50年代后期至70年代初期——線框造型技術。</p><p>  CAD技術開始于上世紀50年代后期,然后隨著計算機繪圖軟件技術的迅速發(fā)展開始開始得到進一步發(fā)展。此時主要是二維計算機繪圖技術的應用,即用傳統(tǒng)的三視圖表達出零件信息,以計算機繪圖代替手工繪圖,使設計者從手工繪圖的中解放出來。以二維繪圖為主要目的的CAD技術作為CAD技術的一個完整分支一直相對獨立地存在且

24、平穩(wěn)發(fā)展至今,主要的代表軟件如AutoCAD。</p><p>  2.20世紀70年代初期至80年代初期——曲面(表面)造型技術。</p><p>  貝賽爾算法的提出,使人們開始利用計算機處理曲線問題及曲面問題變成現實,此時的代表軟件為達索飛機公司推出的三維曲面造型軟件CATIA。這意味著CAD技術從二維到三維的躍升,實現了真正的用計算機表達零件的相關信息,同時也為CAM技術的開發(fā)提供

25、了堅實的基礎。</p><p>  3.20世紀80年代初期至80年代中期——實體造型技術。</p><p>  SDRC公司在1979年發(fā)布了世界上第一款真正基于實體造型技術的大型CAD/CAE軟件——I-DEAS。實體造型技術使設計工作發(fā)生了極大的變化,成為未來CAD技術的發(fā)展方向,被稱為第二次CAD技術革命。由于實體造型數據計算量非常龐大,超出了當時計算機硬件運算能力,使它的進一步發(fā)

26、展受到限制。</p><p>  4.20世紀80年代中期至90年代初期——參數化技術。</p><p>  上世紀80年代中期,人們提出了參數化實體造型技術,代表軟件為Pro/E。其特點是:基于特征、尺寸驅動設計修改、尺寸約束、全數據相關。隨著參數化技術的不斷成熟,它的優(yōu)勢得到了充分的體現,使之成為CAD發(fā)展歷程上的第三次技術革命。</p><p>  5.20世

27、紀90年代初期至今——變量化技術。</p><p>  SDRC分析了現有的各種造型技術,對它們各自的優(yōu)缺點進行對比后,以參數化技術為支撐,提出了變量化技術——一種更為先進的實體造型技術。變量化技術特點保持了參數化技術本身的優(yōu)勢之處,同時也克服了某些不足,成為了CAD技術發(fā)展的第四次革命。</p><p>  目前流行的CAD技術基礎理論主要是以PTC公司的Pro/E為代表的參數化造型理論

28、和以SDRC公司的I-DEAS為代表的變量化技術造型理論兩大流派,它們都屬于基于約束的實體造型技術[3]。CAD技術正在向著更為深廣的方向發(fā)展,主要表現為以下幾個方面:</p><p> ?。?)基于專家系統(tǒng)的智能CAD;</p><p> ?。?)CAD系統(tǒng)的集成化;</p><p> ?。?)動態(tài)三維造型技術;</p><p> ?。?)

29、基于并行工程,著力于制造的設計技術(DFM) ;</p><p>  (5)分布式網絡CAD系統(tǒng)[4]。</p><p>  1.2.2 CAD 技術的發(fā)展趨勢</p><p>  CAD 技術經歷了漫長的發(fā)展,各個階段都有其巨大的影響力,促進著制造業(yè)的飛速發(fā)展。從目前的發(fā)展趨勢來看,CAD 技術的主要方向應是面向集成化、智能化、標準化、網絡化發(fā)展。</p&g

30、t;<p><b>  (1)集成化</b></p><p>  CAD 技術是現代制造業(yè)的技術基礎之一,為提高產品設計質量和制造業(yè)的自動化程度,CAD系統(tǒng)必須集成化。它可以是不同系統(tǒng)之間的相互兼容、組合,也可以是同一系統(tǒng)內部模塊間的集成。工程設計領域不同類型的輔助設計軟件互相兼容,制定標準化、規(guī)范化的標準,在產品的整個生命周期內都支持集成系統(tǒng),才能保證CAD集成化的順利實現。

31、為了使CAD技術應用到產品設計的每個環(huán)節(jié)中,未來CAD軟件系統(tǒng)應該增強其開放性、加大模塊的可移植性和通用性、實現功能的互連性,達到進一步提高CAD系統(tǒng)的集成度目的。</p><p><b>  智能化</b></p><p>  借助人工智能技術,CAD系統(tǒng)將向智能化的方向發(fā)展,利用計算機模擬人的思維,實現真正的智能機械,其中數值計算和符號推理是一般設計的兩項重要工作

32、。將人工智能的理論和技術基礎與CAD技術相結合形成智能CAD系統(tǒng),賦予計算機以人的思維,給設計者自動提供產品設計中所需要的各種信息,在最大程度上實現優(yōu)勢資源的共享與交換,通過分析比較,在最短的時間內生成最適合的解決方案。</p><p><b>  標準化</b></p><p>  最初的CAD技術軟件開發(fā)、設計過程中采用各個模塊、功能獨立進行的方式,因為在硬件、軟

33、件、數據存儲、數據傳遞還有數據格式等方面產生了諸多障礙,開發(fā)出的系統(tǒng)雖然能夠實現最終結果,但它嚴重影響了CAD技術的集成。國際上也提出了例如IGES標準和STEP標準的通用的數據交換規(guī)范,推動CAD標準化的不斷完善,促進CAD系統(tǒng)的集成化的發(fā)展。</p><p><b> ?。?)網絡化</b></p><p>  集中式CAD系統(tǒng)存在著一些弊端,不能滿足現代人的使用

34、要求,隨著工作站和高性能個人計算機的不斷發(fā)展,越來越多的人開始結合工作站和個人PC系統(tǒng)替代以往的集中式CAD系統(tǒng),逐步形成了網絡化的系統(tǒng)。</p><p>  網絡化的系統(tǒng)改變了企業(yè)傳統(tǒng)的設計流程,對于產品設計而言,可以讓設計者擺脫受限制的環(huán)境,更加人性化,有利于設計者更好地發(fā)掘思維,高效率的完成設計工作。同時更多的設計人員可以使用同一平臺,提高設備和資源的利用率,也更方便地設計人員交換設計思想,通過相互交流和合

35、作提高設計質量。進而也推動了制造與商務的全面融合,使技術和應用結合更加緊密。</p><p>  由于支持Web協同設計方案的CAD軟件的不斷發(fā)展進步,其技術日趨成熟,個人和企業(yè)也可以通過Web技術尋找訂單,在家里或是遠處完成達到客戶滿意的設計方案;同時也可以在互聯網上獲取最優(yōu)的設計,實現跨地域、跨時空的溝通特性,使設計和網絡接軌[5]。</p><p>  1.3零件庫的發(fā)展及其研究現狀

36、</p><p>  將設計中可能用到的零部件信息存放到一起,其數據采用標準的格式進行描述,有專用的管理系統(tǒng)進行管理,設計人員可以進行檢索、訪問,并提供與CAD系統(tǒng)的標準接口,設計人員可以方便地將檢索到的信息納入設計文件中,這種系統(tǒng)稱為零件庫系統(tǒng)[6]。零件庫是一種用于計算機輔助設計的典型數據庫,它包含工程設計中所需的各種常用的標準件和通用件。在計算機中它把一定的數據模型格式組織和存儲起來,組成相互關聯的標準件數

37、據信息集合,以提高CAD系統(tǒng)滿足用戶更多需要的要求。</p><p>  作為CAD/CAE技術、計算機數據集成的基礎,零件庫是CAD技術中不可少缺的重要部分。將各種標準件和通用件的信息組合在一起,并設計有管理系統(tǒng)和配備相應接口技術,實現用戶對零件庫進行訪問、查找和提取所需零件,極大地方便用戶的設計制造。</p><p>  機械設計強調互換性,盡可能的降低生產成本,保證經濟性原則,因此在

38、設計中要求設計人員在非必要的情況下盡量使用各種標準件和通用件。主流的各種三維CAD軟件平臺,譬如:Pro/E、UG、Solid Works、CATIA、MDT等,它們功能強大,為現代先進制造技術的發(fā)展奠定了堅實的基礎,其配備的標準件庫模塊得到了廣大用戶的一致好評。但是它們畢竟不是把主要精力放在標準庫的設計上,大多數系統(tǒng)所包含的零件種類和數量都比較有限,不能進一步地滿足工程設計人員的需求。</p><p>  于是

39、很多研究單位和部門以各種CAD軟件系統(tǒng)為平臺,利用其自帶的二次開發(fā)接口技術對其進行了二次開發(fā),得到了符合各行業(yè)實際情況的標準件庫和通用件庫,極大地方便了機械設計人員的工作。</p><p>  華中科技大學開發(fā)了包含齒輪傳動設計過程中用到的各種零件的標準零件庫,用于齒輪CAD系統(tǒng)設計。用戶輸入相關參數后,就能得到包括裝配圖和零部件圖在內的符合設計要求的齒輪傳動系統(tǒng)。北京斯泰普產品數據技術中心、南京航空航天大學CA

40、D中心、東北大學歐磊公司、西北工業(yè)大學等也分別在AutoCAD、SolidEdge、CATIA上創(chuàng)建了自己的標準零件庫。它們涉及種類齊全,有的還允許戶建立自己的零件庫,向零件庫進行刪除,插入或增加自己所需部分簡單零件的功能。</p><p>  對現有CAD系統(tǒng)進行零件庫的二次開發(fā)給工程設計人員帶來了極大的便利,提高了設計效率,但仍存在諸多的不足,主要有以下幾點:</p><p> ?。?

41、)零件庫和CAD系統(tǒng)不獨立:零件庫一般依賴于一種CAD系統(tǒng),適應性和可移植性差,它只能在某個特定的CAD軟件上使用;</p><p> ?。?)擴充性差:目前大多數的零件庫缺少擴充工具,或只能按照嚴格規(guī)定進行簡單零件擴充,不能滿足用戶任意添加自己所需零件的要求;</p><p>  標準信息不完整:零件庫一般只包含零件的尺寸參數等簡單信息,缺少工程應用中需要的材料、熱處理等其他信息,不便于

42、后續(xù)工作的開展。</p><p>  具體來說,零件庫系統(tǒng)應滿足以下幾點要求:</p><p> ?。?)一定的集成能力:可與主流CAD平臺無縫集成,提高適應性;</p><p>  (2)具有開放性、系統(tǒng)穩(wěn)定可靠:可根據用戶的需要任意添加各種不同的零件,方便擴充,滿足不同場合的需求;</p><p>  (3)人機交互界面人性化:按照大多數

43、人的使用習慣設計交互界面,方便用戶的使用;</p><p>  (4)良好的數據管理能力:用戶能夠對零件庫中零件方便的進行移除,再編輯等操作,實現對零件庫的自我管理[7]。</p><p>  1.4二次開發(fā)的提出及主要研究內容</p><p>  1.4.1二次開發(fā)背景及意義</p><p>  機械設計始終是航空航天、汽車、船舶、機械制造

44、等行業(yè)中最重要的工作之一,而標準件(包括常用非標件和通用件)又是設計人員在利用CAD系統(tǒng)開發(fā)設計進新產品的首先。在機械產品的開發(fā)過程除特殊情況下考慮設計新零件外,大都采用各種標準件、通用零件、相似件,以提高設計效率。一般情況下,產品使用標準件的數量要達到全部零件的70%以上。在基本形狀和主要主要結構方面,標準件、通用件以及相似件都相對穩(wěn)定,而相同型號的標準件之間僅有尺寸上的差異。在產品設計時,標準件會反復用在不同的位置。無論是標準件的二

45、維圖還是三維圖,其繪制過程極為繁瑣,加之需要反復查閱相關手冊獲取數據,可謂費時費力,實為一件不省心的事。若設計人員每用一次都要對其重新造型,重復性的工作將對他的工作效率和工作積極性大打折扣[8]。</p><p>  利用己有的資源,建立這些常用零部件的數據庫,用戶在使用時隨時調用,達到在較短的時間內完成新產品的設計工作的目的將是一件非常用意義的事。一方面它可以避免設計人員的重復造型,提高產品設計效率,同時也提高

46、了產品的標準化程度,減少因人為因素造成的錯誤,縮短新產品研發(fā)周期;另一方面還可以將三維實體模型進行諸如有限元分析等更深層次的分析,確保設計結果達到預期效果。企業(yè)要降低生產成本和提高經濟效益,就必須最大限度地使用標準件、通用件、相似件。因此,通用零件庫的開發(fā)應用將成為CAD軟件二次開發(fā)發(fā)展的一個必不可少的方向。</p><p>  1.4.2主要研究內容</p><p>  本課題的主要研究

47、內容為標準件庫的設計,利用Pro/E提供的二次開發(fā)工具Pro/TOOLKIT結合Visual Studio 2005設計出通用零件庫系統(tǒng),實現彈簧、齒輪和軸承三大類通用件的參數化自動建模。用戶選擇不同的零件后,通過選擇零件型號或是輸入相關參數信息即可在Pro/E環(huán)境下立馬生成相應零件的三維模型。</p><p>  對于這些標準件,用戶不必重復造型,減少設計時間,提高設計效率。與其他零件庫相比,本課題設計的零件庫

48、重點表現在軸承三維造型方面,種類多樣,生成的軸承模型自帶保持架,可以隨意修改。齒輪、零件類零件種類齊全,直齒可以選擇內外嚙合,斜齒也可以選擇左右旋等。</p><p><b>  課題具體實施方案:</b></p><p>  (1)學習與本課題相關的Pro/E二次開發(fā)技術,包括Pro/TOOLKIT與Visual Studio 2005的接口技術、自定義萊單的設計、

49、對話框的編寫、Pro/TOOLKIT應用程序的執(zhí)行。</p><p> ?。?)接著根據本畢業(yè)設計要求,分析通用零件庫系統(tǒng)設計開發(fā)的整休思路。</p><p> ?。?)然后完成所有零件的參數化建模,結合Pro/TOOLKIT和Visual Studio 2005編寫實現程序。</p><p> ?。?)最后測試驗證運行效果。</p><p>

50、;  零件庫的工作方式:開發(fā)者編寫的二次開發(fā)C語言程序經編譯后形成DLL文件,打開Pro/E軟件后執(zhí)行Pro/TOOLKIT應用程序,Pro/TOOLKIT調用DLL文件,讀取參數化零件模型庫零件并更新相關參數,從而自動創(chuàng)建零件模型。</p><p>  圖1-2 零件庫工作示意圖</p><p>  2開發(fā)環(huán)境及相關技術</p><p>  2.1 CAD平臺的

51、選取</p><p>  2.1.1 Pro/Engineer軟件簡介</p><p>  Pro/Engineer是美國PTC (Parametric Technology Corporation)公司設計的以提供包含二維圖在內零件的三維模型設計、加工、分析等功能的CAD/CAE/CAM解決方案的集成軟件。作為當今世界應用最廣泛的CAD系統(tǒng)軟件之一,Pro/Engineer提出的參數化設

52、計、基于特征、單一數據庫、全相關性的全新理念改變了機械CAD/CAE/CAM的傳統(tǒng)觀念,也使之成為了當今CAD/CAE/CAM領域的新標準[8]。</p><p>  Pro/Engineer軟件在我國的航天、汽車、家電和機械等行業(yè)有著廣泛的應用,從使用數量上來看已經超過了國內其他同類型的國外產品。Pro/Engineer主要由工業(yè)設計(CAID)、機械設計(CAD)、功能仿真(CAE)、制造(CAM)、數據管理

53、(PDM)和數據交換(Geometry Translator)六大模塊組成,集成了零件設計、飯金件設計、鑄型設計、造型設計、模具開發(fā)、NC加工、逆向工程、機構仿真、有限元分析、數據管理等幾乎所有功能,堪稱全方位的3D產品開發(fā)軟件系統(tǒng)。</p><p>  2.1.2開發(fā)平臺的選取</p><p>  基于以上特點及Pro/Engineer強大的二次開發(fā)功能,故采用Pro/Engineer作

54、為開發(fā)平臺,然后結合VS2005開發(fā)。</p><p>  2.2 Pro/TOOLKIT二次開發(fā)基礎</p><p>  2.2.1 Pro/TOOLKIT簡介</p><p>  Pro/TOOLKIT是PTC公司為Pro/Engineer開發(fā)的以提供大量的C語言函數來使用戶程序或第三方程序安全高效地訪問Pro/Engineer數據庫及應用程序,實現與Pro/E

55、ngineer的完美連接的二次開發(fā)工具。Pro/TOOLKIT能使用戶或第三方通過C語言編程來擴展Pro/Engineer系統(tǒng)的功能,開發(fā)基于該軟件系統(tǒng)下的應用程序模塊,以滿足一些用戶的特定要求。采用Pro/TOOLKIT提供的菜單技術、UI對話框以及C++可視化界面技術,可以設計出與Pro/Engineer完全相同的的人機交互界面,方便用戶的操作。對用戶程序來講,在Pro/Engineer和用戶程序之間信息傳送的數據結構是不可見的,它

56、必須通過Pro/TOOLKIT提供的函數來訪問。本課題借助windows操作系統(tǒng),采用C++程序設計語言,在Visual Studio 2005的集成環(huán)境下完成零件庫系統(tǒng)的設計、調試和編譯[9]。</p><p>  2.2.2 Pro/TOOLKIT的安裝</p><p>  Pro/TOOLKIT工具包包含于Pro/Engineer安裝文件中,安裝時在“產品功能”下級目錄中選中“API

57、工具包",并在“子元件”列表中選中“Pro/TOOLKIT",如圖2-1所示。在Pro/Engineer系統(tǒng)的指定目錄下將自動生成protoolkit和prodevelop兩個下級目錄。</p><p>  Protoolkit目錄中包含4個子目錄:\i486_nt、\includes、\protk_appls和\protkdoc。protoolkit\includes目錄為頭文件,prota

58、olkit\i486_nt\obj目錄為庫文件,它們都是用VC對Pro/Engineer進行應用程序開發(fā)的必不可少的支持文件。\protk_appls目錄的內容為程序實例,\protkdoc目錄下的內容為幫助文件。其中\(zhòng)protkdoc目錄中的IENoSwing.html文件為網頁文件,需要借助jawa軟件使用,全英文的幫助文件幾乎包含了二次開發(fā)所需要的知識點,是學習Pro/Engineer的二次開發(fā)絕佳助手[10]。</p>

59、;<p>  prodevelop目錄中包含了三個子目錄:\i486_ nt、\includes和\Protk_appls。它們分別是Pro/develop使用的函數庫文件、頭文件和程序實例??梢栽赑ro/TOOLKIT中使用Pro/develop函數,但Pro/develop中的函數使用比較少,大多被Pro/TOOLKIT中的函數所取代。</p><p>  3自定義菜單與用戶對話框設計</

60、p><p>  3.1 Pro/TOOLKIT開發(fā)過程</p><p>  3.1.1安裝VS插件Pro/TK Tools</p><p>  先介紹一款Pro/E二次開發(fā)插件——Pro/TK Tools。Pro/TK Tools是一款輔助Visual Studio 2005做Pro/E二次開發(fā)的工具,包括項目wizard,Resource UI的可視化設計,自定義菜單

61、設計和vs2005環(huán)境中控制Pro/E插件程序的注冊等功能。相同的工作,采用Pro/TK輔助,能提升效率數十倍。 </p><p>  安裝Pro/TK Tools時,安裝目錄最好使用軟件默認目錄,無需更改。根據Pro/E的安裝版本選擇Pro/E的安裝目錄,如圖2-2所示,本機Pro/E版本為野火4.0[11]。</p><p><b>  3.1.2新建工程</b>

62、</p><p>  運行Visual Studio 2005,選擇【文件】->【新建】->【項目】命令,如圖2-3所示。</p><p>  在【新建項目】對話框中【模板】欄下選擇ProToolkit_Wizard類型。輸入項目名稱和保存路徑,點擊【確定】按鈕,如圖2-4所示。</p><p>  選擇Pro/E的版本號,此處選擇wildfire 4.

63、0版本,其余項默認即可,點擊【finish】完成新建過程,如圖2-5所示。</p><p>  3.1.3設置包含文件和庫文件</p><p>  選擇【工具】->【選項】命令,在出現的【選項】對話框的【項目和解決方案】節(jié)點下選擇【C++目錄】選項,在【顯示一下內容的目錄】下拉列表中選擇【包含文件】,如圖2-6所示[12]。</p><p>  單擊【…】添加

64、以下文件夾。</p><p>  …\proeWildfire4.0\protoolkit\include</p><p>  …\proeWildfire4.0\protoolkit\protk_appls\includes</p><p>  …\proeWildfire4.0\prodevelop\includes</p><p>  

65、…\proeWildfire4.0\prodevelop\prodev_appls\includes</p><p>  本機Pro/E軟件安裝在D盤PTC文件夾中,故添加路徑為圖2-6所示。</p><p>  在【顯示一下內容的目錄】下拉列表中選擇【庫文件】,單擊【…】添加以下文件夾。</p><p>  …\proeWildfire4.0\protoolkit

66、\i486_nt\obj</p><p>  …\proeWildfire4.0\prodevelop\i486_nt\obj</p><p><b>  如圖2-7所示。</b></p><p>  3.1.4 編寫注冊文件</p><p>  Pro/TOOLKIT應用程序在Pro/Engineer中運行前,必須先進

67、行注冊。注冊文件以向Pro/Engineer傳遞應用程序信息為作用。注冊文件的各字段名及其含義見表2-2[12]。</p><p>  表2-2 注冊文件的各字段名及其含義</p><p>  注冊文件文件名必須以dat作為擴展名,一個注冊文件可寫人多條注冊信息。</p><p>  修改注冊文件如圖2-11:</p><p>  3.1.

68、5程序的運行與卸載</p><p>  程序的運行,這里有三種方法。</p><p>  用Pro/TK Tools直接加載運行。</p><p>  啟動Pro/E軟件,在Visual Studio 2005菜單欄中點擊【Pro/Tools(X)】->【Pro/TK APP Start】,如圖2-12所示。</p><p><b

69、>  手動加載</b></p><p>  啟動Pro/E軟件,點擊【工具】->【輔助應用程序】,在彈出的輔助應用程序對話框中點擊【注冊】,如圖2-13所示。</p><p>  選擇C:\Users\Administrator\Desktop\ProToolkit_Wizard1\ProToolkit_Wizard1\text文件夾下的ProToolkit_Wiz

70、ard1.dat文件。此時dat文件被加載到輔助應用程序對話框中,選中列表框中項目,【啟動】按鈕由灰變亮,點擊【啟動】即可運行程序,如圖2-14所示。</p><p>  在桌面上右擊Pro/Engineer圖標,在彈出的快捷萊單中選擇【屬性】命令,在彈出的屬性對話框中,記下Pro/E起始位置的路徑,即工作目錄,如圖2-15所示,本機路徑為D:\PTC\Work。將C:\Users\Administrator\D

71、esktop\ProToolkit_Wizard1\ProToolkit_Wizard1\text文件夾下的ProToolkit_Wizard1.dat文件復制到Pro/E工作目錄中,打開該文件,將文件中的“DELAY_START TRUE”改為“DELAY_START FALSE”,并更名為protk.dat。啟動Pro/E后即可自動運行程序。</p><p>  以上三種方法均可實現程序的運行,運行后的效

72、果如圖2-16所示。</p><p>  卸載應用程序時,可以選擇Visual Studio 2005菜單欄中【Pro/Tools(X)】->【Pro/TK APP Start】,如圖2-17所示。</p><p>  或是在Pro/E軟件中,點擊【工具】->【輔助應用程序】,在彈出的輔助應用程序對話框中選中列表框里項目,此時【停止】按鈕由灰變亮,點擊【停止】即可卸載應用程序,

73、如圖2-18所示。</p><p>  3.2自定義菜單常用函數</p><p>  菜單欄菜單包含菜單欄、菜單、圖標、按鈕、復選框、單選按鈕組等項目,在Pro/TOOLKIT中,用戶不但可以創(chuàng)建新的菜單欄菜單,也可以對Pro/E系統(tǒng)現有的菜單欄菜單進行修改。通過對菜單的修改實現對菜單的本地語言化翻澤。菜單欄菜單各項目如圖3-1所示[13]。</p><p>  3

74、.2.1菜單欄菜單的添加</p><p>  菜單欄菜單是Pro/E菜單體系的最頂層菜單,菜單欄菜單添加的函數是ProMenubarMenuAdd,其定義如下:</p><p>  #include <ProMenuBar.h> //包含文件</p><p>  ProErrorProMenubarMenuAdd (</p>

75、<p>  ProMenuItemName menu_name</p><p>  ProMenuItemLabeluntranslated_menu_label</p><p>  ProMenuItemName neighbor</p><p>  ProBooleanadd_after_neighbor</

76、p><p>  ProFileName filename</p><p><b>  )</b></p><p><b>  Returns:</b></p><p>  PRO_TK_NO_ERROR</p><p>  PRO_TK_MSG_NOT_FOUN

77、D</p><p>  PRO_TK_E_FOUND</p><p>  PRO_TK_GENERAL_ERROR</p><p>  參數含義具體解釋如下:</p><p> ?。?)menu_name為新添菜單欄菜單名稱,ProMenuItemName類型。</p><p>  (2)untransla

78、ted_menu_label為菜單欄菜單標題文本,標題文本是顯示在菜單上的文字,入“工具”、“幫助”等就是菜單欄標簽。這個參數里需要輸入的是在信息文本中定義原語言版本的標簽。</p><p> ?。?)neighbor參數用于定義菜單將會被放在哪個菜單旁邊,如菜單欄菜單【窗口】的鄰居可是【工具】,也可以是【幫助】。如果想把菜單欄菜單添加到【工具】旁邊,則這個參數的值為:“Utilities”。</p>

79、<p> ?。?)add_after_neighbor參數是一個布爾類型,可以選取PRO_B_FALSE或者PRO_B_TRUE,用來定義新添加的菜單欄菜單在鄰居的那一側,如果要使添加的菜單在【工具】的左側[14],則參數的值為:“PRO_B_FALSE” 。</p><p>  3.2.2菜單按鈕的添加</p><p>  單擊某個菜單按鈕后,應能響應某個函數,因此它的添加

80、過程分為兩步:首先是菜單按鈕和添加動作函數,然后把菜單按鈕與動作函數聯系起來,作為菜單按鈕的響應函數。</p><p>  1)菜單動作函數命令的添加</p><p>  在將菜單按鈕和動作函數聯系起來之前,先在程序主文件的頭文件中定義動作函數,如:“int Menu1_1_fun();”。</p><p>  在Pro/Toolkit中,將菜單按鈕和動作函數聯系

81、起來的函數是ProCmdActionAdd,其定義如下:</p><p>  #include <ProMenuBar.h> //包含文件</p><p>  ProErrorProCmdActionAdd(</p><p>  char* action_name</p><p>  uiCmdCmdA

82、ctFn action_cb</p><p>  uiCmdPriority priority</p><p>  uiCmdAccessFn access_func</p><p>  ProBoolean allow_in_non_active_window</p><p>  ProBoolean allo

83、w_in_accessory_window</p><p>  uiCmdCmdId* action_id</p><p><b>  )</b></p><p><b>  Returns:</b></p><p>  PRO_TK_NO_ERROR</p><p&

84、gt;  PRO_TK_GENERAL_ERROR</p><p>  PRO_TK_E_FOUND</p><p>  各參數具體解釋含義如下:</p><p> ?。?)action_name為動作命令的名稱。該名稱必須是唯一的,不能與其他動作命令同名。</p><p> ?。?)action_cb為動作函數的名稱。例如定義了一個函

85、數int Menu1_1_fun(),把它作為菜單的動作函數,那么這個參數的的值可以是:(uiCmdCmdActFn)Menu1_1_fun,即把函數Menu1_1_fun強制轉換為uiCmdCmdActFn類型,并以指針方式傳入。如果int Menu1_1_fun()的定義為:</p><p>  int Menu1_1_fun()</p><p><b>  {</

86、b></p><p>  AFX_MANAGE_STATE(AfxGetStaticModuleState());</p><p>  AfxMessageBox(_T("你好"));</p><p><b>  return 0;</b></p><p><b>  }</b&

87、gt;</p><p>  則點擊該菜單項后就會彈出消息提示框,并顯示“你好”。</p><p> ?。?)Priority指定動作函數的優(yōu)先級別。優(yōu)先級別是在程序執(zhí)行過程調用多個動作函數時,哪個函數優(yōu)先就會先被執(zhí)行。</p><p> ?。?)access_func是訪問控制函數。有時需要菜單在不同的情況顯示不同的狀態(tài),如不可見、可見但處于灰化狀態(tài)、正常狀態(tài)等等。

88、菜單的狀態(tài)通過這個函數來進行控制的。</p><p> ?。?)allow_in_non_active_window是一個布爾類型參數,表示這個命令是否允許在非激活的窗口下執(zhí)行。取PRO_B_TRUE值,表示允許在非激活窗口下使用;取PRO_B_FALSE值,表示不允許在非激活窗口下使用。何謂激活窗口,Pro/E運行時可以有多個窗口,但只能有個處于激活狀態(tài),只能對激活狀態(tài)的窗口進行操作,如果要激活其他窗口,需要

89、在【窗口】菜單下單擊【激活】。</p><p> ?。?)allow_in_accessory_window也是一個布爾類型的參數,表示動作函數是否允許在沒有模型窗門下被執(zhí)行。剛啟動的Pro/E系統(tǒng)可能并沒有模型被打開,如果動作函數要對模型進行操作,那么在沒有模型的情況下,按鈕應該是不允許被執(zhí)行的,這個時候參數可以取PRO_B_FALSE。但像【打開】等這種不需要對當前模型進行操作的動作函數,可以取PRO_B_T

90、RUE,以允許動作函數被執(zhí)行。</p><p> ?。?)action_id是返回的動作函數的標識。這也是我們使用這個函數所需要得到的。uiCmdCmdid的定義如下:</p><p>  Typedef void uiCmdCmdid;</p><p>  3.2.3下級菜單的添加</p><p>  在一個菜單欄菜單需要添加子菜單(二級菜

91、單)或在子菜單中添加三級菜單可以使用ProMenubarmenuMenuAdd函數。其定義如下[7]:</p><p>  #include <ProMenuBar.h></p><p>  ProErrorProMenubarmenuMenuAdd(</p><p>  ProMenuItemName parent_menu</p>

92、;<p>  ProMenuItemName menu_name</p><p>  ProMenuItemLabel menu_label</p><p>  ProMenuItemName neighbor</p><p>  ProBoolean add_after_neighbor</p><p> 

93、 ProFileName filename</p><p><b>  )</b></p><p><b>  Returns:</b></p><p>  PRO_TK_NO_ERROR</p><p>  PRO_TK_MSG_NOT_FOUND</p><p>

94、;  PRO_TK_E_FOUND</p><p>  PRO_TK_GENERAL_ERROR</p><p>  各參數的具體含義解釋如下:</p><p> ?。?)parent_menu父菜單名。</p><p>  (2)menu_name需要添加的子菜單名。</p><p> ?。?)menu_label子

95、菜單的文本標簽,需要和菜單資源文件保持一致。</p><p> ?。?)add_after_neighbor鄰近按鈕的名字。</p><p>  3.3自定義菜單設計</p><p>  為方便用戶的使用,課題設計的軟件盡可能的做到人性化。首先是在Pro/E菜單欄中添加【通用零件庫】菜單項,按照彈簧、齒輪、軸承三大類零件,在【通用零件庫】下添加【彈簧】、【齒輪】、【

96、軸承】菜單項,此三個菜單項下又各包含下級菜單,顯示具體的零件名按鈕,用戶點擊不同的按鈕,系統(tǒng)將會彈出不同的對話框,以生成相應的零件模型。為方便操作使用,菜單還加入了【生成模型樹】、【窗口視圖】、【關于】按鈕?!旧赡P蜆洹堪粹o可以激活用戶新生成的通用零件庫內的模型,展開模型樹,從而可以使用戶在需要時對零件做一定的修改?!敬翱谝晥D】可以調整活動窗口的狀態(tài),用戶可以清除或是重畫窗口內容,刷新窗口或者調整窗口視圖大小。如圖3-2~3-4所示。

97、</p><p>  3.4 UI對話框基本知識</p><p>  UI對話框是Pro/TOOLKIT提供的一種自定義人機交互界面,即用戶界面對話框(User Interface Dialog Boxes)的簡稱。開發(fā)者可以利用Pro/TOOLKIT提供的UI對話框技術,設計出與Pro/E對話框風格相似的人機交互界面。它主要由對話框資源文件和對應的控制程序兩部分組成。對話框資源文件定義了

98、對話框的組成、外觀和屬性,用ASCII碼文本格式編寫;采用C或C++語言編寫的控制程序,用來驅動在Pro/E系統(tǒng)中載入對話框資源、顯示對話框和設置動作等操作[15]。</p><p>  3.4.1資源文件及格式</p><p>  資源文件是用來描述UI對話框外觀和定義其屬性的文本文件。其主要內容包括UI對話框的組成部分各元件(component)、元件的屬性定義與元件的布局形式。<

99、;/p><p>  資源文件的結構如下:</p><p> ?。―ialog<對話框名></p><p>  (Components</p><p><b>  ……</b></p><p><b> ?。?lt;/b></p><p> ?。≧es

100、ources</p><p><b>  ……</b></p><p><b> ?。?Layout</b></p><p><b>  ……</b></p><p><b>  )</b></p><p><b> ?。?/p>

101、</b></p><p><b>  )</b></p><p>  Dialog<對話框名>為頂層語句,下面主要由兩段構成,其中元件段(Components)聲明了該對話框的所有元件,資源段(Resources)分別定義了各元件的屬性及布局。元件聲明的格式為:</p><p> ?。ㄔ愋兔?lt;/p&g

102、t;<p>  類型名為系統(tǒng)所定義,元件名為用戶定義,前者可以理解為元件對象類,后者可以理解為元件對象的實例,如(PushButtonOK),其中“PushButton”為類型名,“OK”為元件名。元件屬性的格式為:</p><p> ?。ㄔ?屬性名屬性值)</p><p>  如(OK.Label“確定”),其中“OK”為開始已經聲明過的元件名,“Label”為“

103、OK”對象的標簽屬性,屬性值為中文字符串“確定”。如果忽略了元件名,則表示上級元件的屬性,如“(.Label “直齒輪參數化建?!保北硎緦υ捒虻臉祟}為“直齒輪參數化建模”。</p><p>  “(.Layout(……))”為對話框的布局定義,其中(Grid (Rows 1 1…)(Cols 1…)定義了對話框中元件的位置網格。Row表示行,Cods表示列,其值為“l(fā)”表示一行(列),n個1代表n行(列)。如

104、“(Grid (Rows 1 1) (Cols 1 1)……)”表示定義了兩行,每行按兩個元件布局。表示行或列的“1”也可以用“0”代替,“1”表示元件的大小可以隨UI對話框的大小變化而變化,“0”則不可以。Grid的一般格式為:</p><p>  (Grid (Rows 1……)(Cols l……)</p><p><b>  <元件名></b><

105、;/p><p><b>  ……</b></p><p>  (Pos <行> <列)</p><p><b>  <元件名></b></p><p><b>  ……</b></p><p><b>  )<

106、;/b></p><p>  Pos語句用來指定其后的第1個元件的位置,這樣可以使元件不按順序排列,還可以設置空位置。</p><p>  編寫資源文件時應注意以下兒點:</p><p><b>  (1)區(qū)分大小寫。</b></p><p> ?。?)括號必須成對,為了便于查錯,最好采用縮進行格式書寫。</

107、p><p>  (3)對話框名必須與資源文件名相同。</p><p> ?。?)“!”后的內容為注釋,對UI對話框的定義沒有影響。</p><p> ?。?)資源文件可用任意一種支持純文本格式的文字處理軟件編寫。如Word,寫字板和記事本等,也可以用VC應用程序設計向導編寫。不管用哪種方法編寫,都必須以純文本格式保存,且文件擴展名必須為.res。保存在Pro/E安裝月錄

108、下的\text\resource子目錄或注冊文件中TEXT_DIR字段指定目錄下的\<language>\resvurce子目錄,其中<language>取決于當前使用的語言(如usascii或chinese_cn )。對于Pro/TOOLKIT應用程序中使用的資源文件最好保存在注冊文件中TEXT_DIR字段指定目錄下的\<language>\resource子目錄中。</p><

109、p>  3.4.2主要函數介紹</p><p>  資源文件只是對UI對話框的具體描述,必須通過Pro/TOOLKIT應用程序來對其進行裝入、顯示和控制等操作[16]。</p><p><b>  創(chuàng)建和終止UI話框</b></p><p><b>  創(chuàng)建過程如下:</b></p><p>

110、 ?。?)調用ProUIDialogCreate()函數把資源文件載入電腦內存。</p><p> ?。?)調用對話框元件的動作設置函數設置某些元件的動作函數。</p><p> ?。?)調用ProUIDialogAcrivate()函數顯示和激活對話框。</p><p>  (4)調用ProUIDialogDestroy()函數從內存清除對話框資源。</p&

111、gt;<p>  上述4各步驟是創(chuàng)建一個UI對話樞的基本步驟,可作為相對固程序結構。其中第2步的動作設置函數與元件類型有關,它的主要目的是設置用戶在對話框界面上對某一元件進行操作時(如:在輸入框中輸入內容、選擇單選按鈕組中的某個按鈕等)調用的動作函數,動作函數需要在Pro/TOOLKIT應用程序中定義。</p><p>  完成上述4個步驟在屏幕上顯示對話框并從內存清除對話框資源后,等待用戶的操作,

112、調用包含調用ProUIDialogExit()的動作函數,終止對話框。如果不執(zhí)行第4步,調用ProUIDialogExit()將無法終止對話框。</p><p>  2.ProUIDiaIog類對話框函數介紹</p><p>  ProUIDialog類對話框函數是指用于對話框(不包含元件)操作的相關函數,函數名前綴為ProUIDialog。</p><p>  (

113、1)ProUIDialogCreate()函數</p><p>  ProError ProUIDialogCreate(char* dialog_name/*(In)對話框名*/</p><p>  char* resource/*(In)資源文件名*/)</p><p><b>  函數返回值為:</b></p>&l

114、t;p>  PRO_TK_NO_ERROR(調用成功);</p><p>  PRO_TK_GENERAL_ERROR(一般錯誤)。</p><p>  (2)ProUlDialogActivate()函數</p><p>  ProError PProUlDialogActivate(char* dialog_name/*(In)對話框名*/</p

溫馨提示

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

評論

0/150

提交評論