基于ProToolkit的車床夾具三維參數(shù)化設計說明_第1頁
基于ProToolkit的車床夾具三維參數(shù)化設計說明_第2頁
基于ProToolkit的車床夾具三維參數(shù)化設計說明_第3頁
基于ProToolkit的車床夾具三維參數(shù)化設計說明_第4頁
基于ProToolkit的車床夾具三維參數(shù)化設計說明_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 PAGE51 / NUMPAGES511緒論1.1 課題研究的目的和意義1.1.1 目的機床夾具是機床上用以裝夾工件(和引導刀具)的一種裝置。其作用是將工件定位,以使工件獲得相對于機床和刀具的正確位置,并把工件可靠地夾緊。機床夾具的設計包括生產(chǎn)任務與工作過程分析、工件的定位、工件的夾緊、刀具導向與夾具的對定、夾具連接元件和夾具體的設計、夾具圖樣設計、夾具精度校核、各類專用夾具的設計。其中機床夾具按使用的機床分類由于各類機床自身工作特點和結構形式各不一樣,對所用夾具的結構也相應地提出了不同的要求。按所使用的機床不同,夾具又可分為:車床夾具、銑床夾具、鉆床夾具、鏜床夾具、磨床夾具、齒輪機床夾具和

2、其他機床夾具等。我所設計的夾具是車床夾具在車床上用來加工工件、外回轉面與端面的夾具稱為車床夾具。車床夾具多數(shù)安裝在主軸上;少數(shù)安裝在床鞍或床身上。由于設計的零件比較的多,所以需要每次掉零件,然后打開裝配圖,這樣的工作比較的繁重,比較的浪費時間。為了更好地利用這些東西,所以我們借助于計算機輔助設計來,以與通過編寫程序來達到調用這些零件,調用裝配圖,這樣就提高了效率,為一個企業(yè)的生存提供了競爭的條件。意義車床夾具是車床上的主要的夾具零件,通過對他的參數(shù)化設計,來熟練的掌握proe的參數(shù)化設計過程,以與對vc+語言的過程。通過程序的編寫可以達到改變零件的尺寸來改變裝配圖的尺寸,然后對一些標準的零件需

3、要建立一些數(shù)據(jù)庫,數(shù)據(jù)庫的作用是把一些零件的主要尺寸儲存起來,以便調用。主要的作用是通過proe的開發(fā)工具protoolkit結合著vs2005+sql2000來達到多零件的參數(shù)化設計和參數(shù)化調用,通過對話框的形式對其進行改變。本課題在國的研究和發(fā)展現(xiàn)狀國cad的應用現(xiàn)狀如果讓我們調查一下國企業(yè)中CAD 的應用,會得出如下結論,很多所謂CAD應用很好的企業(yè),也只是做到用手工出圖轉變?yōu)橛嬎銠C出圖的現(xiàn)狀,當然計算機出圖是有很多優(yōu)點的,漂亮、規(guī)、修改容易、存檔方便等。但是如果我們只是停留在這個階段,就失去了CAD 的作用,因為CAD 是輔助設計,不是輔助繪圖。既然是設計就不但想到產(chǎn)品的機械模型,還應

4、想到產(chǎn)品的結構分析、運動機構分析和生產(chǎn)加工處理等,只有這樣才能真正發(fā)揮CAD 的作用。如果真正做到這一點,單憑二維設計是不夠的,雖然傳統(tǒng)的制圖方法是通過二維視圖來描述三維實體,但這種描述做不到進一步的結構分析、運動機構分析和數(shù)控加工,不能真正做到生產(chǎn)的自動化,更有甚者,二維視圖的描述經(jīng)常出現(xiàn)二意性和理解錯誤,因為人們只是按著一些規(guī)定在想象三維的模樣,限于這種描述方法的缺陷,必須找到更先進的、更合理的三維設計手段,使CAD、CAM、CAE以與PDM容為一體。當然這個目標要有一個過程,但現(xiàn)在我們必須明確。其實,很早就有了先進的解決辦法,那就是采用在圖形工作站上使用三維CAD 軟件,只所以采用工作站

5、是因為當時的微機還不能勝任這項工作,也確實有很多企業(yè)看到這種先機,于是不論系統(tǒng)是多么昂貴,不惜血本買進大量的工作站系統(tǒng),事隔幾年,一些企業(yè)叫苦不迭,因為血本并未帶回效益。但回過頭來看,我們發(fā)現(xiàn),這種思想是對的,只是這個想法未變成現(xiàn)實,因為買來的工作站系統(tǒng)在閑置,一個靜止的機器怎能去創(chuàng)造效益呢? 究其原因有很多,但最主要的原因是工作站上的系統(tǒng)軟件和CAD軟件使用起來太復雜,并不能使每個設計人員都能掌握,因此,一旦熟悉操作、使用的(經(jīng)過培訓)技術人員流失,系統(tǒng)馬上進入癱瘓,再培養(yǎng)人員是幾年以后的事情,轉眼到了系統(tǒng)該更新的時候了。是否是我們的設計人員水平低呢?不是,我們的設計水平是夠的,是我們的CA

