基于ProE Wildfire 建立常用件參數化模型庫

上傳人:仙*** 文檔編號:28494607 上傳時間:2021-08-29 格式:DOC 頁數:80 大小:1.84MB
收藏 版權申訴 舉報 下載
基于ProE Wildfire 建立常用件參數化模型庫_第1頁
第1頁 / 共80頁
基于ProE Wildfire 建立常用件參數化模型庫_第2頁
第2頁 / 共80頁
基于ProE Wildfire 建立常用件參數化模型庫_第3頁
第3頁 / 共80頁

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《基于ProE Wildfire 建立常用件參數化模型庫》由會員分享,可在線閱讀,更多相關《基于ProE Wildfire 建立常用件參數化模型庫(80頁珍藏版)》請在裝配圖網上搜索。

1、 目錄 前言 0 基于Pro/E Wildfire 建立常用件參數化模型庫 1 第一章 緒論 3 1.1引言 3 1.2 課題的提出及意義 4 1.3本章小節(jié) 4 第二章二次開發(fā)總體方案的確定 4 2.1 二次開發(fā)語言(Pro/TOOLKIT) 4 2.2 開發(fā)工具的確定 5 2.3 開發(fā)環(huán)境 7 2.3.1硬件開發(fā)環(huán)境 7 2.3.2軟件開發(fā)環(huán)境 7 2.4總體設計框架 10 第三章菜單的設計開發(fā) 12 3.1 菜單的設計 12 3.1.1 編寫菜單信息資源文件 13 3.1.2 編寫菜單操作源程序 19 3.1.3 注冊運行 22 第四章建立參數化模

2、型庫 24 4.1國家標準 24 4.2參數化建模 26 4.3對話框的設計 28 4.4參數值的傳遞 46 4.5編寫注冊文件 71 4.6編譯程序并執(zhí)行 71 第五章總結與展望 77 5.1論文總結 77 5.2后續(xù)發(fā)展方向 77 致謝 78 參考文獻 79 前言 畢業(yè)設計是我們綜合運用所學的理論知識和實踐相結合的重要環(huán)節(jié)。是對我們大學四年所學知識的一次全面檢驗和應用; 首先,畢業(yè)設計能培養(yǎng)我們分析實際問題的能力,運用所學知識動手解決實際問題的能力,從而鞏固深化所學的理論知識,為即將走向工作崗位打下堅實的基礎。 其次,畢業(yè)設計培養(yǎng)我們深入實際,調查研究

3、,解決在現實問題中可能出現各種問題,所以我們在設計中必須學會分析問題和解決問題的方法,要抓住主要問題,按安全可靠,經濟實用的原則設計。 再次,畢業(yè)設計培養(yǎng)了我們熟悉有關技術政策,運用國家標準規(guī)范,手冊,圖冊等工具書,獨立進行設計計算,數據處理,編寫技術文件的工作能力。 在畢業(yè)設計中,我們必須培養(yǎng)認真、負責、細致、踏實的工作作風,養(yǎng)成保質保量、按時按量完成任務的習慣,要達到這一目的,我們在設計中必須應做到: (1)隨時準備各種資料,為畢業(yè)設計做好充分的準備。 (2)認真計算和檢驗,保證計算結果的準確性。 (3)仿真建模和CAD制圖要認真、仔細和不斷反復檢查,以保證圖紙的質量。 (4)

4、勞逸結合,提高工作效率,按時完成自己的設計任務。 這次畢業(yè)設計不僅關系著每個人的學業(yè)成績,更重要的是它體現了每個人對待設計的認真程度和實際能力。固然每個人的能力不同,設計有好有劣,但我們還是力求向好的方面努力,使設計既符合實際,更加完善完美。我想這與指導老師和領導的要求也是一致的。不過由于對一些實踐性知識了解甚少,加上本次設計時間緊、任務重、圖紙多,很難百分之百的達到畢業(yè)設計的要求。所以這次畢業(yè)設計也只能是一個嘗試,但對我將來的工作必將是一個很大的幫助,相信通過這次畢業(yè)設計能達到預期目的,各方面都有所提高。 由于經驗不足、水平有限加之時間倉促,本次畢業(yè)設計一定存在不少錯誤,歡迎各位老師和同

5、學批評指正。 基于Pro/E Wildfire 建立常用件參數化模型庫 摘要:本課題針對多種類型通用零件,提出基于Pro/E平臺進行二次開發(fā)的一種可行方案。并且成功開發(fā)設計出能滿足用戶要求的零件模型庫。 本文首先簡單介紹了與本課題相關的Pro/E二次開發(fā)功能,包括自定義菜單的生成、對話框的制作、Pro/TOOLKIT應用程序的執(zhí)行。其次根據本課題的要求,分析了零件二次開發(fā)的整體設計思路。然后以標準件為例,較詳細地說明了利用Pro/TOOLKIT及Visual Studio2005在Pro/E二次開發(fā)中的應用,并給出了測試實例。最后對開發(fā)的三維建模程序進行測試。結果表明:開發(fā)程序正確

