基于ProE二次開發(fā)的端蓋參數(shù)化模型的實現(xiàn)_第1頁
基于ProE二次開發(fā)的端蓋參數(shù)化模型的實現(xiàn)_第2頁
基于ProE二次開發(fā)的端蓋參數(shù)化模型的實現(xiàn)_第3頁
基于ProE二次開發(fā)的端蓋參數(shù)化模型的實現(xiàn)_第4頁
基于ProE二次開發(fā)的端蓋參數(shù)化模型的實現(xiàn)_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、基于Pro/E二次開發(fā)的端蓋參數(shù)化模型【摘要】 : CAD技術在機械設計中發(fā)揮著越來越重要的作用。 3D實體模型比2D圖形更直觀、更全面地反映設計意圖,在3D模型的基礎上,可以進行零件裝配、干涉檢查、有限元分析、運動分析等高級計算機輔助設計工作。執(zhí)行。三維設計廣泛用于機械設計。目前,Pro/E在國內(nèi)的應用越來越普及,二次開發(fā)嚴重滯后。因此,二次開發(fā)是非常必要的。由于某些原因,未上傳完整的畢業(yè)設計(完整的應包括畢業(yè)設計說明書、相關圖紙CAD/PROE、中英文文獻及翻譯等),本文檔也略刪了部分內(nèi)容(目錄及部分重點內(nèi)容) 需要的朋友請聯(lián)系我的敲鍵:2215891151介紹了其二次開發(fā)工具Pro/TO

2、OLKIT ,并以法蘭端蓋為例,詳細討論了Pro / Toolkit在開發(fā)菜單和對話框即UI對話框中的應用,以及如何在VC+環(huán)境下編譯。 C語言程序激活和調(diào)用對話框界面,設計了更加友好透明的用戶界面,方便快捷地實現(xiàn)端蓋的參數(shù)化設計和修改,準確再現(xiàn)了新的實體模型。關鍵詞: Pro/ENGINEER、Visual C+、 HYPERLINK javascript:GJCSearch(Pro/TOOLKIT); Pro/TOOLKIT 、 HYPERLINK javascript:GJCSearch(二次開發(fā)); 二次開發(fā)、端蓋第一章緒論1.1三維CAD技術隨著計算機的快速發(fā)展,設計和生產(chǎn)方法每天都

3、在發(fā)生巨大變化。許多以前只能手工完成的任務,通過計算機逐漸變得更加高效和精確。這種利用計算機實現(xiàn)高效率、高精度,實現(xiàn)設計、生產(chǎn)和分析計算的自動化的方法,稱為CAD(Computer Aided Design,計算機輔助設計)。 CAD是指使用計算機硬件和軟件的設計活動。從根本上改變了以往手工繪制、出圖、組織生產(chǎn)全過程的技術管理方式,以統(tǒng)一的產(chǎn)品數(shù)據(jù)庫為核心。交互式產(chǎn)品設計、分析、制造和維護過程。它的快速發(fā)展和廣泛應用為工程設計制造行業(yè)帶來了生機,對傳統(tǒng)的產(chǎn)品設計方法和生產(chǎn)組織模式產(chǎn)生了深刻的改變。1.1.1CAD技術的發(fā)展CAD 技術始于 1950 年代后期。自計算機問世以來,人們不斷地將計算

4、機技術引入機械設計和制造領域。因為它順應了生產(chǎn)力的發(fā)展,所以出現(xiàn)后發(fā)展迅速。 CAD技術經(jīng)歷了四大飛躍:曲面造型系統(tǒng)、實體造型技術、參數(shù)化技術、變量化技術。(1) 曲面造型系統(tǒng)1970 年代是飛機和汽車工業(yè)的蓬勃發(fā)展時期。在此期間,飛機和汽車的制造中遇到了大量的自由曲面問題。這時,法國人提出了貝塞爾算法。法國達索飛機制造公司的開發(fā)者使用該算法,在二維繪圖系統(tǒng)的基礎上開發(fā)了該算法。開發(fā)了一種以曲面模型為特征的自由曲面建模方法,并介紹了三維曲面建模系統(tǒng)CATIA。(2) 實體造型技術曲面模型基本解決了CAM的問題,但由于曲面模型技術只能表達物體的曲面信息,難以準確表達零件的質(zhì)量、重心、轉(zhuǎn)動慣量等其

5、他特性上。在探索CAD集成技術發(fā)展的基礎上,1979年,國家發(fā)展研究中心發(fā)布了世界上第一個完全基于實體造型技術的大型CAD軟件I-DEAS。給設計帶來極大的方便。(3) 參數(shù)化技術當實體建模技術在CAD系統(tǒng)中得到廣泛應用時,出現(xiàn)了一種比無約束自由建模更好的算法參數(shù)化實體建模方法。其主要特點是:基于特征、全尺寸約束、全數(shù)據(jù)關聯(lián)和尺寸驅(qū)動的設計修改。參數(shù)化技術徹底克服了自由和沉默的無約束狀態(tài),以尺寸決定實體造型的幾何形狀。尺寸驅(qū)動已成為當今造型系統(tǒng)的基本特征。如果要修改零件的形狀,只需要修改size的值就可以改變形狀。這個新想法首先在 PTC(參數(shù)技術公司)的軟件 PRO/ENGINEER 中成為

6、現(xiàn)實。由于參數(shù)化技術的成功應用,它迅速成為CAD行業(yè)的標準,許多軟件廠商都在追趕。(4) 可變技術變量建模技術保留了參數(shù)化技術基于特征、全數(shù)據(jù)關聯(lián)、尺寸驅(qū)動設計修改的優(yōu)點,但在約束的定義上做了一定的改變。變分建模技術將需要定義的尺寸“參數(shù)”進一步區(qū)分為形狀約束和尺寸約束,而不是僅僅用尺寸約束整個幾何。通常在新產(chǎn)品開發(fā)的概念設計階段,設計師首先考慮設計思想和概念,并將其體現(xiàn)在一定的幾何形狀中。但這些幾何形狀嚴格的尺寸定位關系在設計初期并不能完全確定,因此希望在設計初期就內(nèi)容存在欠維約束。事實上,參數(shù)化技術和可變技術已經(jīng)成為當今主流CAD軟件的兩大流派。兩種建模理論相互依存,共同發(fā)展。我國引進CA