6、D系統(tǒng)太復雜了,不可能在有限的時間讓技術人員既精通本專業(yè),又精通另外的計算機專業(yè)。所以必須使系統(tǒng)軟件和CAD 軟件的使用更簡單更容易,只有這樣CAD 才能真正得到普與,這也是CAD產(chǎn)業(yè)發(fā)展、普與的一個方面。1.2.2 分析目前,雖然制造業(yè)的廠家均已完成“甩圖板”工作,在產(chǎn)品設計中應用二維CAD圖形繪制工具AutoCAD 或是基于AutoCAD 平臺的二次開發(fā)軟件,實現(xiàn)計算機制圖并做一些技術文檔的編制工作。但是,隨著軟件應用時間的增長,企業(yè)各部門都保存有大量的DWG 格式的產(chǎn)品圖紙文件。在設計過程中,由于二維CAD 軟件存在局限性,不能完整地表達產(chǎn)品的設計信息。所以,要達到真正意義上的計算機輔助

7、設計,則必須要使用三維CAD 軟件,完成諸如零部件的裝配干涉檢查,有限元分析,機構的運動仿真,數(shù)控加工代碼的生成。只有運用三維CAD 設計軟件,才能在產(chǎn)品設計初始階段全面了解產(chǎn)品的外觀、性能,從而避免產(chǎn)品設計中出現(xiàn)的低級錯誤.1.3 我國制造業(yè)的發(fā)展形勢目前,隨著CAD/CAM/CAPP技術的逢勃發(fā)展,計算機越來越成為人們從事機械設計與制造的重要手段。計算機輔助產(chǎn)品造型是所有上述工作的基礎。因為只有精確的產(chǎn)品造型,才能對產(chǎn)品的裝配與干涉進行檢驗?;谏鲜隹梢钥偨Y出我國CAD/CAE/CAM 的發(fā)展趨勢:1. 新產(chǎn)品使用基于特征建模的三維造型來進行設計;2. 在計算機上完成產(chǎn)品整機的總裝配,進行

8、干涉檢查和動力學分析;3. 重要零件在計算機上進行有限元剛度、強度分析、模態(tài)分析、產(chǎn)品的形狀優(yōu)化設計;4. 建立各單位自己的三維常用零件庫,盡量避免重復勞動,提高設計效率;5. 對于有數(shù)控加工工序的零部件自動生成加工代碼。1.4 關鍵的問題與解決的思路:1.4.1 關鍵問題完成本課題關鍵的就是做好各個零件的參數(shù)化設計,包括夾具體、過度盤、壓板等。在這個課題中,我是通過pro/e 軟件來完成各個零件的三維圖形的設計,然后通過Visual C+語言和pro/toolkit 接口,將完成的三維圖形做成一個插件的形式插入到pro/e的菜單欄中,然后再通過輸入?yún)?shù)的方式對其做設計變更。1.4.2 我的思

9、路用 pro/e 軟件對車床夾具進行建模設計的關鍵還在于正確地建立各個零件的參數(shù),編程確定合乎要求的參數(shù)關系式,搞清各個零件變化的每一步驟的目的。掌握了這種經(jīng)編程并輸入?yún)?shù)關系式進行設計的方法即參數(shù)化設計方法。就能迅速地對不同參數(shù)的零件進行建模,極提高工效。2 系統(tǒng)開發(fā)環(huán)境與開發(fā)策略2.1 系統(tǒng)開發(fā)環(huán)境2.1.1 Pro/toolkit 接口Pro/E 安裝盤提供的Pro/Toolkit 工具包主要提供了創(chuàng)建用戶應用程序所需函數(shù)庫文件、頭文件、用戶指南和示例程序。其中頭文件位Pro/Toolkitincludes 目錄,庫文件位于Pro/Toolkiti486-NTobj目錄,這兩種類型的文件

10、是用VC開發(fā)Pro/E應用程序必不可少的支持文件。在Windows 環(huán)境下,可采用各種C 語言為編程語言。我們以WindowsXP為平臺,VC+6.0為開發(fā)環(huán)境,通過Pro/Toolkit接口,來實現(xiàn)對Pro/E的二次開發(fā)。2.1.2 關于Pro/engineer系統(tǒng)Pro/Engineer 系統(tǒng)是美國參數(shù)技術公司(Parametric Technology Corporation,簡稱PTC)的產(chǎn)品。PTC 公司提出的單一數(shù)據(jù)庫、參數(shù)化、基于特征、全相關的概念改變了機械CAD/CAE/CAM 的傳統(tǒng)觀念,這種全新的概念已成為當今世界機械CAD/CAE/CAM領域的標準。利用該概念開發(fā)出來的第

11、三代機械CAD/CAE/CAM 產(chǎn)品,Pro/Engineer 軟件能將設計至生產(chǎn)全過程集成到一起,讓所有的用戶能夠同時進行同一產(chǎn)品的設計制造工作,即實現(xiàn)所謂的并行工程(Concurrent engineering).Pro/Engineer 系統(tǒng)主要特點如下:1 真正的全相關性,任何地方的修改都會自動反映到所有相關的地方。2 具有真正管理并發(fā)進程、實現(xiàn)并行工程的能力。3 具有強大的裝配功能,能夠始終保持設計者的設計意圖。4 容易使用,可以極提高設計效率。而且,Pro/Engineer 系統(tǒng)用戶界面簡潔,概念清晰,符合工程人員的設計思想與習慣。整個系統(tǒng)建立在統(tǒng)一的數(shù)據(jù)庫上,具有完整而統(tǒng)一的模型