6、無誤,建模迅速,大大提高了這類通用件在Pro/E平臺上的設計效率。 關鍵詞:Pro/E、二次開發(fā)、Pro/TOOLKIT、Visual Studio2005 The Secondary Development of common parts Based on Pro/E Abstract:This article introduces a feasible method of secondary development based on Pro/E against some kinds of parts. And the spring parts library is s

7、uccessfully designed meet to the user requirements. Firstly, this articlesimply introduces the secondary development functions of Pro/E referring to this task which includes the creation of menu, the creation of the dialogue,the Pro/TOOLKIT procedure execution. Then the precept to the overall desig

8、n way of parts secondary development is analyzed.With an example of aStandard partsin detail,it particularly describes the application of Pro/TOOLKIT and Visual Studio2005 in the secondary development base on Pro/E, andtest examples. At last, the test of all process of three-dimension-part-model dri

9、ven by database is performed indicates that the program is right,and the mold can be set up quickly. The efficiency for the design of interchangeable part based on Pro/E can be increased. Keywords: Pro/E、Secondary Development、Pro/TOOLKIT、Visual Studio2005 第一章 緒論 1.1引言 (1)參數化技術 正當實體造型技術在CAD

10、系統(tǒng)中廣泛運用時,出現了一種比無約束自由造型更好的算法-參數化實體造型方法。它主要的特點是:基于特征、全尺寸約束、全數據相關、尺寸驅動設計修改。參數化技術徹底克服了自由緘默的無約束狀態(tài),由尺寸決定實體造型的幾何形狀。尺寸驅動已經成為當今造型系統(tǒng)的基本功能。如果想修改零件形狀的話,只需修改一下尺寸的數值就可以實現形狀上的改變。這種新構想最先在PTC公司(Parametric Technology Corp)的軟件PRO/ENGINEER中成為現實。由于參數化技術的成功應用,使得它很快成為CAD業(yè)界的標準,許多軟件廠商紛紛追趕。 (2)變量化技術 變量化造型技術保留了參數化技術基于特征、全數據

11、相關、尺寸驅動設計修改的優(yōu)點,但是在約束定義方面做了一定的改變。變量化造型技術將所需定義的尺寸“參數”進一步區(qū)分為形狀約束和尺寸約束,而不僅僅是用尺寸來約束全部幾何。通常在新產品開發(fā)的概念設計階段,設計者首先考慮的是設計思想及概念,并將其體現在某些幾何形狀之中。但是這些幾何形狀的嚴格的尺寸定位關系并不能在設計的初始階段完全確定,所以希望在初始階段能夠允許欠尺寸約束的存在。 (3)二次開發(fā)研究 Pro/ENGIEER 提供了強大的三位幾何造型功能,使我們能夠創(chuàng)建各種復雜的幾何零件模型,但有時這些功能并不能滿足我們的要求。例如標準零件系列,它們的結構都是相同的,區(qū)別只在與尺寸,如果標準零件系列

12、通過三維建模的方式來實現,那么工作量將是非常巨大的。最有效的方法使利用標準零件的相似性,發(fā)揮Pro/ENGEER參數化建模的特長,使用二次開發(fā)工具,如族表工具、用戶定義特征(UDF)、Pro/Program、J-link、Pro/Toolkit等來實現。 1.2 課題的提出及意義 產品的三維設計離不開CAD/CAM系統(tǒng)的支持,具有技術成熟、功能強大的Pro/ENGINEER參數化造型系統(tǒng)在設計和制造業(yè)中引起了人們的重視,并得到了日益廣泛的應用。Pro/ENGINEER提供了強大的三維幾何造型功能,使我們能夠創(chuàng)建出各種復雜的幾何模型,作為通用的三維CAD/CAM系統(tǒng)在功能上基本能夠滿足產品三

13、維設計要求,但有時這些功能并不能滿足我們的需求。例如標準零件系列,它們的結構都是相同的,區(qū)別只在于尺寸,如果標準零件系列都通過三維建模的方式來實現,那么工作量將非常巨大。雖然Pro/ENGINEER自身也有一些模型庫,但是這遠遠滿足不了用戶的要求。因此,也就有了本課題研究開發(fā)的必要。 機械產品的開發(fā)過程中會用到大量的通用零件、標準件、相似件。如何建立這些常用零部件的庫,利用已有的資源,花費較少的時間完成產品設計是用戶非常關心的問題。建立這些通用件、標準件、相似件零件庫作為一項可行方案,一方面可以避免不同設計者的重復勞動,提高設計效率,提高設計的標準化程度,減少錯誤發(fā)生率,縮短產品開發(fā)周期;另

14、一方面還可以基于該軟件的三維實體模型進行更深層次的分析(如有限元分析等),以確保機械設計結果安全可靠。 綜上,對某些特殊零件進行二次開發(fā)是非常有必要的。因此也就有了本課題的提出。 1.3本章小節(jié) 本章介紹了現代CAD技術中的發(fā)展及其需求,并分析了參數和變量化技術的應用前景,確定了Pro/ENGINEER二次開發(fā)的必要性和方便性,確定了課題的主要研究內容和方向:利用Pro/E TOOLKIT進行零件的參數化建模,以及需要用到的相關技術。 第二章二次開發(fā)總體方案的確定 2.1 二次開發(fā)語言(Pro/TOOLKIT) Pro/TOOLKIT是美國Parametric Technology

