999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Creo和Excel二次開發(fā)零件參數(shù)化設計系統(tǒng)*

2020-03-22 03:30:02申逸騁
機械工程與自動化 2020年1期
關鍵詞:二次開發(fā)信息模型

胡 迪,羅 輝,張 偉,申逸騁

(合肥工業(yè)大學 智能制造技術研究院,安徽 合肥 230000)

0 引言

參數(shù)化設計可提高設計效率,其基本原理是:采用三維模型與程序控制相結(jié)合的方式,根據(jù)零件或組件的設計要求,建立一組能控制三維模型形狀和拓撲關系的設計參數(shù),參數(shù)化程序通過對零件或組件的設計參數(shù)編程來實現(xiàn)設計參數(shù)的檢索、修改以及三維模型的再生[1]。

Creo是目前最流行的三維CAD軟件之一,也是國內(nèi)外CAD/CAM軟件中用戶數(shù)最多的軟件之一,提供了 Creo/Toolkit、VB API、J-Link等多種二次開發(fā)接口[2-5],方便用戶通過 C/C++、Basic、Java等常用開發(fā)語言進行系統(tǒng)的二次開發(fā)。針對Creo二次開發(fā)進行參數(shù)化設計問題,國內(nèi)外學者做了大量的研究。臧巖[6]使用Pro/Toolkit構建了注塑模架的參數(shù)化設計系統(tǒng),實現(xiàn)了模架設計的自動化。張文彬等[7]使用Creo/Toolkit實現(xiàn)了階梯軸零件的參數(shù)化變型設計。李潤泉等[8]則依托Creo/Toolkit實現(xiàn)澆口套零件的參數(shù)化變型設計。孫太良[9]基于Creo二次開發(fā)了外嚙合圓柱齒輪優(yōu)化設計系統(tǒng)。以上利用Creo/Toolkit二次開發(fā)工具進行二次開發(fā)的參數(shù)化設計系統(tǒng)多聚焦于某些具體零件的參數(shù)化設計系統(tǒng)開發(fā),當需要擴充參數(shù)化設計系統(tǒng)庫時,需要重新修改代碼,以至于開發(fā)的產(chǎn)品使用范圍受限,靈活度大打折扣。此外,Creo/Toolkit使用C語言進行開發(fā),其開發(fā)周期長,學習曲線相對陡峭,也限制了行業(yè)從業(yè)人員參與系統(tǒng)的開發(fā)和維護。

Excel作為電子報表工具,內(nèi)置宏計算和VBA二次開發(fā)工具,在產(chǎn)品設計和工程計算中得到了廣泛的應用,是企業(yè)常用的設計開發(fā)工具之一[10-13]。本文使用Creo提供的VB API開發(fā)接口,在Excel平臺下開發(fā)零件參數(shù)化設計系統(tǒng),以期實現(xiàn)一套易于擴展和維護的零件參數(shù)化設計系統(tǒng)。

1 零件參數(shù)化設計系統(tǒng)分析

1.1 設計流程

參數(shù)化設計的零件在構型上相同,設計過程主要是對各尺寸進行修改,故零件參數(shù)化設計主要由“確定構型”到“確定參數(shù)”兩個步驟組成。設計人員首先在參數(shù)化設計庫中選擇與設計目標一致的零件三維模型,確定通用件構型,獲取須修改的主要參數(shù)。在確定參數(shù)后,通過系統(tǒng)計算或直接輸入確定所有參數(shù)值。最后,通過參數(shù)化設計接口在Creo中對已有模型進行修改,獲得最終的設計結(jié)果。零件參數(shù)化設計流程如圖1所示。

1.2 關鍵模塊

參數(shù)化設計系統(tǒng)主要包含兩個關鍵模塊:一是參數(shù)修改模塊,主要用于確定需要修改的參數(shù)及其數(shù)值;二是零件信息快速查找模塊,能夠幫助設計人員快速找到需要修改的零件。

1.2.1 參數(shù)模塊修改

與用戶直接使用CAD工具畫圖不同,參數(shù)化設計系統(tǒng)并不需要在三維模型中確定所有尺寸參數(shù),利用零件尺寸與一些工程參數(shù)(壓強、力、材料牌號以及相關的某一配合或驅(qū)動尺寸等)的相關性可以確定部分關鍵尺寸參數(shù),另外諸如倒角等一些尺寸無需修改。由于參數(shù)間存在一定的關聯(lián)性,參數(shù)的修改主要包括以下兩種類型:

(1)主動修改。必須人工輸入?yún)?shù)的值,所有直接參數(shù)及部分間接參數(shù)均需通過此類修改方式進行修改。參數(shù)修改的方式有兩種,一種為設計人員根據(jù)實際情況輸入任意數(shù)值,另一種為已標準化的數(shù)據(jù),用戶只能在定義好的表格數(shù)據(jù)中選取合適的數(shù)值。

(2)聯(lián)動修改。部分參數(shù)之間存在一定的關系,某些參數(shù)值可以根據(jù)相關參數(shù)值通過一定的映射進行修改,如在缸體的設計過程中,壁厚尺寸值可通過內(nèi)部液體的壓強值計算得出,無需人工填寫。由于Creo提供了關系這一工具,實現(xiàn)了參數(shù)的關聯(lián)功能,故只要在模型中設置好關系,確定需要主動修改的參數(shù)后聯(lián)動修改即可直接計算得到關聯(lián)的參數(shù)。

參數(shù)值的修改流程如圖2所示。用戶根據(jù)實際情況,首先輸入主動修改的參數(shù)值;之后系統(tǒng)根據(jù)設定好的關系計算得到聯(lián)動修改參數(shù)的值;最后通過參數(shù)化設計接口在三維軟件系統(tǒng)下修改已有模型的相關尺寸,完成參數(shù)的修改過程。

圖1 零件參數(shù)化設計流程

圖2 參數(shù)值的修改流程

1.2.2 零件信息快速查找模塊

參數(shù)化設計系統(tǒng)需考慮系統(tǒng)的可擴展性和維護性,應只需一次編碼后僅需維護零件庫和相關參數(shù)設計信息即可。零件信息快速查找模塊的關鍵技術包括以下兩個方面:

(1)零件通用信息模板的建立。確保所有零件的信息能夠以標準化的方式保存,由模板記錄零件的路徑以及相關參數(shù)的名稱、類型等信息,如圖3所示。

圖3 零件通用信息模板

(2)零件庫的建立。Excel文件本身與數(shù)據(jù)庫有點類似,一個Excel文件即一個工作簿,包含了多張工作表,每個工作表均能記錄獨立的信息,并且各工作表之間的信息可以互相關聯(lián)。故為便于維護,系統(tǒng)不使用專業(yè)數(shù)據(jù)庫系統(tǒng),將所有的信息均存放在一個單獨的文件中,每個零件的信息以標準化模板的形式保存在對應的工作表內(nèi),在工作表內(nèi)進行參數(shù)的修改;在Excel工作簿內(nèi)設置一個工作表專門進行零件選擇和零件的生成等操作。零件庫的構架如圖4所示。

2 系統(tǒng)實現(xiàn)

2.1 開發(fā)環(huán)境設定

系統(tǒng)使用 Creo 2.0M060和 Excel 2016進行開發(fā),需要一定的配置后方能進行代碼編寫。

2.1.1 VB API環(huán)境配置

系統(tǒng)使用VB API對Creo進行二次開發(fā),需要首先配置VB API的開發(fā)環(huán)境,主要包括以下3個步驟:

(1)設置系統(tǒng)環(huán)境變量。添加PRO_COMM_MSG_EXE到環(huán)境變量,變量值填寫pro_comm_msg.exe所在的路徑加文件全名。pro_comm_msg.exe位于CREO安裝目錄中Common Files\datecode\machine type\obj目錄下。

(2)注冊COM服務器。以管理員權限運行CREO安裝目錄下Parametric/bin中的vb_api_register.bat文件即可。如需反注冊,以管理員權限運行vb_api_unregister.bat即可。

(3)配置選項。該步可選,主要解決二次開發(fā)過程中使用函數(shù)進行重生操作出現(xiàn)的IpfcXToolkitBadContext錯誤,在CREO配置編輯器中將選項regen_failure_handling的值設為resolve_mode。

圖4 零件庫的構架

2.1.2 添加VB API項目引用

代碼在Excel內(nèi)嵌VBA環(huán)境下編寫,首先要添加VB API項目引用。打開Excel內(nèi)嵌的宏編輯器,點擊工具-引用菜單,在彈出的對話框中選中“Creo VB API Type Library for Creo Parametric”即可,如圖5所示。

圖5 添加Creo VB API引用

2.2 關鍵代碼實現(xiàn)

系統(tǒng)主要包含模型的快速檢索、Creo會話操作、Creo模型操作、參數(shù)修改等四部分關鍵內(nèi)容。