12、。另外,Pro/Engineer建立在工作站上,系統(tǒng)獨立于硬件,便于移植。Proe/Engineer(簡稱Pro/E)之所以得到廣泛應用,不僅是因為它成熟的參數(shù)化技術,更重要的是它具有開放的體系結構和優(yōu)秀的二次開發(fā)工具。Pro/E允許用戶和開發(fā)者對其進行擴充和修改。此次設計以Pro/E為支撐平臺,應用Pro/Toolkit工具包和visual studio來開發(fā),將用戶應用程序編譯成可執(zhí)行文件(.exe文件)或動態(tài)庫文件(.dll文件),在Pro/e環(huán)境下加載運行.這樣既利用了Pro/E強大的開發(fā)功能,又利用了編程效率高的優(yōu)勢。2.2 開發(fā)策略目前,對于系統(tǒng)的開發(fā)方法主要有三種:1 完全自主的

13、開發(fā);2 基于/軟件平臺的開發(fā);3 基于某個通用軟件的開發(fā).其中第一種方法一切從底層做起,開發(fā)周期最長,適于大型系統(tǒng)的開發(fā);第二種方法開發(fā)周期較短,但開發(fā)平臺價格昂貴,適合大中型系統(tǒng)的開發(fā);第三種方法開發(fā)周期最短,開發(fā)成本最低,且靈活多變,適合中小型系統(tǒng)的開發(fā)。本次設計采用了第三種方法,即利用美國公司開發(fā)的/三維設計軟件,再結合Pro/toolkit 接口以與V C+語言對用于夾具的零件進行參數(shù)化設計。Pro/Toolkit 應用程序共有2 種工作方式:同步模式包括兩種(SynchronousMode)和異步模式(Asyn-chronousMode)。同步模式分為DLL模式和多進程模式(Mul

14、ti-processMode)。DLL模式是指運用動態(tài)庫將Pro/Toolkit應用程序集成到Pro/E 中,在該模式下,Pro/Toolkit 應用程序與Pro/E 之間的信息交換是通過直接的函數(shù)調用來實現(xiàn)。多進程模式是指Pro/Toolkit代碼經(jīng)過編譯和連接后生成一個.EXE文件,作為Pro/E的一個子程序來運行。異步模式可以開發(fā)出獨立于Pro/E 系統(tǒng)環(huán)境的應用程序,有自己獨立的程序界面。一般來說在沒有特殊的要求下采用同步模式中的DLL 模式,這種方法實現(xiàn)了Pro/E 與應用程序之間的無縫集成?;咀鞣ㄊ怯媒换シ绞絼?chuàng)建三維模型,再利用Pro/E的參數(shù)功能建立設計參數(shù),然后由Pro/To

15、olkit 應用程序檢索出模型的設計參數(shù),并提供參數(shù)的編輯功能和根據(jù)新的設計參數(shù)再生三維模型的功能。其過程如圖2-1 所示:圖2-1 實現(xiàn)參數(shù)化設計的設計流程圖3 主要零部件的參數(shù)設計與計算3.1車床夾具設計要點本設計由于零件的特殊性,需采用角鐵式車床夾具。角鐵式車床夾具的結構特點是具有類似角鐵的夾具體。它常用于加工殼體、支座,接頭類零件上的圓柱面與端面。當被加工工件的主要定位基準是平面,被加工面的軸線對主要位基準面保持一定的位置關系(平行或成一定的角度)時,相應地夾具上的平面定位件設在與車床主軸軸線相平行或成一定角度的位置上。1. 定位裝置的設計要求在車床上加工回轉面時要求工件被加工面的軸線

16、與車床主軸的旋轉軸線重合,夾具上定位裝置的結構和布置,必須保證這一點。因此,對于軸套類和盤類工件,要求夾具定位元件工作表面的對稱中心線與夾具的回轉軸線重合。對于殼體、接頭或支座等工件,被加工的回轉面軸線與工序基準之間有尺寸聯(lián)系或相互位置精度要求時,應以夾具軸線為基準確定定位元件工作表面的位置。2夾緊裝置的設計要求在車削過程中,由于工件和夾具隨主軸旋轉,除工件受切削扭矩的作用外,整個夾具還受到離心力的作用。此外,工件定位基準的位置相對于切削力和重力的方向是變化的。因此,夾緊機構必須產(chǎn)生足夠的夾緊力,自鎖性能要可靠。對于角鐵式夾具,還應注意施力方式,防止引起夾具變形。3夾具與機床主軸的連接車床夾具

17、與機床主軸的連接精度對夾具的回轉精度有決定性的影響。因此,要求夾具的回轉軸線與主軸軸線應具有盡可能高的同軸度。心軸類車床夾具以莫氏錐柄與機床主軸錐孔配合連接,用螺桿拉緊。有的心根據(jù)徑向尺寸的大小,其它專用夾具在機床主軸上的安裝連接一般有兩種方式;(1) 對于徑向尺寸D140mm,或D(23)d的小型夾具,一般用錐柄安裝在車床主軸的錐孔中,并用螺桿拉緊。這種連接方式定心精度較高。(2) 對于徑向尺寸較大的夾具。一般通過過渡盤與車床主軸頭端連接。過渡盤的使用,使夾具省去了與特定機床的聯(lián)接部分,從而增加了通用性,即通過同規(guī)格的過渡盤可用于別的機床。同時也便于用百分表在夾具校正環(huán)或定位面上找正的辦法來

18、減少其安裝誤差。因而在設計圓盤式車床夾具時,就應對定位面與校正面間的同軸度以與定位面對安裝平面的垂直度誤差提出嚴格要求。4總體結構設計要求車床夾具一般是在懸臂的狀態(tài)下工作,為保證加工的穩(wěn)定性,夾具的結構應力求緊湊、輕便,懸伸長度要短,使重心盡可能靠近主軸。由于加工時夾具隨同主軸旋轉,如果夾具的總體結構不平衡,則在離心力的作用下將造成振動,影響工件的加工精度和表面粗糙度,加劇機床主軸和軸承的磨損。因此,車床夾具除了控制懸伸長度外,結構上還應基本平衡。角鐵式車床夾具的定位裝置與其它元件總是安裝在主軸軸線的一邊,不平衡現(xiàn)象最嚴重,所以在確定其結構時,特別要注意對它進行平衡。平衡的方法有兩種:設置配重