7、D技術是從1960年代開始的,首先是從航空業(yè)開始的。近年來發(fā)展迅速,在機械、電子、建筑、汽車、服裝等行業(yè)逐漸進入實用階段。1.2項目背景及意義Pro/ENGINEER是美國PTC ( Parametric Technology Corporation)于1988年開發(fā)的參數(shù)化設計系統(tǒng),是一套從設計到生產(chǎn)的機械自動化軟件。參數(shù)化設計是用參數(shù)來描述零件尺寸的設計,在修改設計時通過修改參數(shù)的值來改變零件的形狀。 Pro/ENGINEER與僅提供繪圖工具的傳統(tǒng)CAD系統(tǒng)有很大不同。提供一整套機械產(chǎn)品解決方案,包括機械設計、鈑金設計、機械加工制造、機理分析、有限元分析等,大大提高了產(chǎn)品的設計效率,使產(chǎn)品

8、在前期更加靈活設計,并保證未來根據(jù)系統(tǒng)要求進行相應的更改和計算;在產(chǎn)品的生產(chǎn)階段可以方便地與加工中心進行數(shù)據(jù)連接。Pro/ENGINEER如下: 3D實體模型、單一數(shù)據(jù)庫、以特征為設計單元、參數(shù)化設計、數(shù)據(jù)管理(Data Management) 、裝配管理(Assemble Management) 、工程數(shù)據(jù)庫重用(Engineering Data Reuse) 、易用性(EaseofUse ) ) 、硬件獨立(Hardware Independence ) 。由于Pro/ENGINEER功能強大且具有通用性,但是由于Pro/ENGINEER軟件的通用性,不方便進行具體的產(chǎn)品設計。對于系列化產(chǎn)

9、品,可以通過提取關鍵參數(shù)值,根據(jù)設計規(guī)則計算尺寸值,并將其傳遞給下級零件和子組件來自動構(gòu)建模型。為了使Pro/ENGINEER軟件能夠最大限度地發(fā)揮其潛力并在特定企業(yè)單元的特定產(chǎn)品設計中創(chuàng)造效益,需要重新開發(fā)Pro/ENGINEER 。也就是說,二次開發(fā)是為了進一步豐富Pro/ENGINEER。 ,完全的。由于以上原因,有必要使用Pro/TOOLKIT工具箱和VC +開發(fā)一個簡單的端蓋。1.3 應用開發(fā)工具系統(tǒng)程序模塊的設計選擇Visual C+6.0作為開發(fā)平臺。 Visual C+6.0是運行在Windows上的交互式可視化集成開發(fā)環(huán)境,是美國微軟Visual Studio的一部分。與其他

10、可視化開發(fā)環(huán)境一樣,Visual C+ 6.0集程序代碼編輯、編譯、連接和調(diào)試于一體,為程序員提供了完整便捷的開發(fā)界面和眾多有效的輔助開發(fā)工具。 VC+6.0的應用程序向?qū)Вˋpp Wizard)可以為大部分類型的程序提供框架代碼,用戶不需要編寫代碼,只需幾個按鈕就可以生成一個完整的可以運行的程序。在Pro/TOOLKIT中, PTC為用戶提供了大量的C語言函數(shù)庫,函數(shù)采用面向?qū)ο蟮娘L格。通過調(diào)用這些底層函數(shù),用戶可以方便、安全地訪問Pro/ENGINEER數(shù)據(jù)庫和部門應用程序,進行二次開發(fā),擴展一些特定的功能。本課題主要研究內(nèi)容本課題的主要研究內(nèi)容是端蓋的開發(fā)與設計。用戶選擇不同的款式后,應

11、用程序可以在基本款上自動生成相應的端蓋。具體工作包括:(1) Pro/TOOLKIT的基本特性和基本數(shù)據(jù)結(jié)構(gòu)研究。分析Pro/TOOLKIT的基本數(shù)據(jù)結(jié)構(gòu)、功能及用法;討論 Pro/TOOLKIT 中一些基本的自定義對象。(2) 用戶界面設計。研究菜單信息文件,制作端蓋的菜單界面;研究對話框資源文件,創(chuàng)建主對話框,在主對話框中彈出自定義對話框;研究Pro/TOOLKIT與Visual C+6.0的接口技術;在 VC 中制作 Pro/TOOLKIT 用戶界面。(3)參數(shù)化建模研究。 Pro/ENGINEER軟件對每個模型都有一個主要的設計步驟和參數(shù)列表,所以需要先繪制3D模型,并確定參數(shù)列表;修

12、改端蓋模型參數(shù)值,生成零件等功能。第二章Pro/TOOLKIT二次開發(fā)基礎理論2.1 Pro/TOOLKIT的基礎知識2.1.1 Pro/TOOLKIT簡介Pro/TOOLKIT是PTC為Pro/ENGINEER 軟件提供的定制開發(fā)工具箱。該工具箱為用戶程序和第三方程序提供與 Pro/ENGINEER 的無縫連接。用戶程序或第三方程序是用C語言編寫的。 Pro/TOOLKIT提供C 語言的函數(shù)庫,使用戶或第三方應用程序能夠以受控和安全的方式訪問 Pro/ENGINEER 數(shù)據(jù)庫和應用程序。用戶或第三方可以通過C程序代碼擴展Pro/ENGINEER系統(tǒng)的功能,開發(fā)基于Pro/ENGINEER系統(tǒng)