15、 Corporation(PTC)公司為Pro/ENGINEER軟件提供的開發(fā)工具包,其主要目的是讓用戶或第三方通過C程序代碼擴充Pro/ENGINEER系統(tǒng)的功能,開發(fā)基于Pro/ENGINEER系統(tǒng)的應用程序模塊,不僅如此,還可以利用Pro/TOOLKIT提供的UI對話框、菜單以及VC的可視化界面技術,設計出方便實用的人機交互界面,從而大大提高系統(tǒng)的使用效率。Pro/TOOLKIT是Pro/ENGINEER的一個應用程序接口(API),它的編程語言是C語言,可以對Pro/ENGINEER進行功能擴展,滿足PTC客戶的特定需求。而且,Pro/TOOLKIT提供了定制標準Pro/ENGINEE

16、R用戶界面的能力,自動執(zhí)行重復性的程序,通過Pro/ENGINEER集成的內部程序(Dll)或外部應用程序(Exe)可以為造型用戶提供自定義的應用程序、設計規(guī)劃和繪圖自動化。 Pro/TOOLKIT工具包提供了開發(fā)Pro/ENGINEER所需的函數庫文件和頭文件,使用戶編寫的應用程序能夠安全地控制和訪問Pro/ENGINEER,并可以實現應用程序模塊與Pro/ENGINEER系統(tǒng)的無縫集成。 Pro/TOOLKIT工具包是隨Pro/ENGINEER安裝盤一起提供的,安裝時在“元件”列表框中選中“API Toolkits”復選框,并在“子元件”列表框中選中“Pro/TOOLKIT”復選框,這

17、樣將在Pro/ENGINEER系統(tǒng)的默認目錄下自動創(chuàng)建兩個下級目錄:protoolkit和prodevelop。 Pro/TOOLKIT采用面向對象的程序設計方法(Object_Oriented Programming)。在Pro/ENGINEER和應用程序之間主要是通過特定的數據結構來傳遞信息,以應用程序來說這種數據結構并不是直接訪問的,而只能通過Pro/TOOLKIT提供的函數來訪問。 2.2 開發(fā)工具的確定 Pro/ENGINEER軟件本身自帶了一些二次開發(fā)工具,如族表工具、用戶定義特征(UDF)、Pro/Program、J-link、Pro/Toolkit等。 以下簡單介紹上述

18、幾種二次開發(fā)工具: 族表(Family Table) 通過族表可以方便地管理具有相同或相近結構的零件,特別適用于標準零件的管理。族表工具是通過建立一個通用零件作為父零件,然后在其基礎上對各參數加以控制生成派生零件。整個族表是通過電子表格來實現的,因此可以稱其為表格驅動。 用戶定義特征(UDF) 用戶定義特征是將若干個系統(tǒng)特征整合為一個自定義特征,使用時作為一個整體出現。UDF適用特定產品的特定結構,有利于設計者根據產品特征快速生成幾何模型。 Pro/Program Pro/ENGINEER軟件對于每個模型都有一個主要設計步驟和參數列表Pro/Program,它是由類似BASIC的

19、高級語言構成,用戶可以根據設計需要來編輯該模型的Program,使其以一個程序來工作。通過運行該程序,系統(tǒng)通過人機交互的方法來控制系統(tǒng)參數、特征出現與否以及特征的具體尺寸等。 J-link J-link是Pro/ENGINEER中自帶的基于JAVA語言的二次開發(fā)工具,是一種面向對象、獨立于操作系統(tǒng)平臺的開發(fā)工具。用戶通過JAVA編程實現向Pro/ENGINEER軟件添加功能。 Pro/TOOLKIT Pro/TOOLKIT同J-link一樣也是Pro/ENGINEER自帶的二次開發(fā)工具。在Pro/TOOLKIT中,PTC向用戶提供了大量的C語言函數庫,函數采用面向對象的風格。通過調

20、用這些底層函數,用戶能方便而又安全地訪問Pro/ENGINEER的數據庫及內部應用程序,進行二次開發(fā),擴展一些特定功能。 上述各種二次開發(fā)工具集中在Pro/ENGINEER的“工具”菜單中,如圖2-1所示。其中“輔助應用程序”主要用來調用Pro/TOOLKIT程序。 圖2-1 由于Pro/TOOLKIT具有函數簡單,應用方便等優(yōu)點,本課題將使用Pro/TOOLKIT進行二次開發(fā)研究。 2.3 開發(fā)環(huán)境 開發(fā)環(huán)境包括兩部分:即硬件開發(fā)環(huán)境和軟件開發(fā)環(huán)境。 2.3.1硬件開發(fā)環(huán)境 本課題是基于Pro/Engineer Wildfire4.0的二次開發(fā),因此只要能夠安裝支持Pro/