19、塊或加工減重孔。為保證安全,夾具上的各種元件一般不允許突出夾具體圓形輪廓之外。此外,還應注意切屑纏繞和切削液飛濺等問題,必要時應設置防護罩。3.2車床夾具的安裝誤差夾具的安裝誤差值與下列因素有關:1夾具定位元件與本體安裝基面的相互位置誤差。2夾具安裝基面本身的制造誤差以與與安裝面的連接誤差。(1).對于心軸。夾具的安裝誤差就是心軸工作表面軸線與中心孔或者心軸錐柄軸線間的同軸度誤差。(2).對于其它車床專用夾具,一般使用過渡盤與主軸軸頸連接。當過渡盤是與夾具分離的機床附件時,產(chǎn)生夾具安裝誤差的因素是:定位元件與夾具體止口軸線間的同軸度誤差,或者相互位置尺寸誤差;夾具體止口與過渡盤凸緣間的配合間隙

20、,過渡盤定位孔與主軸軸頸間的配合間隙。3.3 主要零件的設計3.3.1.夾具體的設計根據(jù)零件的加工要求以與零件的尺寸要求對夾具體進行了設計。如圖3-1 圖3-1夾具體的零件圖夾具體中間的 d 孔為工藝孔,作為組裝夾具時尺寸的測量工藝孔,也可作為夾具安裝到車軸主軸時找正夾具中心與機床主軸回轉軸線同軸度的找正孔。這個工藝孔是角鐵式夾具上很重要的一個結構要素。夾具與機床主軸的連接是通過過渡盤實現(xiàn)的。角鐵式夾具體用螺釘與過渡盤聯(lián)接,過渡盤與機床主軸前端部連接。過渡盤一般均為車床的附件隨車床一起提供,如沒有過渡盤則應根據(jù)車床主軸端部結構自行設計。更多畢業(yè)設計資料(含CAD圖紙),請加 971920800

21、咨詢4 各個零件的造型和參數(shù)化設計4.1 夾具體的三維造型4.1.1非標準件的設計A.夾具體的三維設計根據(jù)零件的尺寸與各個部件之間的配合關系,以與角鐵式夾具的規(guī)定,對其進行三維化參數(shù)設計jiajuti.prt,并最終組裝成裝配圖asm.0003.asm。建立三維模型如圖4-1: 圖4-1 夾具體三維圖和二維圖 由于夾具體不是標準件,不必要對其進行建立數(shù)據(jù)庫,要對其進行參數(shù)設計,利用proe中的參數(shù)和關系對其進行約束,為夾具體設置六個參數(shù),分別是頂圓到中心的距離l1,大外圓的直徑l2,下底圓的直徑l3,肋板的長度l4,高度l5,肋板到中心線的距離l6,肋板上的小圓之間的距離是l7,支撐釘圓到中心

22、的距離是l8,螺栓圓到中心的距離為l9,根據(jù)proe中參數(shù)關系設置一下關系d4=L1,d3=L2,d8=L3,d9=L4,d11=L5,d12=L6,d79=L9,d6=L8,d27=L7。在建立參數(shù)之間關系的時候,我是根據(jù)零件的外徑來定夾具體的大外徑的,根據(jù)工件外徑的尺寸與大外徑l2的5倍關系,以與底圓l3與零件的外徑尺寸的2倍關系,然后根據(jù)定位零件的v形塊來定l7,以與肋板的長度l4和高度l5,根據(jù)v形塊的寬度來定l6,l8也是根據(jù)零件徑的關系來確定的,還有根據(jù)平衡塊的位置在什么地方合適來定l1這個尺寸。 B. 利用同樣的方法對過度盤,平衡塊,連接快,上v塊進行三維化設計。其三維模型如圖4

23、-2、4-3、4-4、4-5所示:圖4-2 過度盤三維圖和二維圖并對過度盤進行參數(shù)設計,分別是大圓直徑w1,凸緣圓直徑w2,螺栓圓的到中心的距離ll,連接孔到底圓的距離ww。大圓的直徑是根據(jù)夾具體的外圓確定的,凸緣圓直徑是根據(jù)夾具體的底圓確定的以與ll也是根據(jù)夾具體的大小來確定的,ww是根據(jù)連接快的螺紋孔到過度盤的底圓距離的合適與否來確定的,過度盤的圓直徑是根據(jù)零件的外徑尺寸來確定的。圖4-3 平衡塊三維圖 圖4-4連接塊三維圖對平衡塊,連接快和上v塊進行同樣的三位參數(shù)設計,并設置一些參數(shù)值來改變他們之間的關系,以達到變化。 圖4-5 上v塊三維圖4.1.2 標準件的三維參數(shù)化設計1.零件的三