13、的應用模塊,以滿足用戶的特殊要求。 Pro/TOOLKIT是以強大的面向?qū)ο蟮姆绞骄帉懙摹R虼?,用于在Pro/ENGINEER和應用程序之間傳遞信息的數(shù)據(jù)結(jié)構(gòu)對應用程序是不可見的,而只能通過Pro/TOOLKIT中的函數(shù)訪問。 Pro/Toolkit支持在windows2000NT/XP操作系統(tǒng)下使用C和C+語言設計程序,在Microsoft Visual C+ 6.0集成環(huán)境下完成程序設計、調(diào)試和編譯。2.1.2 Pro/TOOLKIT的工作模式Pro/TOOLKIT有兩種工作模式,即同步模式和異步模式。同步模式分為兩種模式,一種是標準使用模式,即DLL模式。 Pro/TOOLKIT應用程序

14、與Pro/ENGINEER的集成是通過 DLL 模式實現(xiàn)的。在 DLL 模式下,通過編譯和鏈接Pro/TOOLKIT的 C 代碼,生成一個目標文件,該文件在 Pro/ENGINEER啟動時與 Pro集成。 /ENGINEER鏈接在一起,就像Pro/ENGINEER本身的程序一樣; Pro/TOOLKIT應用程序和Pro/ENGINEER之間的信息交換是直接通過函數(shù)調(diào)用來實現(xiàn)的。另一種模式是多進程模式。異步模式分為簡單異步模式和完全異步模式。通過菜單對話框向Pro/ENGINEER致消息,采用同步 DLL 模式。2.1.3 Pro/TOOLKIT對象和動作Pro/TOOLKIT采用面向?qū)ο蟮木幊?/p>

15、方法。對象和動作是Pro/TOOLKIT 中最基本的概念。Pro /T OO LKIT本質(zhì)上是一種結(jié)構(gòu)類型的數(shù)據(jù),結(jié)構(gòu)中的成員描述了對象的屬性。所有對象的命名約定為Pro+ ,其中對象名用英文單詞表示,首字母大寫,如ProFeature( feature object ) 。執(zhí)行的特定操作稱為動作,動作的執(zhí)行是通過調(diào)用Pro/TOOLKIT函數(shù)庫提供的C函數(shù)來實現(xiàn)的。與動作相關的Pro/TOOLKIT函數(shù)名稱約定是:Pro+ 。需要特別注意Pro/TOOLKIT函數(shù)的參數(shù)規(guī)則,指定為:Pro Function (參數(shù)1,參數(shù)2 ,參數(shù)3) ,其中第一個參數(shù)用于標識對象(通常是ID值) , 輸入

16、參數(shù)在輸出參數(shù)之前。2.1.4對象句柄每個Pro/TOOLKIT對象對應一個結(jié)構(gòu),定義結(jié)構(gòu)類型的特定結(jié)構(gòu)變量稱為對象句柄。根據(jù)對象句柄的定義和用法分為兩種:Ohandle(OpaqueHandle ,非透明句柄)和DHandle(DatabaseHandle,數(shù)據(jù)結(jié)構(gòu)句柄) 。句柄(OpaqueHandle)是使用Pro/ENGINEER數(shù)據(jù)結(jié)構(gòu)的存儲地址來引用Pro/ENGINEER對象,這是最簡單的方法。使用非透明句柄的Pro/TOOLKIT應用程序只能獲取對象的存儲地址,而不能訪問結(jié)構(gòu)的特定成員。目的是防止PIDITOOLKIT應用程序訪問結(jié)構(gòu)的成員。它的特點是使用簡單高效,缺點是它是可

17、變的,因為它是一個存儲指針。數(shù)據(jù)結(jié)構(gòu)句柄(DatabaseH andle)可以訪問對象結(jié)構(gòu)的特定成員。數(shù)據(jù)結(jié)構(gòu)句柄是一個非常清晰的數(shù)據(jù)結(jié)構(gòu),它包含了足夠多的信息包括類型、整數(shù)標識符和它所屬模型的句柄。由于數(shù)據(jù)結(jié)構(gòu)句柄包含至少一個整數(shù)標識符,因此具有穩(wěn)定不變的優(yōu)勢。當使用Pro/TOOLKIT在Pro/ENGINEER中創(chuàng)建包含大量信息的對象時,必須先建立與該對象有關的所有相關信息,然后將該對象添加到Pro/ENGINEER數(shù)據(jù)庫中,這一點非常重要。但是,使用面向?qū)ο蠹夹g的Pro/TOOLKIT不內(nèi)容直接訪問這些結(jié)構(gòu)的內(nèi)容。2.1.5 Pro/TOOLKIT函數(shù)返回值大多數(shù)Pro/TOOLKIT

18、函數(shù)是 ProError,用于指示調(diào)用函數(shù)的執(zhí)行狀態(tài)。最常用的返回值是PRO_TK_NO_ERROR,表示函數(shù)調(diào)用成功。在程序中,檢查函數(shù)的返回值不僅在調(diào)試時容易發(fā)現(xiàn)錯誤,更重要的是可以避免執(zhí)行過程中出現(xiàn)異常情況,提高程序的可靠性。2.2 創(chuàng)建Pro/TOOLKIT應用程序的基本方法創(chuàng)建基本方法;使用 Make 文件創(chuàng)建Pro/TOOLKIT應用程序;使用 VC 向?qū)?chuàng)建Pro/TOOLKIT應用程序。Pro/TOOLKIT應用程序采用Make文件方式,必須手動修改make文件,不方便設置和調(diào)試程序,也不能充分利用VC資源。所以本課題使用VC 向?qū)韯?chuàng)建Pro/TOOLKIT應用程序。在 Vi

19、sual C+6.0 環(huán)境中新建一個 dll 項目。(1) 進入Visual C+6.0集成開發(fā)環(huán)境,選擇“File/New. ”選項,啟動“New ”對話框。在“新建”對話框中,選擇“項目”選項卡并選擇 MFC AppWizard (dll) 項。在“項目名稱”中輸入項目文件名,在“位置”輸入框中輸入路徑。單擊確定按鈕。(2) 在“MFC AppWizard”對話框中,選擇“Regular DLL using shared MFC DLL”單選框,使 Pro/TOOLKIT 應用程序使用共享 MFC。點擊Finish按鈕,進入New Project Information窗口后,點擊OK按鈕