21、E Wildfire4.0版本即可。建議配置如表2-1所示。 表2-1 計算機配置 項目 推薦配置 CPU 2.53GHz 內存 2GB 顯卡 顯存256MB以上,推薦使用ATIHD3470以上的顯卡 網卡 必須安裝網卡(或使用虛擬網卡) 2.3.2軟件開發(fā)環(huán)境 操作平臺:Windows2000/XP/NT; 開發(fā)平臺:Pro/ENGINEER Wildfire4.0; 開發(fā)語言:Visual Studio2005. 對于PROE4.0 來講,其文件結構與2.0 是一致的,讀者可參照前面的描述來回顧相關內容,下面請隨我一起來配置這套組合下的二次開發(fā)環(huán)境。首

22、先打開VS2005 中的VC 開發(fā)環(huán)境。依次選擇文件—>新建—>項目,系統(tǒng)彈出項目對話框(圖1-8) 圖2-2 選擇如圖所示的MFC DLL 項目,輸入項目名稱并設置項目路徑,點擊確定。在接下來的對話框中選擇“使用共享MFC DLL 的規(guī)則DLL”(默認的也是這個選項),點擊完成后,與VC++6.0 一樣,系統(tǒng)自動為我們搭建了一個DLL的開發(fā)環(huán)境,現在,我們要在這個環(huán)境下配置TOOLKIT 開發(fā)所需要的頭文件和庫文件路徑。 依次在菜單中選擇:工具—>選項,系統(tǒng)彈出選項對話框。在該對話中選擇“項目和解決方案”一欄中的“VC++目錄”選項,并參照圖1-9 的方法設置頭文件路徑 圖2

23、-3 我的設置為: D:\Program Files\proeWildfire 4.0 \protoolkit\include D:\Program Files\proeWildfire 4.0 \protoolkit\protk_appls\includes D:\Program Files\proeWildfire 4.0 \prodevelop\includes D:\Program Files\proeWildfire 4.0 \prodevelop\prodev_appls\includes 仍舊在該對話框下,設置庫文件路徑,如圖1-10: 圖2-4 設置好頭文件

24、和庫文件路徑后,就還差最后一步了,現在我們要來指定使用中的具體庫文件。 圖2-5 點擊“項目”—>“屬性”,系統(tǒng)彈出該項目的屬性對話框。按照圖1-11 的方法設置工程的連接屬性。 我的“附加依賴關系”中為:protk_dll.lib prodev_dll.lib mpr.lib psapi.lib(筆者這里一共用到了四個庫,當然,讀者可以根據自己需要,添加其他額外的庫文件) 在Release 版本下忽略的庫文件為:msvcrtd.lib(與VC++6.0 中是不一樣的)。設置完畢后,在Release 版本下編譯連接完全沒有問題,至此,環(huán)境設置便講完了。 2.4總體設計框架 本二

25、次開發(fā)是基于Pro/ENGINEER的關于標準件、正齒輪、錐齒輪、蝸輪、標準件的參數化設計。設計的對象是標準件。本任務將設計多種類型的標準件,要求用戶只需選擇或輸入相關參數,就能自動生成所需的通用零件。標準件的類型非常多,這里將以螺栓與正齒輪為例進行二次開發(fā)設計過程說明。 本開發(fā)的總體設計流程如圖2-2所示,調用響應圖如圖2-3所示。 打開VS2005 建立開發(fā)目錄 新建工程 設計菜單 設計對話框 Pro/toolkit編程 連接 調試通過 圖2-6 啟動Pro/E 手動加載菜單 選擇自定義菜單 選擇所需零件 調用對話框 輸入設計參數

26、 生成實體模型 退出程序 第三章菜單的設計開發(fā) 3.1 菜單的設計 菜單是Pro/ENGINEER的主要用戶界面。Pro/TOOLKIT提供了一系列菜單操作函數,允許應用程序創(chuàng)建和管理菜單。Pro/ENGINEER菜單包括菜單欄、菜單、菜單項(按鈕)、篩選按鈕、單選按鈕等等,如圖4-1示。 圖3-1 Pro/TOOLKIT可以向Pro/ENGINEER菜單中添加上述類型的菜單。添加菜單的大致過程如下: 編寫信息資源文件(信息資源文件用于提供菜單的標簽文本和幫助信息); 使用Pro/TOOLKIT的函數編寫源程序,給菜單按鈕設置調用函數(動作函數); 注冊運行程

27、序。 下面介紹菜單的相關術語: l 菜單條(Menu bar)Pro/ENGINEER界面頂部菜單欄中的菜單,如File、Edit和View等均稱為菜單條; l 菜單條菜單(Menu bar menu)菜單條的下級子菜單。即多層菜單的次級菜單; l 菜單的按鈕(Push button)下拉菜單中用來啟動一組指令的菜單項,如File菜單條中的Edit按鈕; l 菜單的復選按鈕(Check button)下拉菜單中用來執(zhí)行開關動作的菜單項,如View菜單條中的Model Tree(模型樹)顯示或關閉菜單項; l 菜單的單選按鈕組(Radio group)下拉菜單的一組選項中只能設置其中