(1)模型的快速檢索。如前文所述,模型庫中每個模型對應一個Excel工作表,工作表名為模型的模板名稱,系統(tǒng)通過讀取所有的工作表名形成模型庫清單供用戶選取,其關鍵代碼如下:

Private Sub Worksheet_Activate()

Dim s As String

Dim i As Integer

s=""

For i=2To Sheets.Count

s=s &Sheets(i).Name & ","

Next

s=Left(s,Len(s)-1)

Range("A6").Select

With Selection.Validation

.Delete

.Add Type:=xlValidateList,F(xiàn)ormula1:=s

End With

End Sub

(2)Creo會話操作。VB API只能使用異步模式進行開發(fā),系統(tǒng)首先需要創(chuàng)建一個會話再進行Creo的相關操作。由于VBA環(huán)境使用老式的vb6的語法,因此代碼與VB API的語法稍有不同,如對對象的賦值需要使用Set語句進行賦值等。新建會話關鍵代碼如下:

Dim asyncConnection As IpfcAsyncConnection

Dim cAC As CCpfcAsyncConnection

Dim baseSession As IpfcBaseSession

Dim creoapp As String

creoapp=Sheets("計算界面").Range("B3")+"-g:no_graphics-i:rpc_input"//參數(shù)表示不顯示Creo界面

Set cAC=New CCpfcAsyncConnection

Set asyncConnection=cAC.Start(creoapp,"")

Set baseSession=asyncConnection.Session

(3)Creo模型操作。系統(tǒng)首先將模板文件復制到用戶指定的目錄,之后在新建的會話中打開模型并進行參數(shù)操作,其關鍵代碼如下:

Dim model As IpfcModel

Dim modelDesc As IpfcModelDescriptor

Dim retrieveModelOptions As IpfcRetrieveModelOptions

Dim cmodelDescriptor As New CCpfcModelDescriptor

Dim cretrieveModelOptions As New CCpfcRetrieveModelOptions

outputfile=Sheets("計算界面").Range("B4")

modelname=Sheets("計算界面").Range("A6")

modelfile=Sheets(modelname).Range("B2")

Call FileCopy(modelfile,outputfile)

Set modelDesc=cmodelDescriptor.Create(EpfcModelType.EpfcMDL_PART,"","")

modelDesc.Path=outputfile

Set retrieveModelOptions=cretrieveModelOptions.Create

retrieveModelOptions.AskUserAboutReps=False

Set model= baseSession.RetrieveModelWithOpts(modelDesc,retrieveModelOptions)

(4)參數(shù)修改。這是系統(tǒng)實現(xiàn)的最核心部分,系統(tǒng)讀取工作表中相關參數(shù)信息對模型進行修改,其關鍵代碼如下:

For i=4To Sheets(modelname).UsedRange.Rows.Count

Call Modifiy_Param(model,Sheets(modelname).Range("A"+Trim(Str(i))),Sheets(modelname).Range("B"+Trim(Str(i))),Sheets(modelname).Range("C"+Trim(Str(i))))

Next

Private Sub Modifiy_Param(model As IpfcModel,ParamName As String,ParamType As String,ParamValue As String)

Dim iParameterOwner As IpfcParameterOwner

Dim iParamValue As IpfcParamValue

Dim cmodelItem As New CMpfcModelItem

Dim parameter As IpfcParameter

'Create iParamValue類

If(ParamType="浮點型")Then

Set iParamValue = cmodelItem.CreateDoubleParamValue(CSng(ParamValue))

ElseIf(ParamType="整形")Then

Set iParamValue=cmodelItem.CreateIntParamValue(CLng(ParamValue))

ElseIf(ParamType="字符串")Then

Set iParamValue=cmodelItem.CreateStringParamValue(ParamValue)

ElseIf(ParamType="布爾型")Then

Set iParamValue=cmodelItem.CreateBoolParamValue(CBool(ParamValue))Else

Set iParamValue=cmodelItem.CreateNoteParamValue(CLng(ParamValue))

End If

Set iParameterOwner=model

Set parameter=iParameterOwner.GetParam(ParamName)

Call parameter.SetScaledValue(iParamValue,Nothing)

End Sub

3 工程應用實例

在上述研究的基礎上,綜合設計經(jīng)驗,開發(fā)了液壓機板材參數(shù)化設計系統(tǒng),系統(tǒng)主要操作界面如圖6所示。