20、,完成工程文件框架的建立。(3)選擇FileView,打開VC應用程序向?qū)?,自動生成程序文件。VC 應用程序設計向?qū)詣釉?FileView 中添加 ReadMe.txt、StdAfx.cpp 和以項目文件名為前綴的 cpp 資源文件、def 模塊定義文件和 rc 資源文件。如下圖2.1所示:圖2.1 VC文件示意圖2.3 Pro/TOOLKIT信息文件的創(chuàng)建信息文件是用于定義菜單項、菜單項提示等信息的ASCII碼文件,可以用Word記事本、寫字板等文字處理軟件創(chuàng)建,也可以在VC的集成開發(fā)環(huán)境中創(chuàng)建,但必須是純文本。格式和信息文件以四個為一組進行分組。它們的含義如下:Pro/ENGINEER

21、系統(tǒng)可以識別的關鍵字,關鍵字必須與信息文件函數(shù)中的相關字符串一致。第二行:菜單項或菜單項提示上顯示的英文文本。第三行:翻譯成另一種語言或為空。第四行:當前Pro/ENGINEER版本為空。其中,第二行和第四行的語言顯示取決于系統(tǒng)環(huán)境變量lang的設置。同時,信息文件必須位于 text 或 text 文件夾中。 為chinese-cn時,信息為中文,如果為usascii,信息為英文。因此,可以通過系統(tǒng)的環(huán)境變量來控制顯示的語言,而無需修改程序。2.4 編譯和鏈接設置設置包含文件路徑,添加“PROTOOLKITINCLUDES”;設置庫文件路徑,添加“PROTOOLKITI486_NTOBJ”;設

22、置連接所需的庫文件,添加“mpr.lib protk_dll.lib”兩個庫文件;在菜單“Project/Settings”的“Link”選項頁面設置強制文件輸出,即選擇“Force file output”選項。2.5 編譯注冊文件并運行應用程序2.5.1 準備注冊文件運行Pro/TOOLKIT應用程序,您必須先注冊它。注冊文件的作用是將應用程序信息傳輸?shù)絇ro/ENGINEER 系統(tǒng)。一般只能選擇 Name EXEC_FILE TEXT_DIR STARTUP ALLOW_STOP REVISION 和 END。保存注冊文件時,使用擴展名 .dat。建立端蓋的注冊文件如圖2.2所示:圖 2

23、.2 端蓋注冊文件示意圖2.5.2 運行應用程序1 注冊操作分為自動注冊和手動注冊。端蓋采用自動注冊,注冊文件名為“Protk.dat”。該文件位于由Pro/ENGINEER 的起始位置設置的目錄中。它的注冊文件將 DELAY_START 的值設置為 FALSE,并且應用程序自動運行。2卸載應用程序。將注冊文件中的 ALLOW_STOP 設置為 TRUE 以手動終止操作。如果應用程序啟動失敗,您可以選擇信息按鈕以顯示有關應用程序注冊的信息,以便您找出錯誤原因。第三章用戶界面設計Pro/ENGINEER可以利用Pro/TOOLKIT提供的菜單UI對話框和VC的可視化界面技術,設計出方便實用的人機

24、交互界面,從而大大提高系統(tǒng)的效率。在設計人機界面時,盡量使操作自然、簡單、快捷。3.1 菜單設計菜單是Pro/ENGINEER 的主要用戶界面。 Pro/TOOLKIT提供了一系列菜單操作功能,內(nèi)容應用程序創(chuàng)建和管理菜單。在使用Pro/TOOLKIT 開發(fā)Pro/ENGINEER 的過程中,添加自定義菜單是最常用的技術。 Pro/ENGINEER界面上菜單的生成代表動態(tài)庫加載成功,是后續(xù)工作的基礎。3.1.1 向菜單欄添加菜單欄Pro/ENGINEER是一個不斷開發(fā)和更新的軟件。一個版本中的某些菜單在另一個版本中可能不可用。因此,如果用戶自定義的菜單依賴于某個菜單欄,則很有可能在其他版本中無法