28、一項的菜單項; l 命令(Command)從菜單條或工具欄圖標激活的一個執(zhí)行過程; l 命令標識號(Command id)指向某一命令的指針。一般作為Pro/TOOLKIT函數的輸入參數; l 動作命令(Action command)啟動菜單按鈕執(zhí)行的一組指令; l 選項命令(Option command)基于界面元素的狀態(tài)執(zhí)行的一組指令。該命令由菜單篩選按鈕和菜單單選按鈕組啟動 本設計要求所設計的菜單風格與Pro/ENGINEER一致,即將菜單添加到Pro/ENGINEER的菜單欄,在其下拉菜單項菜單中要求有各種類型的標準件,如標準件庫,包括螺釘,螺栓,墊片,鍵等。 3.1.1

29、編寫菜單信息資源文件 信息資源文件用于提供菜單的標簽文本(包括其他語言版本的標簽)和幫助信息,如果要向Pro/ENGINEER中添加菜單,就必須使用信息資源文本,否則所添加的菜單不會在Pro/ENGINEER菜單欄中出現。 信息資源文件是一種ASCII碼文件,用來定義菜單項、菜單項提示等信息,可以用記事本和寫字板等文字處理軟件建立,也可在VC的集成開發(fā)環(huán)境中建立,但必須與純文本格式保存。在信息文件中以4行為一組,其含義為: 第1行:Pro/ENGINEER系統(tǒng)可以識別的關鍵字。該關鍵字必須與使用該信息文件函數中的相關字符串相同。 第2行:在菜單項或菜單項提示上顯示的英語文本。 第3行

30、:另一種語言的譯文或為空。這里為中文。 第4行:當前的Pro/ENGINEER版本為空,“#”號。 按第2行或第3行的語言取決于系統(tǒng)環(huán)境變量lang的設置。 本設計中將向Pro/ENGINEER界面的頂部菜單欄中添加一個名為“通用件庫”的Menu bar類型的菜單,下屬兩個菜單項標準件庫和齒輪庫。名為“渦輪蝸桿”的下級子菜單又包含了:渦輪參數化設計、蝸桿參數化設計兩個菜單項 最終結果如圖3-2(a)、3-2 (b)所示。 圖4-2(a) “通用件庫”菜單 圖4-2(b) “標準件庫”菜單 圖4-2所示菜單的資源文件如下: StandardPartLibDesig

31、n 通用件庫 # # FirstButton 雙頭螺柱參數化設計 # # this button will generate a doublescrew_bolt this button will generate a doublescrew_bolt # # SecondButton 墊片參數化設計 # # this button will generate a shim this button will generate a shim # # ThirdButton 螺栓參數化設計 # # this button will generate

32、a bolt this button will generate a bolt # # FourthButton 螺母參數化設計 # # this button will generate nut this button will generate nut # # FifthButton 鍵參數化設計 # # this button will generate a key this button will generate a key # # SixthButton 螺釘參數化設計 # # this button will generate a

33、nut_bolt this button will generate a nut_bolt # # seventhButton 人字型齒輪參數化設計 # # this button will generate a Herringbone_gear this button will generate a Herringbone_gear # # eigthButton 軸參數化設計 # # this button will generate a shaft this button will generate a shaft # # SubMenu1 齒輪

34、參數化設計 # # SubMenu2 標準件庫 # # SubMenu3 蝸輪蝸桿參數化設計 # # ninthButton 錐齒輪參數化設計 # # this button will generate a bevel_gear this button will generate a bevel_gear # # tenthButton 蝸輪參數化設計 # # this button will generate a worm_gear this button will generate a worm_gear # # eleventhBut

35、ton 蝸桿參數化設計 # # this button will generate a worm this button will generate a worm # # twelthButton 正齒輪參數化設計 # # this button will generate a spur_gear this button will generate a spur_gear # # 在記事本編輯完以上資源后,保存為純文本格式(.txt),并且命名為Message。將Message.txt文件存放在Text\Release\text\chinese_cn目錄下 3

36、.1.2 編寫菜單操作源程序 圖3-3 新建項目,名稱standard 編寫完菜單信息資源文本后,還須使用Pro/TOOLKIT提供的菜單操作函數來實現每個菜單的功能,即編寫菜單項菜單的動作函數。 首先,必須列出VC程序將用到的相關頭文件,如 #include"ProMenu.h" #include"ProUtil.h" #include"ProMenubar.h" #include 其次,必須對用到的函數進行聲明,否則將會出錯,如 void drawdoublescrew_bolt() { } void drawshaft()

37、 { } void drawHerringbone_gear() { } void drawshim() { } void drawbolt() { } void drawnut() { } void drawkey() { } void drawworm_gear() { } void drawworm() { } void drawnut_bolt() { } void drawbevel_gear() { } void drawspur_gear() { } CstandardApp::CstandardApp() {

38、 } CstandardApp theApp; BOOL CstandardApp::InitInstance() { CWinApp::InitInstance(); return TRUE; } static uiCmdAccessState AccessDefault(uiCmdAccessMode access_mode) { return (ACCESS_AVAILABLE); } 最后才編寫程序主體部分。 下面介紹說明菜單程序中用到的Pro/TOOLKIT函數。 user_initializ()函數是Pro/TOOLKIT應用程序的初始化函數,主要