24、維設計由于標準件有相應的尺寸要求,需要對其進行建立數(shù)據(jù)庫,使其數(shù)據(jù)更加的規(guī)。(1)圓柱銷的三維參數(shù)設計,其三維造型如圖4-6所示:圖4-6 銷子的三維圖對其進行設計參數(shù),直徑D和長度H,由于他們都是標準件所以在編寫程序的時候需要使用sql語句,通過關鍵字來找到合適的零件尺寸。(2)墊圈三維參數(shù)設計,其三維造型如圖4-7所示:圖4-7 墊圈的三維圖對其進行參數(shù)設計,并設置參數(shù),徑d, 外徑s和厚度h。(3).螺母三維參數(shù)設計,其三維造型如圖4-8所示:圖4-8 螺母的三維圖對螺母進行參數(shù)設置,徑d和高度h。(4).螺栓三維設計,其三維造型如圖4-9所示:圖4-9 螺栓的三維圖對其進行參數(shù)設置,直

25、徑d和長度h。并利用同樣的方法對v塊和壓板,支撐釘進行設計。2.建立工程數(shù)據(jù)庫和各個標準零件的數(shù)據(jù)表。使用SQL Server 2000建立一個“Engineering”數(shù)據(jù)庫,并在其中建立一系列的零件數(shù)據(jù)表,表結構為: 表4.1 圓柱銷表結構列名數(shù)據(jù)類型長度允許空長度大于Float 8長度到Float 8 DInt 4 CFloat 8輸入以下數(shù)據(jù):長度大于長度到 D C83030.584040.63105050.8126061.2148081.6189510222140122.526180634.2墊圈表結構列名 數(shù)據(jù)類型長度 允許空公稱尺寸dInt4d1float8d2float8hfl

26、oat8并輸入一下數(shù)據(jù):公稱尺寸dd1d2h33.260.544.380.555.39166.4111.686.4151.6并利用同樣的方法對螺母,螺栓,壓板,v塊和支撐釘進行數(shù)據(jù)的建表和數(shù)據(jù)的輸入,并可以得到以上的數(shù)據(jù)類型。4.2 車床夾具的二次開發(fā)(利用protoolkit實現(xiàn))4.2.1 步驟1Vs2005配置啟動vs2005。在“項目和解決方案”中選擇“VC+目錄”,在“顯示以下容的目錄”中選擇“包含文件”,加入以下文件(其中,D:是pro/E的安裝盤符):D:PTCproeWildfire4.0protoolkitincludes D:PTCproeWildfir

27、e4.0protoolkitprotk_applsincludesD:PTCproeWildfire4.0prodevelopincludes在“顯示以下容的目錄”中選擇“庫文件”,加入以下文件:D:PTCproeWildfire4.0protoolkiti486_ntobjD:PTCproeWildfire4.0prodevelopi486_ntobj(注:請認真檢查pro/E的安裝目錄(路徑名)。在以上配置中,輸入路徑名時不能有空格,比如在以上設置中輸入“D:Program FilesproeWildfire 4.0”是不對的,要把路徑中的空格去掉,如“D:proeWildfire4.0”

28、 。如果已經(jīng)按默認設置安裝了pro/E(此時安裝目錄中是有空格的),則必須用D:Progra1proeWi1.0 輸入。)(以上工作僅做一次。)2建立新項目,并做項目配置在vs2005中,建立一個新項目,使用MFC DLL模板,項目名稱為jiajusheji 。vs2005會自動建立名為jiajusheji的文件夾。配置以下三個項目屬性:(1) 常規(guī)字符集,將其中的默認“使用Unicode字符集”改為“使用多字節(jié)字符集”(2) C/C+預處理器,在“預處理器定義”里加入:PRO_USE_VAR_ARGS (3) 連接器輸入,在“附加依賴項”里加入:wsock32.libmpr.libpsapi

29、.libprotk_dllmd.lib(4)建立信息和菜單文件在項目所在目錄下,建立一個text目錄在text目錄下,新建一個信息文本文件,取名為msg.txt,文件容為:MyHello&歡迎使用基于pro/Toolkit的機床夾具三維參數(shù)化設計系統(tǒng)!#MyBye&再見!#在text目錄下,再新建一個信息文本文件,取名為menu.txt,文件容為:m_jiajusheji&車床夾具設計#b_para&零件參數(shù)輸入#paratip&修改零件參數(shù)#b_lingjian&元件參數(shù)輸入#lingjiantip&輸入工件的孔徑等參數(shù)#(5)源代碼輸入在jiajusheji.cpp文件中,輸入以下代碼(刪

30、除所有已有代碼):/ jiajusheji.cpp : 定義DLL 的初始化例程。#include stdafx.h#include jiajusheji.h#include dlg_para.h#include dlg_lingjian.h#include /包含pro/Toolkit必要的頭文件#include #include #include #include ProFileName msgfil; /定義文件類型的變量,用于顯示消息/這三個函數(shù)的定義在后面,此處僅說明函數(shù)原型void MyDLG();void MyDLGlingjian();static uiCmdAccessSta

31、te UserAccessTestMenu (uiCmdAccessMode);/初始化函數(shù),此函數(shù)將在啟動鉆模設計輔助應用程序時被調用執(zhí)行extern C int user_initialize() AfxEnableControlContainer();ProError status;ProName menumsgfile; /定義名稱類型的變量,用于生成菜單uiCmdCmdId cmd_id; /定義菜單項標識類型的變量/在pro/E的主菜單欄上添加一個新的菜單ProStringToWstring(menumsgfile,menu.txt);status = ProMenubarMenu