25、使用。正常使用。這樣,只能修改應用程序以適應這種變化,其軟件的通用性較差。因此,決定在Pro/ENGINEER界面中添加一個新的菜單欄。Pro/ENGINEER 菜單系統(tǒng)的頂級菜單。它是通過直接調(diào)用 ProMenubarMenuAdd() 函數(shù)將所需菜單添加到 Pro/ENGINEER 來創(chuàng)建的。要實現(xiàn)該功能的功能,必須將按鈕和命令捆綁在 Pro/ENGINEER 中。一起。該命令調(diào)用一個函數(shù)來實現(xiàn)按鈕功能。在Pro/TOOLKIT中,完成命令添加的函數(shù)是 ProCmdAction(),函數(shù)調(diào)用成功返回 PRO_TK_NO_ERROR(0),否則返回 PRO_TK_GENERAL_ERROR(

26、-1)。3.1.2 向菜單欄添加子菜單端蓋分為嵌入式蓋、嵌入式通蓋、法蘭蓋和法蘭通蓋,不可能為每個創(chuàng)建一個菜單欄。因此,必須增加子菜單,以達到建立自然便捷界面的目的。調(diào)用ProMenubarmenuMenuAdd ()函數(shù),在該菜單下添加菜單項。3.1.3端蓋菜單設計插入一個菜單欄( UserMenu ),并在其下添加一個子菜單( SubMenu )“End Cap”。在子菜單下創(chuàng)建四個菜單按鈕: PushButton1嵌入封面, PushButton2嵌入透明封面, PushButton3 有翻邊封面, PushButton4 有翻邊透明封面。創(chuàng)建的程序列表如下:/*= = =*功能:用戶初

27、始化()*= = =*/extern C int user_initialize()ProError 狀態(tài);ProFileName MsgFile;uiCmdCmdIdPushButton_cmd_id1,PushButton_cmd_id2,PushButton_cmd_id3,PushButton_cmd_id4;ProStringToWstring(MsgFile, Message.txt);/設置菜單消息文件名/*= = =*添加菜單欄*= = =*/status=ProMenubarMenuAdd (UserMenuBar, UserMenu,“實用程序”,PRO_B_TRUE,Ms

28、gFile);/*= = =*菜單欄的子菜單設置*= = =*/添加子菜單項ProMenubarmenuMenuAdd(UserMenuBar, SubMenu, SubMenu,NULL,PRO_B_TRUE,MsgFile);/設置菜單按鈕的動作功能ProCmdActionAdd(PushButtonAct1,(uiCmdCmdActFn)Duangai1Fn,uiCmdPrioDefault,AccessAvailable,PRO_B_TRUE,PRO_B_TRUE,&PushButton_cmd_id1);/添加菜單按鈕ProMenubarmenuPushbuttonAdd(SubMe

29、nu, PushButton1, PushButton1,向 ProE 菜單欄添加按鈕, NULL,PRO_B_TRUE, PushButton_cmd_id1, MsgFile);/設置菜單按鈕的動作功能ProCmdActionAdd(PushButtonAct2,(uiCmdCmdActFn)Duangai2Fn,uiCmdPrioDefault,AccessAvailable,PRO_B_TRUE,PRO_B_TRUE,&PushButton_cmd_id2);/添加菜單按鈕ProMenubarmenuPushbuttonAdd(SubMenu,PushButton2,PushButto

30、n2,向 ProE 菜單欄添加另一個按鈕,NULL,PRO_B_TRUE, PushButton_cmd_id2, MsgFile);/設置菜單按鈕的動作功能ProCmdActionAdd(PushButtonAct3,(uiCmdCmdActFn)Duangai3Fn,uiCmdPrioDefault,AccessAvailable,PRO_B_TRUE,PRO_B_TRUE,&PushButton_cmd_id3);/添加菜單按鈕ProMenubarmenuPushbuttonAdd(SubMenu,PushButton3,PushButton3,將第三個按鈕添加到 ProE 菜單欄,NU

31、LL,PRO_B_TRUE, PushButton_cmd_id3, MsgFile);/設置菜單按鈕的動作功能ProCmdActionAdd(PushButtonAct4,(uiCmdCmdActFn)Duangai4Fn,uiCmdPrioDefault,AccessAvailable,PRO_B_TRUE,PRO_B_TRUE,&PushButton_cmd_id4);/添加菜單按鈕ProMenubarmenuPushbuttonAdd(SubMenu,PushButton4, PushButton4,將第四個按鈕添加到 ProE 菜單欄, NULL,PRO_B_TRUE, PushBu

32、tton_cmd_id4, MsgFile);返回狀態(tài);/*= = =*功能:用戶終止()*= = =*/外部“C”無效用戶終止()AFX_MANAGE_STATE(AfxGetStaticModuleState();/*= = =*FUNCTION:AccessAvailable(菜單項的訪問權限設置:可選)*= = =*/靜態(tài) uiCmdAccessState AccessAvailable (uiCmdAccessMode access_mode)返回(ACCESS_AVAILABLE);建立端蓋的菜單信息文件(中文版)如下:子菜單子菜單端蓋#按鈕1按鈕1嵌入式蓋板#向 ProE 菜單欄

33、添加按鈕向 ProE 菜單欄添加按鈕嵌合封口#按鈕2按鈕2插圖透明度#向 ProE 菜單欄添加另一個按鈕向 ProE 菜單欄添加另一個按鈕插圖透明度#按鈕3按鈕3凸邊#將第三個按鈕添加到 ProE 菜單欄將第三個按鈕添加到 ProE 菜單欄凸邊#按鈕4按鈕4凸邊#將第四個按鈕添加到 ProE 菜單欄將第四個按鈕添加到 ProE 菜單欄法蘭通過蓋#創(chuàng)建如圖 3.1 所示的端蓋菜單:圖 3.1 模型菜單圖3.2 對話框的設計彈出對話框是目前最先進、最流行的人機交互方式。它可以提供圖文并存的視覺環(huán)境,使操作更自然、更快捷。在設計Pro/TOOLKIT程序時,創(chuàng)建對話框有兩種方式,一種是通過VC提供的

34、MFC可視化對話框設計技術,另一種是通過Pro/TOOLKIT提供的User Interface Dialog Boxes。 ,稱為 UI 對話框)。3.2.1 MFC 對話框MFC是VC+程序的重要軟件資源,為Windows應用程序的開發(fā)提供了強有力的支持。使用MFC可以實現(xiàn)程序界面的可視化設計。 MFC對話框作為一種窗口,具有窗口的所有功能。與UI對話框相比,MFC對話框界面布局更易于使用,更易于設計和調(diào)試。但它建立的對話框與Pro/ENGINEER的風格不同,不利于用戶的操作。3.2.2 用戶界面對話框利用UI對話框技術,可以在Pro/TOOLKIT應用程序中設計出與Pro/ENGINE

35、ER系統(tǒng)中對話框風格相似的人機交互界面??刂瞥绦蛴肅或C+語言編寫,用于在Pro/ENGINEER環(huán)境中加載對話框資源、顯示對話框、設置動作和退出對話框。 UI對話框的設計主要涉及兩個方面:一是根據(jù)界面布局編寫資源文件;另一種是為UI對話框的功能編寫相應的控制程序。1.資源文件資源文件是定義和描述 UI 對話框的外觀和屬性的文本文件。主要包括UI對話框(組件)或控件的組件,各個組件的屬性定義和組件的布局。編寫資源文件時,應注意以下幾點:(1)區(qū)分大小寫; (2) 括號必須成對; (3) 對話框名稱應與資源文件名相同; (4)“! ”后面的內(nèi)容是注釋部分,對對話框的定義沒有影響; (5) 資源文