39、用來對同步模式的Pro/TOOLKIT應用程序進行初始化,任何同步模式的應用程序要在Pro/ENGINEER系統(tǒng)中加載都必須包含該函數。其格式如程序所示。 user_terminate()函數在Pro/ENGINEER終止同步模式的Pro/TOOLKIT應用程序時調用(如退出Pro/ENGINEER將終止應用程序的運行),該函數由用戶定義,其中可以不執(zhí)行任何動作。 ProMenubarMenuAdd()函數的作用是向Pro/ENGINEER添加所需的菜單,包含頭文件為:#include。函數的返回值類型為ProError,調用成功返回PRO_TK_NO_

40、ERROR(0),否則返回PRO_TK_GENERAL_ERROR(-1)。函數如下: ProMenubarMenuAdd ("UserMenuBar", "UserMenu", "Utilities", PRO_B_TRUE, MsgFile) 其中"UserMenuBar"為菜單項名,作為調用其他菜單函數的輸入參數;"UserMenu"為菜單標簽名,即該菜單條的關鍵字。必須與信息文件該段的標識關鍵字相同。"Utilities", PRO_B_TRUE表示該菜單加在“工具”菜單的右側。MsgFile為菜單信息文件名,這里定為"Message"。 ProMenubarmenuMenu

41、Add()函數的作用是向菜單添加下級子菜單。注意,在生成的下級子菜單中必須至少包含一項菜單項,否則將不顯示下級子菜單。該函數可以創(chuàng)建多層下級子菜單,只需用不同層次的菜單名標識作為們菜單名即可。其函數如下: ProMenubarmenuMenuAdd("UserMenuBar","SubMenu1","SubMenu1",NULL,PRO_B_TRUE, MsgFile) "UserMenuBar"表示這個下級菜單是掛接在此菜單項名下。"SubMenu1"為菜單標簽名,必須與信息文件中對應標識關鍵字相同。 ProMenubarmenuPushbuttonAdd()函數的作用是添加菜單按

42、鈕。其函數如下: ProMenubarmenuPushbuttonAdd("SubMenu1","PushButton1","PushButton1","Addinga push button to the ProE menu bar", NULL, PRO_B_TRUE, PushButton_cmd_id1, MsgFile) "SubMenu1"表示此菜單是菜單名為“SubMenu1”的下級子菜單,"PushButton1"是菜單標簽名,與信息文件中對應一致。"Adding a push button to the ProE menu bar"是提示信息,必須與信息文件中一致。 程

43、序中用到了菜單條、菜單條菜單、下級子菜單、菜單按鈕等。 將上面編輯的資源信息文件放入“Text\Release\text\chinese_cn”文件夾內。 3.1.3 注冊運行 編寫調試完應用程序后,將整個VC工程文件拷貝到工作目錄下,用記事本編寫注冊文件,并保存為“Protk.dat”。注冊文件內容如圖4-9所示。 圖3-4注冊文件 這里的“.\”代表相對路徑方式,即起始目錄為Pro/ENGINEER的工作目錄。用相對路徑方式的優(yōu)點在于具有可移植性。即此二次開發(fā)程序只要存放在Pro/ENGINEER設置的工作目錄下,便能自動運行,而不要求用戶更改設置,大大地方便了用戶的使用

44、。圖4-9中各字段及其意義如表4-1所示。 表4-1注冊表字段及意義 字段名 意義 Name 外部程序標識名,該標識名不一定要與可執(zhí)行程序名相同 Exec_file 可執(zhí)行程序名(包括路徑) Text_dir 指定外部程序的text目錄樹的全路徑 Startup 這里取dll(動態(tài)連接庫) Allow_stop 如設為TRUE,在Pro/ENGINEER工作時可以終止應用程序,如設為FALSE則不能終止應用程序 Delay_start 若設為TRUE, Pro/ENGINEER在啟動時不調用Pro/TOOLKIT應用程序,但可以手工啟動,若設為FALSE,則系

45、統(tǒng)將自動啟動。 Revision 指定Pro/TOOLKIT版本號 End 段結束標志 注意,將DELAY_START字段內容設為FALSE,這樣打開Pro/ENGINEER時使自動注冊運行該應用程序。即啟動Pro/ENGINEER后,自定義菜單使自動掛接到Pro/ENGINEER菜單條上。不必再手動注冊和運行。這樣,所創(chuàng)建的“通用件庫”菜單便如同Pro/ENGINEER菜單欄中的一項菜單,即當運行Pro/ENGINEER,“通用件庫”菜單項將自動連接上去。 第四章建立參數化模型庫 在使用CAD產品進行產品建模時,設計人員經常要選用標準件或者選擇通用件。若每次設計人員都需要重新對

46、這些零件進行造型,設計人員必然要做許多重復性的勞動。本課題所建模型庫包括螺栓,螺釘,螺母,螺柱,鍵,墊片,正齒輪,渦輪,蝸桿,等下面以六角螺栓為例詳細說明,其他源程序見附錄 4.1國家標準 六角螺栓  GB5782-86 M5 M6 M8 M10 M12 M14 M16 M18 M20 M24 螺栓長度≤125時的螺紋長度L 16+2.00 18+2.50 22+3.00 26+3.50 30+4.00 34+4.50 38+4.50 42+5.00 46+5.00 54+5.00 螺栓長度≥125 - ≤200時 L 22+