32、Add(jiajusheji,m_jiajusheji,Help, PRO_B_FALSE,menumsgfile);/添加新菜單下的第一個菜單項status = ProCmdActionAdd(MyDLG,(uiCmdCmdActFn)MyDLG,uiCmdPrioDefault,UserAccessTestMenu,PRO_B_TRUE,PRO_B_TRUE,&cmd_id);/先指定回調函數(shù),即點擊此菜單后要執(zhí)行什么動作(本菜單項的功能是打開工件參數(shù)輸入對話框)status = ProMenubarmenuPushbuttonAdd(jiajusheji,para,b_para,para

33、tip,NULL,PRO_B_TRUE,cmd_id,menumsgfile);/然后才添加菜單項/再添加第二個菜單項status = ProCmdActionAdd(MyDLGlingjian,(uiCmdCmdActFn)MyDLGlingjian,uiCmdPrioDefault,UserAccessTestMenu,PRO_B_TRUE,PRO_B_TRUE,&cmd_id);status = ProMenubarmenuPushbuttonAdd(jiajusheji,lingjian,b_lingjian,lingjiantip,para,PRO_B_TRUE,cmd_id,men

34、umsgfile);/在pro/E的消息區(qū)顯示消息ProStringToWstring(msgfil,msg.txt);ProMessageDisplay(msgfil,MyHello);return(0);/菜單可訪問性(此函數(shù)的定義一般不需修改!)static uiCmdAccessState UserAccessTestMenu(uiCmdAccessMode access_mode)return (ACCESS_AVAILABLE);void MyDLG() /自定義的第一個菜單項的菜單回調函數(shù)AFX_MANAGE_STATE(AfxGetStaticModuleState();dlg

35、_lingjian dlg_lingjian; /先定義一個對話框類對象dlg_lingjian.DoModal(); /以模態(tài)方式打開工件尺寸參數(shù)輸入對話框(其中容視對話框類的名稱而變)void MyDLGlingjian() /自定義的第二個菜單項的菜單回調函數(shù)AFX_MANAGE_STATE(AfxGetStaticModuleState();dlg_para dlg_para;dlg_para.DoModal(); /打開鉆模板參數(shù)設置對話框/結束函數(shù),此函數(shù)將在停止車床夾具設計輔助應用程序時被調用執(zhí)行extern C void user_terminate()ProMessageDi

36、splay(msgfil,MyBye); /在pro/E的消息區(qū)顯示消息return;(6)加入工件參數(shù)輸入對話框事先做好下面這幅圖,并保存成位圖(BMP)格式的文件如圖局4-10:圖4-10 零件圖添加一個位圖資源(使用“添加資源”對話框中的“導入”按鈕,導入位圖)如圖4-11:圖4-11 添加資源添加一個對話框資源如圖4-12:圖4-12 對話框1 在上面的原始對話框中,添加靜態(tài)文本控件(Static Text)、編輯控件(Edit Control)和圖片控件(Picture Control),并將對話框界面修改成以下布局如圖4-13:圖4-13 零件參數(shù)對話框框空白處點擊鼠標右鍵,在彈出

37、的快捷菜單中選擇“添加類”,類名稱為dlg_lingjian。再添加一個對話框,加入一些按鈕控件,并將對話框界面作如下的布局如圖4-14:圖4-14 元件參數(shù)對話框框空白處點擊鼠標右鍵,在彈出的快捷菜單中選擇“添加類”,類名稱為dlg_para。事先做好下面這幅圖,并保存成位圖(BMP)格式的文件如圖4-15所示:圖4-15 各種零件的三維圖設計添加一個位圖資源(使用“添加資源”對話框中的“導入”按鈕,導入位圖)如圖4-16所示:圖4-16 添加資源框4.2.2 再對每個按鈕添加個對話框資源:以夾具體和墊圈為例子來進行說明。A 夾具體圖4-17 對話框2如圖4-17所示在上面的原始對話框中,添

38、加靜態(tài)文本控件(Static Text)、編輯控件(Edit Control)和圖片控件(Picture Control),并將對話框界面修改成以下布局如圖4-18所示。圖4-18 對話框31.為工件參數(shù)輸入對話框添加類并為編輯控件關聯(lián)成員變量在對話框空白處點擊鼠標右鍵,在彈出的快捷菜單中選擇“添加類”,類名稱為dlg_jiajuti。選中編輯控件,點擊鼠標右鍵,在彈出的快捷菜單中選擇“添加變量”,為每個編輯控件添加一個double類型的變量,變量名取為m_l1,m_l2,m_3,m_l4,m_l5,m_l6。這個成員變量的初始值為零,下面改變初始值。打開dlg_jiajuticpp源程序文件

39、,找到代碼段,并作如下聲明:dlg_jiajuti:dlg_jiajuti(CWnd* pParent /*=NULL*/): CDialog(dlg_jiajuti:IDD, pParent), m_l1(c), m_l2(a), m_l3(b), m_l4(110), m_l5(210), m_l6(65), m_l7(96), m_l8(60)2.為“確定”按鈕添加消息處理代碼回到對話框設計界面,雙擊“確定”按鈕,會出現(xiàn)以下程序段(這是“確定”按鈕的單擊事件過程代碼):/ dlg 消息處理程序void dlg_jiajuti:OnBnClickedOk()/ TODO: 在此添加控件通知

40、處理程序代碼OnOK();將其中的兩行代碼刪除,并用以下的程序段替換:#include stdafx.h#include jiajusheji.h#include dlg_jiajuti.h#include /包含pro/Toolkit必要的頭文件#include #include #include ProParameter.h#include ProSolid.h#include ProMdl.h#include ProModelItem.h#include ProUIInputpanel.h#include #import c:program filescommon filessystem

41、adomsado15.dll no_namespace rename(EOF,adoEOF) rename(BOF,adoBOF) /上面一行導入ADO相關的類聲明double a=300,b=200,c=125;/ dlg_jiajuti 對話框IMPLEMENT_DYNAMIC(dlg_jiajuti, CDialog)dlg_jiajuti:dlg_jiajuti(CWnd* pParent /*=NULL*/): CDialog(dlg_jiajuti:IDD, pParent), m_l1(c), m_l2(a), m_l3(b), m_l4(110), m_l5(210), m_l

42、6(65), m_l7(96), m_l8(60)dlg_jiajuti:dlg_jiajuti()void dlg_jiajuti:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);DDX_Text(pDX, IDC_EDIT1, m_l1);DDX_Text(pDX, IDC_EDIT2, m_l2);DDX_Text(pDX, IDC_EDIT3, m_l3);DDX_Text(pDX, IDC_EDIT4, m_l4);DDX_Text(pDX, IDC_EDIT5, m_l5);DDX_Text(pDX, ID

43、C_EDIT6, m_l6);DDX_Text(pDX, IDC_EDIT7, m_l7);DDX_Text(pDX, IDC_EDIT8, m_l8);BEGIN_MESSAGE_MAP(dlg_jiajuti, CDialog)ON_BN_CLICKED(IDOK, &dlg_jiajuti:OnBnClickedOk)END_MESSAGE_MAP()/ dlg_jiajuti 消息處理程序void dlg_jiajuti:OnBnClickedOk()ProMdl model; /模型ProFamilyName partname; /零件模型文件名int nWindowID; /窗口標

44、識ProModelitem feature; /特征ProParameter param1,param2,param3,param4,param5,param6,param7,param8; /參數(shù)(變量個數(shù)應以所有模型中參數(shù)最多的為準)ProParamvalue value1,value2,value3,value4,value5,value6,value7,value8; /參數(shù)值(同上)/打開鉆套模型ProStringToWstring(partname,jiajuti.prt);ProMdlRetrieve(partname, PRO_MDL_PART, &model); /提取工作目

45、錄中的零件模型ProMdlDisplay(model); /顯示模型 ProMdlWindowGet(model,&nWindowID); /獲取模型窗口標識符ProWindowActivate(nWindowID); /激活模型窗口 /初始化鉆套參數(shù)int i;double l4,l5,l6,l7,l8;ProMdlIdGet(model,&i);ProModelitemInit(model,i,PRO_PART,&feature);ProParameterInit(&feature, Ll1, ¶m1); /這些參數(shù)在零件模型中應提前設置好ProParameterInit(&fea

46、ture, Ll2, ¶m2);ProParameterInit(&feature, Ll3, ¶m3);ProParameterInit(&feature, Ll4, ¶m4);ProParameterInit(&feature, Ll5, ¶m5);ProParameterInit(&feature, Ll6, ¶m6);ProParameterInit(&feature, Ll7, ¶m7);ProParameterInit(&feature, Ll8, ¶m8);UpdateData(true); /將編輯框中的數(shù)據(jù)傳送到關聯(lián)變量

47、l4=m_l4; /直接取用變量的值即可 l5=m_l5;l6=m_l6;l7=m_l7;l8=m_l8; /為鉆套參數(shù)賦新值(一定要對應上面?zhèn)€參數(shù)的順序) value1.type=PRO_PARAM_DOUBLE; /在pro/E中,所有的參數(shù)都是實數(shù)類型 value1.value.d_val=c; /鉆套孔徑即為工件鉆孔直徑ProParameterValueSet(¶m1, &value1); /設置新的參數(shù)值 value2.type=PRO_PARAM_DOUBLE; value2.value.d_val=a; /鉆套外徑,atof函數(shù)將串類型轉換成實數(shù)類型ProParamete