36、件可以用任何支持純文本格式的文字處理軟件,如Word、寫字板或記事本,也可以用VC應用程序編程向?qū)Ь帉?。無論使用哪種方法,都必須以純文本格式保存,擴展名為 .res。將其保存在工作目錄中創(chuàng)建的 VC 程序的 Release/text/resource 子目錄中。其中 取決于當前使用的語言(chinese_cn 或 usascii)。資源文件的結(jié)構(gòu)如下:(對話(組件.)(資源.)Dialog是頂層語句,下面主要由兩部分組成。組件部分(Components)聲明了對話框的所有組件,資源部分(Resource)分為定義每個組件的屬性和布局。資源文件只是 UI 對話框的描述,它必須由 Pro/TOOL

37、KIT 應用程序加載、顯示和控制。它分為兩部分:創(chuàng)建和終止。創(chuàng)建對話框的過程如下:(1)調(diào)用ProUIDialogCreate()函數(shù)加載資源文件;(2)調(diào)用對話框部分的動作函數(shù),設置指定組件的動作函數(shù);(3)調(diào)用ProUIDialogActivate()函數(shù)顯示并激活對話框;(4)調(diào)用ProUIDialogDestroy()函數(shù)清除對話框資源。這四個步驟是創(chuàng)建 UI 對話框的最基本步驟。第二步可以實現(xiàn)數(shù)據(jù)調(diào)用。其動作設置功能與元素類型有關。其主要目的是設置用戶在對話框界面上操作某個元素時調(diào)用的動作函數(shù)。完成這四個步驟后,可以通過調(diào)用 ProUIDialogExit() 函數(shù)來終止 UI 對話

38、框。3.3 端蓋對話框設計3.3.1 構(gòu)想1. 在主對話框中添加以下組件。(1)Label1和Label1.1標簽用于提示圖形。 Lable1的圖形顯示部分圖形,直接從3D模型中獲取。 Label1.1 顯示了設計參數(shù)與尺寸的對應關系。圖形直接從3D模型中獲得。在圖形軟件中添加尺寸線和參數(shù)名稱后,轉(zhuǎn)換為UI對話框支持的GIF格式(保存在資源子目錄中)。 Label1 的圖形命名為 Duangai3.gif,Label1.1 的圖形命名為 Duangai3_1.gif。(2)Label2標簽,用于顯示參數(shù)名稱,命名規(guī)則為:設計參數(shù)名稱_標簽。(3) 分隔分隔符(4) PushButton1 按鈕

39、,用于生成模型。(5) PushButton2 按鈕,用于退出對話框。(6) 自定義對話框設計的 PushButton3 按鈕。(7) InputPanel輸入框,用來表示參數(shù)值,命名規(guī)則為:設計參數(shù)名_Value。其中兩個按鈕通過分隔線與其他按鈕分開。2. 在自定義對話框中添加以下組件。(1)Label1.1與主對話框的設置相同。(2)Label2標簽,用于顯示參數(shù)名稱,命名規(guī)則為:設計參數(shù)名稱_標簽。(3) 分隔分隔符(4) PushButton1 按鈕,用于生成模型。(5) PushButton2 按鈕,用于退出對話框。(6) InputPanel輸入框用于表示參數(shù)值。命名規(guī)則為:設計參

40、數(shù)名稱_Value。3.3.2 創(chuàng)建方法創(chuàng)建方法是:編寫一個資源文件,文件擴展名為.res,以純文本格式保存在注冊文件中TEXT_DIR字段指定的目錄下的子目錄resource中。調(diào)用ProUIDialogCreate ()函數(shù)將資源文件加載到存儲中;調(diào)用ProUIPushbuttonActivateActionSet ()函數(shù)設置按鈕動作;調(diào)用ProUIDialogActivate () 函數(shù)顯示和激活對話框;調(diào)用ProUIDialogDestroy () 函數(shù)從存儲中清除對話資源;調(diào)用ParamsList()顯示模型的設計參數(shù);調(diào)用ParamGetAndShow()從零件模型中獲取參數(shù)值并

41、顯示在相應的輸入框中;調(diào)用 ParamUpdate() 來更新參數(shù)值。創(chuàng)建一個函數(shù)原型為:ProError ProUIDialogCreate (char*dialog_namechar*資源)ProErrorProUIDialogActivate (char*dialog_name詮釋*狀態(tài))ProErrorProUIDialogDestroy (char* dialog_name )3 End Cap 資源文件以法蘭蓋為例,主框架資源文件如下:!資源文件:Duangai3.res(對話 Duangai3(組件!對話框組件聲明(標簽圖像1)(標簽圖像2)(子布局布局1)(分隔符分隔符 1)(

42、按鈕更新 3)(按鈕取消))(資源!對話框資源(屬性定義)(Image1.Bitmap Duangai3.1.gif) !零件尺寸與參數(shù)對應圖(Image1.TopOffset10)(Image1.LeftOffset4)(Image1.RightOffset2)(Image2.Bitmap Duangai3.gif) ! 3D 零件圖(Image2.TopOffset 4)(Image2.BottomOffset 8)(Image2.LeftOffset 4)(Image2.RightOffset 4)(Update3.Label &Generate Model)!生成模型按鈕(Update

43、3.Bitmap cl_ok)(Update3.TopOffset 4)(Update3.BottomOffset 8)(Update3.LeftOffset 4)(Update3.RightOffset 4)!取消按鈕屬性定義(Cancel.Label &Exit)(Cancel.Bitmap cl_cancel)(Cancel.TopOffset 4)(Cancel.BottomOffset 8)(取消。LeftOffset 4)(Cancel.RightOffset 4)(Separator1.TopOffset 4)(Separator1.BottomOffset 4)(.Label

44、End Cap Parametric Design) !對話框標題(.StartLocation 5)(.Resizeable 0)(.Layout!陣列元件的布局(網(wǎng)格(行 1 1 1)(列 1)(網(wǎng)格(行 1)(列 1 1)圖片1(網(wǎng)格(行 1 1)(列 1)布局1圖片2)分隔符1(網(wǎng)格(行 1)(列 1 1)更新3取消)(布局布局1(成分(標簽D_標簽)(OptionMenuD_Value)(標簽DA_標簽)(OptionMenuDA_Value)(標簽DB_標簽)(OptionMenuDB_Value)(LabelDC_Label)(OptionMenuDC_Value)(標簽SD_標

45、簽)(OptionMenuSD_Value)(標簽SB_標簽)(OptionMenuSB_Value)(標簽R_標簽)(OptionMenuR_Value)(標簽B_標簽)(OptionMenuB_Value)(標簽用戶定義3_值)(按鈕用戶定義3))(資源(Userdefined3.Label 自定義)(Userdefined3.TopOffset 4)(Userdefined3.BottomOffset 8)(Userdefined3.LeftOffset 4)(Userdefined3.RightOffset 4)(D_Label.AttachLeft 真)(D_Label.LeftOf

46、fset 4)(D_Label.標簽“D”)(DA_Label.AttachLeft 真)(DA_Label.LeftOffset 4)(DA_Label.標簽“DA”)(DB_Label.AttachLeft 真)(DB_Label.LeftOffset 4)(DB_Label.標簽“DB”)(DC_Label.AttachLeft 真)(DC_Label.LeftOffset 4)(DC_Label.標簽“DC”)(SD_Label.AttachLeft 真)(SD_Label.LeftOffset 4)(SD_Label.標簽“SD”)(SB_Label.AttachLeft 真)(SB

47、_Label.LeftOffset 4)(SB_Label.標簽“SB”)(R_Label.AttachLeft 真)(R_Label.LeftOffset 4)(R_Label.標簽“R”)(Userdefined3_Value.Label 自定義參數(shù))(D_Value.AttachLeftTrue)(D_Value.TopOffset4)(D_Value.BottomOffset4)(D_Value.LeftOffset2)(D_Value.RightOffset4)(D_Value.Columns4)(D_Value.Namesn1“n2”“n3”“n4”“n5”“n6”“n7”“n8”

48、“n9”“n10”)(D_Value.Labels 72 ! 列表框的輸入值“80”“85”“90”“100”“110”“120”“125”“130”“140”)(DA_Value.AttachLeftTrue)(DA_Value.TopOffset4)(DA_Value.BottomOffset4)(DA_Value.LeftOffset2)(DA_Value.RightOffset4)(DA_Value.Columns4)(DA_Value.Names “n11”“n12”“n13”“n14”“n15”“n16”“n17”“n18”“n19”“n20”)(DA_Value.Labels 1

49、00 ! 列表框的輸入值“110”“115”“120”“125”“145”“150”“155”“160”“185”)(DB_Value.AttachLeftTrue)(DB_Value.TopOffset4)(DB_Value.BottomOffset4)(DB_Value.LeftOffset2)(DB_Value.RightOffset4)(DB_Value.Columns4)(DB_Value.Names n21 ! 列表框的輸入值“n22”“n23”“n24”“n25”“n26”“n27”“n28”“n29”“n30”)(DB_Value.Labels 120 ! 列表框的輸入值“13

50、0”“135”“145”“150”“170”“175”“180”“185”“220”)(DC_Value.AttachLeftTrue)(DC_Value.TopOffset4)(DC_Value.BottomOffset4)(DC_Value.LeftOffset2)(DC_Value.RightOffset4)(DC_Value.Columns4)(DC_Value.Names n31“n32”“n33”“n34”“n35”“n36”“n37”“n38”“n39”“n40”)(DC_Value.Labels 60 ! 列表框的輸入值“65”“70”“75”“85”“95”“105”“110

51、”“115”“120”)(SD_Value.AttachLeftTrue)(SD_Value.TopOffset4)(SD_Value.BottomOffset4)(SD_Value.LeftOffset2)(SD_Value.RightOffset4)(SD_Value.Columns4)(SD_Value.Names “n41”“n42”“n43”)(SD_Value.Labels 11 ! 列表框的輸入值“12”“13”)(SB_Value.AttachLeft -真)(SB_Value.TopOffset4)(SB_Value.BottomOffset4)(SB_Value.LeftO

52、ffset2)(SB_Value.RightOffset4)(SB_Value.Columns4)(SB_Value.Names “n44”“n45”)(SB_Value.Labels 6 ! 列表框的輸入值“7”)(R_Value.AttachLeftTrue)(R_Value.TopOffset 4)(R_Value.BottomOffset4)(R_Value.LeftOffset2)(R_Value.RightOffset4)(R_Value.Columns4)(R_Value.Names n46“n47”)(R_Value.Labels 5 !列表框的輸入值4)(B_Value.At

53、tachLeftTrue)(B_Value.TopOffset4)(B_Value.BottomOffset4)(B_Value.LeftOffset 2)(B_Value.RightOffset4)(B_Value.Columns4)(B_Value.Names n56“n57”)(B_Value.Labels 15 ! 列表框的輸入值“25”)(.裝飾真)(.Label“設計參數(shù)”)(.TopOffset 4)(.BottomOffset 2)(.LeftOffset 4)(.RightOffset 4)(.Layout ! 列表框的布局格式(網(wǎng)格(行 1 1 1 1)(列 1)(網(wǎng)格(行

54、 1)(列 1 1 1 1)D_標簽D_ValueDA_標簽DA_Value)(網(wǎng)格(行 1)(列 1 1 1 1)DB_標簽DB_ValueDC_標簽DC_Value)(網(wǎng)格(行 1)(列 1 1 1 1)SD_標簽SD_ValueSB_標簽SB_Value)(網(wǎng)格(行 1)(列 1 1 1 1)R_標簽R_Value用戶定義 3_Value用戶定義3)創(chuàng)建的法蘭蓋對話框如下圖 3.3 所示:圖 3.3 (a) 主對話框圖 3.3 (b) 自定義對話框第 4 章端蓋的開發(fā)4.1 總體規(guī)劃為了方便用戶使用,建議在Pro/ENGINEER的主菜單上增加一個菜單欄,然后根據(jù)零件的形式添加子菜單,在

55、子菜單中分別添加菜單按鈕。點擊菜單按鈕,彈出相應的用戶界面,輸入主要參數(shù),生成所需零件。具體結(jié)構(gòu)如圖所示。采用三維模型與程序控制相結(jié)合。 3D 模型不是按程序創(chuàng)建的,而是以交互方式生成的。在創(chuàng)建的零件3D模型的基礎上,根據(jù)零件的設計要求,建立一套可以完全控制3D模型形狀和尺寸的設計參數(shù)。參數(shù)化程序?qū)α慵脑O計參數(shù)進行編程,實現(xiàn)對設計參數(shù)的檢索和修改以及根據(jù)新的參數(shù)值生成新的3D模型的功能。流程如圖4.1所示:圖 4.1 基于 3D 模型的參數(shù)化設計實現(xiàn)流程4.2 基于3D模型的參數(shù)化規(guī)劃分析對于端蓋的二次開發(fā),只需對同類產(chǎn)品的3D模型進行參數(shù)化修改,即可導出新的3D模型?;驹硎侨S模型與程

56、序控制相結(jié)合。 3D 模型不是按程序創(chuàng)建的,而是以交互方式生成的。在創(chuàng)建的零件 3D 模型的基礎上,根據(jù)零件的設計要求,進一步建立足以完全控制 3D 模型的形狀和尺寸的設計參數(shù)。根據(jù)零件的設計參數(shù)編寫參數(shù)化程序,實現(xiàn)對設計參數(shù)的檢索和修改,根據(jù)新的參數(shù)值生成新模型的功能。即先建立參數(shù)化模型,然后通過調(diào)整其參數(shù)來改變幾何形狀,從而實現(xiàn)產(chǎn)品的精確建模?;?D模型的參數(shù)化規(guī)劃方法主要包括3D模型的創(chuàng)建、設計參數(shù)的確定和參數(shù)化規(guī)劃。為了區(qū)別于總則3D模型,參數(shù)化模型被設計成需要作為3D模型模板的模型。實現(xiàn)過程如圖 4.2 所示。圖 4.2 基于 3D 模型的參數(shù)化設計實現(xiàn)流程4.2.1 端蓋3D模型

57、的建立在Pro/ENGINEER環(huán)境下,通過人機交互的方式建立端蓋的3D模型模板。在端蓋模板的特征建模中,二維截面輪廓通過標注尺寸和應用對稱性完全受限于幾何形狀。創(chuàng)建或修改特征時,需要輸入一個值,直接輸入?yún)?shù)名稱。例如,在草圖中標注或修改尺寸值時,使用參數(shù)名稱而不是特定值。下面以法蘭蓋為例,具體介紹和說明端蓋的參數(shù)化設計過程。1 打開Pro/ENGINEER軟件,新建一個零件,命名為“ Duangai3.prt ” ,不要使用默認模板,選擇“mmns_part_solid”,進入零件設計環(huán)境。2 選擇主菜單中的【工具】【參數(shù)】命令,彈出“參數(shù)”對話框,如圖 4.3 所示,點擊“+”添加四個參數(shù)

58、 D、DA、DB、DC、SD、 SB、SBA、R、B。它們分別代表什么,如圖所示。并預設各參數(shù)值。如D=62、DA=85、DB=110、DC=50、SD=11、SBA=10、R=5、B=15。單擊“確定”按鈕。圖 4.3 法蘭蓋模型參數(shù)圖3 選擇主菜單 插入 旋轉(zhuǎn) 命令。將出現(xiàn)創(chuàng)建實體旋轉(zhuǎn)特征的對話框。依次選擇【Position】Sketch【Define】,彈出Sketch【Place】對話框。4 選擇TOP平面作為草圖平面,取默認草圖方向,反向;默認草圖參考平面,RIGHT;參考方向,對。進入草繪環(huán)境后,繪制如圖 4.4 所示的圖形。確認后,生成的圖形如圖4.4所示:圖 4.4 法蘭蓋模型

59、旋轉(zhuǎn)特征示意圖5選擇主菜單插入孔命令。出現(xiàn)實體孔特征創(chuàng)建對話框,選擇位置,然后選擇參考。創(chuàng)建與對稱軸和 DA/2 對稱中心成 35 度角的四個均勻間隔的直孔。6 選擇主菜單Insert Chamfer 命令。出現(xiàn)創(chuàng)建實體倒角特征對話框,選擇【設置】,將倒角半徑設置為5,按住Ctrl鍵依次選擇要倒角的邊。根據(jù)圖 4.3 生成的圖形如圖 4.5 所示:圖 4.5 法蘭蓋模型旋轉(zhuǎn)特征生成的 3D 圖7選擇【工具】【關系】命令,彈出“關系”對話框。輸入如圖 4 所示的關系。檢查一下。8 最終完成的法蘭蓋零件圖如圖4.6所示:4.6 法蘭蓋模型模板以上就是法蘭蓋的參數(shù)化建模過程。用戶只需輸入?yún)?shù)值并重新

60、生成,即可生成所需的端蓋模型,無需重復步驟1-8。4.2.2 端蓋的參數(shù)化編程打開Visual C+6.0,參考2.2節(jié)設置和創(chuàng)建工程文件。設置好后,將程序?qū)懭搿?cpp ”文件。程序內(nèi)容包括自定義菜單程序、對話程序、調(diào)用參數(shù)。然后調(diào)試-修改-調(diào)試,直到出現(xiàn)31個錯誤和19個警告。1 源程序流程圖這個程序的出發(fā)點是為同一系列的零件建立一個實體模型,然后用不同的參數(shù)值來驅(qū)動改變的尺寸。該程序?qū)崿F(xiàn)最終目標的工作流程如圖 4 所示。2編寫源程序#include “stdafx.h”/*- -*Pro/TOOLKIT 包括*- -*/#include #include ProUtil.h#includ

溫馨提示

  • 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

提交評論