圖6 液壓機板材參數(shù)化設計系統(tǒng)主要操作界面

設計人員首先在圖6的下拉框中選擇需要生成的零件,同時修改文件保存路徑;打開如圖7所示的對應工作表,修改參數(shù)值;確定參數(shù)之后,點擊圖7上的生成按鈕,系統(tǒng)會自動修改參數(shù)生成對應的模型。如果用戶需要添加新零件時,可以新建一個工作表,按照圖7的內(nèi)容模板添加修改對應的文件、參數(shù)等信息,即可完成零件庫的增加操作。

圖7 參數(shù)修改界面

4 結(jié)語

本文闡述了利用Excel二次開發(fā)Creo的設計流程和方法,并利用Creo提供的VB API接口開發(fā)了一套零件參數(shù)化設計系統(tǒng)。開發(fā)的系統(tǒng)編碼簡單,同時具有較強的可擴展性,無需修改源碼即可完成參數(shù)化設計零件庫的維護,有利于技術員的掌握、維護和擴充。該系統(tǒng)能夠節(jié)省設計時間,提高設計效率。此外,本文的二次開發(fā)方式相較基于Creo/Toolkit的二次開發(fā)具有易于理解、編程和維護方便等特點,也為開發(fā)人員提供了新的二次開發(fā)思路。

猜你喜歡
二次開發(fā)信息模型
一半模型
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
淺談基于Revit平臺的二次開發(fā)
甘肅科技(2020年20期)2020-04-13 00:30:02
淺談Mastercam后處理器的二次開發(fā)
模具制造(2019年3期)2019-06-06 02:11:02
西門子Easy Screen對倒棱機床界面二次開發(fā)
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
3D打印中的模型分割與打包
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
基于Pro/E二次開發(fā)的推土鏟參數(shù)化模塊開發(fā)
主站蜘蛛池模板: a级毛片免费看| 国产黑丝视频在线观看| 99人妻碰碰碰久久久久禁片 | 青草免费在线观看| 日韩亚洲综合在线| 国产噜噜噜视频在线观看| 亚洲欧美综合在线观看| 欧美a在线| 尤物午夜福利视频| 欧美亚洲欧美区| 在线观看免费国产| 婷婷综合缴情亚洲五月伊| 亚洲成人福利网站| 国产欧美亚洲精品第3页在线| 日本黄色不卡视频| 欧美精品在线视频观看| 国产一级妓女av网站| 日本久久久久久免费网络| 国产高清在线丝袜精品一区| 乱人伦中文视频在线观看免费| 四虎精品黑人视频| 欧美有码在线| 欧美日韩国产在线人成app| 久久永久精品免费视频| 成人亚洲国产| 国产小视频免费观看| 国产美女无遮挡免费视频| 国产青榴视频在线观看网站| 日韩成人在线视频| 国产自视频| 亚洲日韩精品伊甸| 在线免费无码视频| 久热中文字幕在线| 亚洲床戏一区| 色哟哟国产精品| 久久精品91麻豆| 欧美视频二区| 一本色道久久88综合日韩精品| 99久视频| 亚洲色图欧美在线| 欧美在线网| 天天摸夜夜操| 亚洲av日韩av制服丝袜| P尤物久久99国产综合精品| 女人av社区男人的天堂| 女人一级毛片| 亚洲伊人天堂| 真实国产乱子伦视频| 香蕉色综合| 国产AV无码专区亚洲A∨毛片| 2020最新国产精品视频| 啪啪国产视频| 熟妇人妻无乱码中文字幕真矢织江 | 国产女人18水真多毛片18精品| 久久久久久久蜜桃| 亚洲天堂啪啪| 国内精品九九久久久精品| 夜夜拍夜夜爽| 久久综合婷婷| 狠狠做深爱婷婷久久一区| 51国产偷自视频区视频手机观看 | 国产精品久久自在自2021| 日韩久草视频| 伊在人亚洲香蕉精品播放| 夜夜操天天摸| 国产精品久久久久久久伊一| 亚洲日韩在线满18点击进入| 91国内在线视频| 天天色综网| 欧美精品v| 美女被操黄色视频网站| 黄色一级视频欧美| 亚洲va精品中文字幕| 亚洲精品手机在线| 精品91视频| 日本91视频| 日韩欧美91| 亚洲系列中文字幕一区二区| 亚洲高清免费在线观看| 国产精品lululu在线观看| 日本不卡视频在线| 韩日无码在线不卡|