48、rValueSet(¶m2, &value2); value3.type=PRO_PARAM_DOUBLE; value3.value.d_val=b; /鉆套肩徑ProParameterValueSet(¶m3, &value3); value4.type=PRO_PARAM_DOUBLE; value4.value.d_val=l4; /鉆套長度ProParameterValueSet(¶m4, &value4);value5.type=PRO_PARAM_DOUBLE; value5.value.d_val=l5; /鉆套長度ProParameterValueSe

49、t(¶m5, &value5); value6.type=PRO_PARAM_DOUBLE; value6.value.d_val=l6; /鉆套長度ProParameterValueSet(¶m6, &value6);value7.type=PRO_PARAM_DOUBLE; value7.value.d_val=l7; /鉆套長度ProParameterValueSet(¶m7, &value7);value8.type=PRO_PARAM_DOUBLE; value8.value.d_val=l8; /鉆套長度ProParameterValueSet(¶m

50、8, &value8);ProSolidRegenerate(ProSolid)model, PRO_B_TRUE); /再生模型ProMdlSave(model); /保存模型/以上鉆套處理完畢/ OnOK(); /關閉對話框3.為dlg_jiajuti.cpp源程序添加必要的頭文件#include /包含pro/Toolkit必要的頭文件#include #include #include ProParameter.h#include ProSolid.h#include ProMdl.h#include ProModelItem.h#include ProUIInputpanel.h#i

51、nclude #import c:program filescommon filessystemadomsado15.dll no_namespace rename(EOF,adoEOF) rename(BOF,adoBOF) /上面一行導入ADO相關的類聲明B墊圈添加一個對話框資源如圖4-19所示:圖4-19 對話框4在上面的原始對話框中,添加靜態(tài)文本控件(Static Text)、編輯控件(Edit Control)和圖片控件(Picture Control),并將對話框界面修改成以下布局如圖4-20所示。圖4-20 對話框51.為工件參數(shù)輸入對話框添加類并為編輯控件關聯(lián)成員變量在對話框空