47、2.00 24+2.50 28+3.00 32+3.50 36+4.00 40+4.50 44+4.50 48+5.00 52+5.00 60+5.00 螺栓長度>200時 L 45+3.50 49+4.00 53+4.50 57+4.50 61+5.00 65+5.00 73+5.00 <此項長度允許全螺紋制造L 25.00 30.00 35.00 40.00 45.00 50.00 55.00 65.00 65.00 70.00 搓絲坯 (6g級) D MAX 4.42 5.30 7.10 8.90 10.7

48、0 12.55 14.55 16.20 18.20 MIN 4.38 5.25 7.05 8.85 10.65 12.50 14.50 16.15 18.15 粗桿直徑 D3 MAX 5.00 6.00 8.00 10.00 12.00 14.00 16.00 18.00 20.00 24.00 MIN 4.82 5.82 7.78 9.78 11.73 13.73 15.73 17.73 19.67 23.67 六角對邊 S MAX 8.00 10.00 13.00 16.00 18.00 21

49、.00 24.00 27.00 30.00 36.00 MIN 7.78 9.78 12.73 15.73 17.73 20.67 23.67 26.67 29.67 35.38 頭部直徑 H MAX 3.65 4.15 5.45 6.58 7.68 8.98 10.18 11.72 12.72 15.22 MIN 3.35 3.85 5.15 6.22 7.32 8.62 9.82 11.28 12.28 14.78 墊圈直徑 D2 MIN 6.90 8.90 11.60 14.60 16.60 19

50、.60 22.50 25.30 28.20 33.60 4.2參數化建模 拉伸,如下圖 圖4-1 圖4-2 螺栓如上 關系如上圖4-3 設置參數 圖4-4 4.3對話框的設計 下面以六角螺栓為例介紹說明螺栓對話框的創(chuàng)建全過程。 1. 新建對話框 如圖4-1 圖4-5 點擊新建按鈕出現下圖4-2 圖4-6 右鍵單擊屬性彈出如圖對話框彈出4-7 圖4-7 更改對話框名稱為“螺栓參數化設計” 如下圖4-4 圖4-8 向對話框中拖入控件 在dialog上右鍵,添加資源出現如下對話框4-9

51、 圖4-9 點擊導入圖片,整理對話框如下4-10 圖4-10 選中對話框單擊右鍵選擇“添加類”4-11 圖4-11 對話框添加完畢 2. 插入圖片 在資源視圖中右鍵,添加資源,導入圖片 如下圖所示 圖4-12 導入后的圖片都有唯一的圖片ID如下圖4-13 圖4-13 3. 完成對話框的設計 如圖4-8至4-12 螺釘參數化設計對話框4-8 螺栓參數化設計對話框4-9 鍵參數化設計4-10 雙頭螺柱參數化設計4-11 螺母參數化設計4-12 墊片

52、參數化設計4-13 4. 對話框的調用 先定義一個函數 當點擊菜單時會觸發(fā)這個函數 這個函數的內容是調用對應的對話框 具體實現過程如下 名稱Cboltdlg,在standard.cpp中添加如下程序段 // standard.cpp : 定義DLL 的初始化例程。 #include "stdafx.h" #include "standard.h" #include "Beardlg.h" #include "shimdlg.h" #include "Protoolkit.h" #include "user_tk_error.h" #inc

53、lude "pro_wchar_t.h" #include "ProMdl.h" #include "ProMenu.h" #include "ProMenuBar.h" #include "ProMessage.h" #include "ProNotify.h" #include "ProObjects.h" #include "ProUtil.h" #include "ProUiCmd.h" #include "TestError.h" #include "boltdlg.h" #include "keydlg.h" #include "Herringbone_ge

54、ardlg.h" #include "shaftdlg.h" #include "bevel_geardlg.h" #include "nutdlg.h" #include "nut_boltdlg.h" #include "wormdlg.h" #include "worm_geardlg.h" #include "spur_gear.h" #include "doublescrew_boltdlg.h" //spur_gear.h忘了dlg后綴了注意??! #ifdef _DEBUG #define new DEBUG_NEW #endif // //TODO:

55、如果此DLL 相對于MFC DLL 是動態(tài)鏈接的, // 則從此DLL 導出的任何調入 // MFC 的函數必須將AFX_MANAGE_STATE 宏添加到 // 該函數的最前面。 // // 例如: // // extern "C" BOOL PASCAL EXPORT ExportedFunction() // { // AFX_MANAGE_STATE(AfxGetStaticModuleState()); // // 此處為普通函數體 // } // // 此宏先于任何MFC 調用 // 出現在每個函數中十分重要。這意味著 //

56、 它必須作為函數中的第一個語句 // 出現,甚至先于所有對象變量聲明, // 這是因為它們的構造函數可能生成MFC // DLL 調用。 // // 有關其他詳細信息, // 請參閱MFC 技術說明33 和58。 // CstandardApp BEGIN_MESSAGE_MAP(CstandardApp, CWinApp) END_MESSAGE_MAP() void drawdoublescrew_bolt() { AFX_MANAGE_STATE(AfxGetStaticModuleState()); Cdoublescrew_boltd

