李沁蓉
(山西財貿(mào)職業(yè)技術(shù)學(xué)院,山西太原030031)
探究基于VB.NET的Pro/E二次開發(fā)關(guān)鍵技術(shù)
李沁蓉
(山西財貿(mào)職業(yè)技術(shù)學(xué)院,山西太原030031)
介紹了基于VB.NET的Pro/E二次開發(fā)關(guān)鍵技術(shù),其中創(chuàng)建智能化三維模型庫是其關(guān)鍵技術(shù)。以齒輪為例分析了其參數(shù)化關(guān)鍵技術(shù),并使用VB.NET工具二次開發(fā)了Pro/E;編程建立的動態(tài)的鏈接庫,不但適于有一定結(jié)構(gòu)、基本參數(shù)確定的機械零件族,而且對其它工程數(shù)據(jù)模型庫的設(shè)計同樣有重要的參考價值。
VB.NET;Pro/E二次開發(fā);關(guān)鍵技術(shù)
傳統(tǒng)模式的Pro/E二次開發(fā)采用大都是VC,主要是由于以C語言基礎(chǔ),給其用戶提供了大量的Pro/E資源。此外,其還調(diào)用的庫函數(shù)以及其中的頭文件。但是當(dāng)前,這種技術(shù)已經(jīng)無法適應(yīng)新的應(yīng)用的需求,在本文中,筆者重點介紹了基于VB.NET的Pro/E二次開發(fā)關(guān)鍵技術(shù)。
參數(shù)化的設(shè)計程度,一般情況下是用來約束表達(dá)產(chǎn)品模型的形狀特征,用一組參數(shù)來控制設(shè)計的結(jié)果,通過變換一組參數(shù)創(chuàng)建一系列形狀較為相似的零件參數(shù)化設(shè)計技術(shù)具有強有力的尺寸驅(qū)動,具有修改圖形的功能,從而能夠為初始產(chǎn)品的產(chǎn)品設(shè)計、建模和產(chǎn)品修改等提供有效的手段,有效滿足設(shè)計具有相同或者相近幾何拓?fù)浣Y(jié)構(gòu)的工程系列產(chǎn)品,或者相應(yīng)的工藝裝備需求。
基于VB.NET Pro/E的二次開發(fā)技術(shù),利用標(biāo)準(zhǔn)零件之間所具有的相似性,發(fā)揮 Pro/E所具有的建模功能,使用二次開發(fā)工具,比如族表工具、用戶定義特征(UDF)Pro/Program、J-link、Pro/TOOLKIT等來實現(xiàn)建模。相關(guān)的理論研究給出了各二次開發(fā)工具的一些簡單介紹。除此以外,Pro/E4.0提供的二次開發(fā)API工具包,還包含基于Pro/Web Link的二次開發(fā)過程。該方法使用的是javascript語言,以網(wǎng)頁形式來訪問Pro/E模型;和基于VB.API的二次開發(fā)過程特別相似。Pro/EWildfire 4.0開發(fā)能夠采用VisualBasic API,通過 Visual Basic.NET應(yīng)用程序和應(yīng)用程序(如 Microsoft Word、Excel或 Access)中的Visual Basic宏來進(jìn)行二次開發(fā)。通過查閱相關(guān)的文獻(xiàn)資料,查閱相關(guān)刊物上發(fā)表的論文中,筆者看到,這些理論研究還系統(tǒng)介紹了基于Automation GATEWAY插件和VB.NET的二次開發(fā)關(guān)鍵技術(shù)。Automation GATEWAY便是RAND公司所研發(fā)的針對Pro/E軟件的二次開發(fā)關(guān)鍵工具,與 Pro/E系統(tǒng)自帶的二次開發(fā)工具Pro/TOOLKIT相比,兩者相比較而言,該系統(tǒng)簡單易用。應(yīng)用 Automation GATEWAY能夠自動實現(xiàn)Pro/E建模的任務(wù),創(chuàng)建相關(guān)的用戶界面,完成自動設(shè)計任務(wù);而應(yīng)用 Automation GATEWAY能夠把所有支持 ActiveX的應(yīng)用程序和Pro/E建立直接或者間接的聯(lián)系。利用VB.NET技術(shù),能夠使MicrosoftOffice產(chǎn)品(如Word,Excel等)和Pro/E對象間交換數(shù)據(jù)。在這一過程檔中,Automation GATEWAY在VB和Pro/E間起到的是橋梁和紐帶的作用。通過 AutomationGATEWAY,VB也能夠訪問Pro/E的底層資源文件。
對于幾何特征程序的自動建模而言,提供有下面3種方法:
①特征描述
每個特征都是由具有不同特征的元素樹來定義的。在程序中,每個特征元素樹每被賦值一次,就能夠產(chǎn)生一個特征[1],多個特征疊加起來也就自動形成了產(chǎn)品的模型。特征元素樹中的信息可分為三類:①特征的本身具有全部的選項和屬性,也就是特征類型、名稱等;②特征和已經(jīng)存在的幾何實體的優(yōu)良密切的參考關(guān)系;③其用于構(gòu)造特征平面圖形的起始位置。
②族表
族表是自動建模的一種,該程序的步驟為:首先,手工構(gòu)建產(chǎn)品的相關(guān)模型,然后把其當(dāng)做族表的類屬,緊接著在族表中定義各控制參數(shù),以此控制模型大小和形狀。通過這個步驟,就能夠在程序中改變各參數(shù)值,從而得到所需的衍生件;衍生件的產(chǎn)生是獨立的,無需定義參考基準(zhǔn)。
③用戶定義特征
與族表法相比,用戶定義法與其有相同之處,就是都要預(yù)先手工構(gòu)建相應(yīng)的產(chǎn)品模型。模型創(chuàng)建完成以后,其定義所應(yīng)包含的信息有:參考基準(zhǔn)、幾何數(shù)據(jù),可變尺寸和可變尺寸的記號。模型建完后,需要在模型后添加文件后綴,通過這種方式,就可以通過改變文件的尺寸來產(chǎn)生所需的衍生件[2]。
用戶定義法與族表法不同之處在于,該方法編程過程要比手工建模過程容易,主要表現(xiàn)在容易理解。
①按照上段中的說法,筆者首先手工構(gòu)建一個任意尺寸的長方體,在其頭部倒圓角,從而形成沖頭模型,然后按照上述方法,改變其用戶定義特征文件的文件名,將“punch”改為“gph”,也就形成了其建模。
②根據(jù)上面的步驟,我們?yōu)闆_頭模型的程序建立了相應(yīng)的建模函數(shù),該程序可根據(jù)所建模型的不同,輸入相應(yīng)的長、寬、高和圓角的值,然后程序會自動構(gòu)造出沖頭模型,而且會在Pro/E窗口顯示。
與Pro/toolkit相比較而言,VB.NET的開發(fā)模式采用的只能是異步模式,也就是應(yīng)用程序獨立于Pro/E之外,然后再啟動Pro/E或者是連接Pro/E到指定的進(jìn)程當(dāng)中。一般而言,該異步模式可分為兩種,一種是簡單異步模式,一種是完全異步模式。二者的區(qū)別在于,前者不處理來自于Pro/E的請求,應(yīng)用程序當(dāng)中也沒用于處理Pro/E請求的listener;但完全異步模式有處理Pro/E請求的listener,存在于其應(yīng)用程序中,這也就是說,完全異步模式能夠用于在Pro/E中添加菜單的請求操作,而簡單異步模式則無法完成該請求[3]。
根據(jù)筆者的經(jīng)驗,筆者認(rèn)為,在Pro/E二次開發(fā)中,核心問題就是基礎(chǔ)模型的建立。正確的基礎(chǔ)模型的建立,是Pro/E二次開發(fā)的基礎(chǔ)和前提。建立基礎(chǔ)模型時需要關(guān)注以下兩個關(guān)鍵問題:
4.1 建立恰當(dāng)?shù)幕A(chǔ)模型
這里所說的恰當(dāng)?shù)幕A(chǔ)模式,指的是在基礎(chǔ)模型的建立過程當(dāng)中,各個特征之間應(yīng)該具有合適的參照關(guān)系,不能出現(xiàn)因為某個特征的修改或者是刪除而影響到其他特征的狀況。
4.2 合理使用相關(guān)關(guān)系式和參數(shù)
模型關(guān)系式有重要的作用,其能夠?qū)崿F(xiàn)對模型中尺寸的控制,基礎(chǔ)模型中的關(guān)系式應(yīng)當(dāng)可以正確反映各個尺寸之間的約束關(guān)系,并準(zhǔn)確控制基礎(chǔ)模型的變化與重生。而模型中的系列參數(shù)相當(dāng)于為模型提供了一個VB.NET與Pro/E模型交互的接口。通過這個接口,VB.NET應(yīng)用程序就可以采用改變參數(shù)的值的辦法來實現(xiàn)改變模型的目的。
VB.NET完全采用面向開發(fā)對象的編程方式,沒有固定的對象指針,因此,該系統(tǒng)可以為用戶提供各種模型和方法,這些方法和模型可以訪問Pro/E的絕大部分?jǐn)?shù)據(jù)庫和其內(nèi)部的應(yīng)用函數(shù)。
圖1 基于VB.NET的Pro/E二次開發(fā)基本開發(fā)步驟示意圖
各類之間具有明確的繼承關(guān)系,也就使這些類和方法很容易理解,且比較容易掌握?;?VB.NET的Pro/E二次開發(fā)的基本步驟和使用的主要類和方法如圖1所示[4]。
6.1 建立各齒輪的基礎(chǔ)模型分析
在建立各個齒輪的基礎(chǔ)模型過程中,用到的參數(shù)包括M(模數(shù),斜齒輪為MN)、Z(齒數(shù))以及ALPHA(壓力角)、B(齒寬),此外,還有X(變位系數(shù))、HAX(齒頂高系數(shù))和CX(頂隙系數(shù))等。在齒輪基礎(chǔ)模型中,要使用各種關(guān)系式對各尺寸進(jìn)行相應(yīng)的約束和控制。
6.2 程序界面和功能設(shè)計
程序界面的設(shè)計應(yīng)遵循簡單明了的設(shè)計原則。模型中的系統(tǒng)集應(yīng)為二次開發(fā)提供快速、方便的界面。
程序界面的主要功能有:顯示齒輪參數(shù)、修改齒輪參數(shù),以及顯示系統(tǒng)單位制、修改系統(tǒng)單位制。此外,程序界面還能夠選擇單位的轉(zhuǎn)換方式,以便轉(zhuǎn)換尺寸。
6.3 代碼的編寫
代碼的編寫是基于VB.NET的Pro/E二次開發(fā)的核心部分,當(dāng)然,由于程序編寫極為繁瑣,同時它也是最容易出現(xiàn)錯誤的部分。
代碼編寫過程中,要最大程度上發(fā)揮VB.NET面向?qū)ο缶幊痰膬?yōu)勢和作用,對功能重復(fù)的代碼,可以采用類進(jìn)行處理,從而可以有效減少代碼的編寫量,同時也能夠降低錯誤的發(fā)生率。此外,還可以提高代碼的可維護(hù)性[5]。
該齒輪庫中一共有14種模型,但每種模型的編寫處理過程非常相似,不同之處在于要處理的參數(shù)數(shù)量。因此,我們就可以建立一個相應(yīng)的類來統(tǒng)一來進(jìn)行處理。類的建立也是代碼編寫的核心內(nèi)容,該類主要的代碼有:
Private parameterOwner As IpfcParameterOwner//
Public Sub New(ByVal fileName As String,ByVal paraArry As String,ByVal form As Object)//類的初
始化子程序
appPath=Application.StartupPath//
session=conn.Session//建立相應(yīng)的連接
IpfcBaseSession對象
modelDescr=
NeCCpfcModelDescriptor().CreateFromFileName (appPath+fileName)//生成模型并說明類對象指示系統(tǒng)基礎(chǔ)模型的名稱以及位置
odel=session.RetrieveModel(modelDescr)//將基礎(chǔ)模型讀入內(nèi)存
IpfcParameterOwner//用于處理參數(shù)的讀取與重新賦值等
paras=paraArry//為參數(shù)數(shù)組賦相應(yīng)的值
TextBox//取值并將該值賦給模型
For i=1 To UBound(paras)
If ctr.l GetType.Name="TextBox"And ctr.l Tag =IThen
paraValue=New CMpfcModelItem().CreateDoubleParamValue(ctr.l Text)
CType(parameterOwner.GetParam(paras(i)),Ipfc-BaseParameter).Value=paraValue
End If
Next
……
regInstr=New CCpfcRegenInstructions.Create (True,Nothing,Nothing)//生成或者是再生類,并用于指示系統(tǒng)模型重生的方式
……
End Sub
……
通過本文,我們可以得到:
①使用Pro/E二次開發(fā)工具VB.NET,能夠容易地實現(xiàn)程序自動進(jìn)行特征建模的功能,而且所建立的模型可以由程序自動加入非常豐富的非幾何特征,并存入模型的數(shù)據(jù)庫當(dāng)中,以及特征庫中,為CAD/CAM/CAE/CAPP系統(tǒng)集成打下堅實的基礎(chǔ)[6]。
②用戶定義特征的方法適用于幾乎全部模型的程序建模,因此,本文的實例中所選用的方法和程序?qū)τ谄渌a(chǎn)品模型具有借鑒意義。
[1]孫麗.基于Pro/E二次開發(fā)的曲軸設(shè)計系統(tǒng)[D].哈爾濱:東北林業(yè)大學(xué),2008.
[2]何艷麗,郭津津.基于Pro/E二次開發(fā)的參數(shù)化設(shè)計技術(shù)研究與應(yīng)用[J].天津理工大學(xué)學(xué)報,2009(9).
[3]劉和榮,姚涵珍,陳建平.Pr o/E二次開發(fā)創(chuàng)建零件模型庫關(guān)鍵技術(shù)的研究[J].天津科技大學(xué)學(xué)報,2008(7).
[4]賴朝安,李振南,孫延明,等.Pro/E二次開發(fā)關(guān)鍵技術(shù)[J].機械設(shè)計與制造工程,2010(2).
[5]賈海利,王仲民,劉靜靜.Pro/E二次開發(fā)關(guān)鍵技術(shù)的研究與應(yīng)用[J].新技術(shù)新工藝,2010(9).
[6]高霄漢,張予川.基于參數(shù)化技術(shù)的Pro/E二次開發(fā)和應(yīng)用[J].交通與計算機,2013(9).
Exp loration of Pro/E Secondary Development Key Technology Based on VB.NET
LIQin-rong
(Shanxi Vocational&Technical College of Finance&Trade,Taiyuan 030031,China)
This paper introduces the Pro/E secondary development key technology based on VB.NET,in which establishing intelligent three-dimensionalmodel library is its key technology.In this paper,taking the gear as example,the author analyzes the parameterization key technology and applies VB.NET tool tomake a secondary development of Pro/E;the dynamic link library established through programming not only is applicable to mechanical parts with certain structure and definite basic parameters,but also is of great reference value to the design of other engineering datamodel library.
VB.NET;Pro/E secondary development;key technology
TP391.72
B
1673-5382(2014)02-0076-04
(責(zé)任編輯 侯中巖)
2014-04-10
李沁蓉(1969-),女,山西沁水人,山西財貿(mào)職業(yè)技術(shù)學(xué)院講師.