52、白處點擊鼠標右鍵,在彈出的快捷菜單中選擇“添加類”,類名稱為dlg_dianquan。選中編輯控件,點擊鼠標右鍵,在彈出的快捷菜單中選擇“添加變量”,為IDC_EDIT1添加一個double類型的變量,變量名取為m_dianquan。這個成員變量的初始值為零,下面改變初始值。打開dlg_dianquancpp源程序文件,找到如下代碼段并作相應的變量聲明:dlg_dianquan:dlg_dianquan(CWnd* pParent /*=NULL*/): CDialog(dlg_dianquan:IDD, pParent), m_dianquan(D_QUAN)2.為“確定”按鈕添加消息處理代

53、碼回到對話框設計界面,雙擊“確定”按鈕,會出現(xiàn)以下程序段(這是“確定”按鈕的單擊事件過程代碼):/ dlg 消息處理程序void dlg_dianquan:OnBnClickedOk()/ TODO: 在此添加控件通知處理程序代碼OnOK();將其中的兩行代碼刪除,并用以下的程序段替換:/ dlg_dianquan 消息處理程序void dlg_dianquan:OnBnClickedOk() /OK按鈕處理程序UpdateData(true); /將編輯框中的數(shù)據(jù)(工件孔徑)傳送到關聯(lián)變量m_DHole /根據(jù)SQL語句生成記錄集m_p4Recordset.CreateInstance(_u

54、uidof(Recordset);_variant_t RecordsAffected; CString vSQL; vSQL.Format(SELECT * FROM 墊圈WHERE 公稱尺寸d=%d,m_dianquan);m_p4Recordset=m_p4Connection-Execute(_bstr_t(vSQL),&RecordsAffected,adCmdText); if(m_p4Recordset-adoBOF)&(m_p4Recordset-adoEOF)AfxMessageBox(沒有滿足條件的記錄!);m_p4Recordset-Close();return;/從記錄

55、集獲取相應的值,并賦給變量/while(!m_p4Recordset-adoEOF) /如果要處理多條記錄,則可用循環(huán)語句/ /目前記錄集中只會有一條記錄/int d; /存墊圈孔徑CString S,H; /存墊圈外徑,高度。暫時全部設為串類型,后面再進行轉換 _variant_t vFieldValue;D_QUAN=m_dianquan; /直接取用文本框中所輸入的墊圈直徑(關聯(lián)變量的值)vFieldValue = m_p4Recordset-GetCollect(S);/獲取墊圈外徑S = (char*)_bstr_t(vFieldValue); /賦給變量vFieldValue =

56、m_p4Recordset-GetCollect(H);/獲取墊圈高度H = (char*)_bstr_t(vFieldValue); /賦給變量/m_p4Recordset-MoveNext(); /將記錄指針移到下一條記錄/聲明變量ProMdl model; /模型ProFamilyName partname; /零件模型文件名int nWindowID; /窗口標識ProModelitem feature; /特征ProParameter param1,param2,param3; /參數(shù)(變量個數(shù)應以所有模型中參數(shù)最多的為準)ProParamvalue value1,value2,va

57、lue3; /參數(shù)值(同上)/*打開墊圈模型*/ProStringToWstring(partname,dianquan.prt);ProMdlRetrieve(partname, PRO_MDL_PART, &model); /提取工作目錄中的零件模型ProMdlDisplay(model); /顯示模型 ProMdlWindowGet(model,&nWindowID); /獲取模型窗口標識符ProWindowActivate(nWindowID); /激活模型窗口 /初始化墊圈參數(shù)int i;ProMdlIdGet(model,&i);ProModelitemInit(model,i,P

58、RO_PART,&feature);ProParameterInit(&feature, LD, ¶m1); /這些參數(shù)在零件模型中應提前設置好ProParameterInit(&feature, LS, ¶m2);ProParameterInit(&feature, LH, ¶m3); /為墊圈參數(shù)賦新值(一定要對應上面?zhèn)€參數(shù)的順序) value1.type=PRO_PARAM_DOUBLE; /在pro/E中,所有的參數(shù)都是實數(shù)類型 value1.value.d_val=D_QUAN; /墊圈孔徑即為工件墊圈直徑ProParameterValueSet(¶m

59、1, &value1); /設置新的參數(shù)值 value2.type=PRO_PARAM_DOUBLE; value2.value.d_val=atof(S) ; /墊圈外徑,atof函數(shù)將串類型轉換成實數(shù)類型ProParameterValueSet(¶m2, &value2); value3.type=PRO_PARAM_DOUBLE; value3.value.d_val=atof(H); /墊圈高度ProParameterValueSet(¶m3, &value3);ProSolidRegenerate(ProSolid)model, PRO_B_TRUE); /再生模型P

60、roMdlSave(model); /保存模型/以上墊圈處理完畢/ /打開裝配文件ProMdlRetrieve(Lasm0003.asm,PRO_MDL_ASSEMBLY, &model);ProMdlDisplay(model);ProSolidRegenerate(ProSolid)model, PRO_B_TRUE); /一定要再生裝配模型OnOK(); /關閉對話框標準件和非標準件之間共同地方是:3.為dlg_dianquan.cpp源程序添加必要的頭文件、添加ADO類支持和相關變量#include /包含pro/Toolkit必要的頭文件#include #include #incl

溫馨提示

  • 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

提交評論