57、lg dlg; dlg.DoModal(); } void drawshaft() { AFX_MANAGE_STATE(AfxGetStaticModuleState()); Cshaftdlg dlg; dlg.DoModal(); } void drawHerringbone_gear() { AFX_MANAGE_STATE(AfxGetStaticModuleState()); CHerringbone_geardlg dlg; dlg.DoModal(); } void drawshim()

58、 { AFX_MANAGE_STATE(AfxGetStaticModuleState()); Cshimdlg dlg; dlg.DoModal(); } void drawbolt() { AFX_MANAGE_STATE(AfxGetStaticModuleState()); Cboltdlg dlg; dlg.DoModal(); } void drawnut() { AFX_MANAGE_STATE(AfxGetStaticModuleState()); Cnutdlg dlg;

59、dlg.DoModal(); } void drawkey() { AFX_MANAGE_STATE(AfxGetStaticModuleState()); Ckeydlg dlg; dlg.DoModal(); } void drawworm_gear() { AFX_MANAGE_STATE(AfxGetStaticModuleState()); Cworm_geardlg dlg; dlg.DoModal(); } void drawworm() { AFX_MANAGE_STATE(AfxGetStati

60、cModuleState()); Cwormdlg dlg; dlg.DoModal(); } void drawnut_bolt() { AFX_MANAGE_STATE(AfxGetStaticModuleState()); Cnut_boltdlg dlg; dlg.DoModal(); } void drawbevel_gear() { AFX_MANAGE_STATE(AfxGetStaticModuleState()); Cbevel_geardlg dlg; dlg.DoMod

61、al(); } void drawspur_gear() { AFX_MANAGE_STATE(AfxGetStaticModuleState()); Cspur_gear dlg; dlg.DoModal(); } // CstandardApp 構造 CstandardApp::CstandardApp() { // TODO: 在此處添加構造代碼, // 將所有重要的初始化放置在InitInstance 中 } // 唯一的一個CstandardApp 對象 CstandardApp theApp; // Cstandard

62、App 初始化 BOOL CstandardApp::InitInstance() { CWinApp::InitInstance(); return TRUE; } //定義菜單的可訪問性 static uiCmdAccessState AccessDefault(uiCmdAccessMode access_mode) { return (ACCESS_AVAILABLE); } //========================================= //函數:user_initialize() //功能:用戶初始化函數 //====

63、===================================== extern "C" int user_initialize() { ProError status; ProName msgfile; uiCmdCmdId cmd_id1, cmd_id2,cmd_id3,cmd_id4,cmd_id5,cmd_id6,cmd_id7,cmd_id8,cmd_id9,cmd_id10,cmd_id11,cmd_id12; //在Help菜單的左邊添加“標準件庫” //設置信息文件名稱 ProStringToWstring(msgfile,"stan

64、dard.txt"); //在菜單欄上help左側添加新菜單GearMenu status = ProMenubarMenuAdd("標準件庫菜單", "StandardPartLibDesign","Help", PRO_B_FALSE, msgfile); //主菜單 //在菜單欄 ProMenubarmenuMenuAdd("標準件庫菜單","SubMenu1","SubMenu1",NULL,PRO_B_TRUE,msgfile); ProMenubarmenuMenuAdd("標準件庫菜單","SubMenu2","SubMenu2",NU

65、LL,PRO_B_TRUE,msgfile); ProMenubarmenuMenuAdd("SubMenu1","SubMenu3","SubMenu3",NULL,PRO_B_TRUE,msgfile); //設置按鈕命令 ProCmdActionAdd("命令一",(uiCmdCmdActFn)drawdoublescrew_bolt,uiCmdPrioDefault,AccessDefault,PRO_B_TRUE,PRO_B_TRUE,&cmd_id1); ProCmdActionAdd("命令二",(uiCmdCmdActFn)drawshim,uiC

66、mdPrioDefault,AccessDefault,PRO_B_TRUE,PRO_B_TRUE,&cmd_id2); ProCmdActionAdd("命令三",(uiCmdCmdActFn)drawbolt,uiCmdPrioDefault,AccessDefault,PRO_B_TRUE,PRO_B_TRUE,&cmd_id3); ProCmdActionAdd("命令四",(uiCmdCmdActFn)drawnut,uiCmdPrioDefault,AccessDefault,PRO_B_TRUE,PRO_B_TRUE,&cmd_id4); ProCmdActionAdd("命令五",(uiCmdCmdActFn)drawkey,uiCmdPrioDefault,AccessDefault,PRO_B_TRUE,PRO_B_TRUE,&cmd_id5); ProCmdActionAdd("命令六",(uiCmdCmdActFn)drawnut_bolt,uiCmdPrioDefault,AccessDefault,PRO_B

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

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網版權所有   聯系電話:18123376007

備案號:ICP2024067431-1 川公網安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對上載內容本身不做任何修改或編輯。若文檔所含內容侵犯了您的版權或隱私,請立即通知裝配圖網,我們立即給予刪除!