• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于Creo的智能模型庫插件研究與開發(fā)

      2020-04-20 10:46晏恒兵仲梁維
      軟件工程 2020年4期
      關(guān)鍵詞:模型庫

      晏恒兵 仲梁維

      摘? 要:在產(chǎn)品設(shè)計(jì)過程中,傳統(tǒng)的手工建模煩瑣、重復(fù)、效率低。建立一個完善的三維零件庫不僅可以節(jié)約產(chǎn)品的設(shè)計(jì)時間,更有益于零件的標(biāo)準(zhǔn)化。通過Creo提供的Pro/TOOLKIT接口,SQL數(shù)據(jù)庫技術(shù),MFC及阿里云對象存儲技術(shù),在VS2012開發(fā)環(huán)境下,對Creo模型庫插件進(jìn)行了設(shè)計(jì),實(shí)現(xiàn)了用戶直接通過Creo插件獲取到各種型號的三維模型。

      關(guān)鍵詞:Creo二次開發(fā);MFC;模型庫;插件設(shè)計(jì);SQL

      中圖分類號:TP391? ? ?文獻(xiàn)標(biāo)識碼:A

      Abstract:In the process of product design,traditional manual modeling is tedious,repetitive,and inefficient.Establishing a perfect 3D part library can not only save the design time of products but also benefit the standardization of parts.Through the Pro/TOOLKIT interface provided by Creo,SQL database technology,MFC,and Aliyun object storage technology,in the VS2012 development environment,the plug-in of Creo model library was designed to realize that users can directly obtain various types of 3d models through the plug-in of Creo.

      Keywords:secondary development of Creo;MFC;model library;plug-in design;SQL

      1? ?引言(Introduction)

      隨著互聯(lián)網(wǎng)、大數(shù)據(jù)、AI技術(shù)的飛速發(fā)展,我國工業(yè)正在進(jìn)行著轉(zhuǎn)型升級,通過信息技術(shù)和實(shí)體經(jīng)濟(jì)的相互融合,網(wǎng)絡(luò)科技對數(shù)據(jù)資源的管理整合,可以有效地提高工業(yè)質(zhì)量和生產(chǎn)效率[1]。在使用Creo軟件進(jìn)行設(shè)計(jì)工作中,會經(jīng)常用到一些常用件、標(biāo)準(zhǔn)件、非標(biāo)準(zhǔn)件和成品設(shè)備等幾何模型,且隨著設(shè)計(jì)工作的增長而不斷積累增多,這些積累的設(shè)計(jì)模型成為設(shè)計(jì)資源,將為以后的設(shè)計(jì)工作提供極大的便利,主要表現(xiàn)在提高了設(shè)計(jì)效率和質(zhì)量[2]。將這些模型按品牌、系列、型號進(jìn)行分類,并通過阿里云對象存儲OOS提供的API接口將模型上傳至服務(wù)器端。用戶即可通過Creo插件來獲取這些模型,并插入到裝配體中。

      2? 模型庫設(shè)計(jì)與分析(Model library design and analysis)

      Creo是整合了PTC公司的三個軟件Pro/Engineer的參數(shù)化技術(shù)、CoCreate的直接建模技術(shù)和ProductView的三維可視化技術(shù)的新型CAD設(shè)計(jì)軟件包,其強(qiáng)大的參數(shù)化設(shè)計(jì)技術(shù),以及提供的可擴(kuò)展功能的VBAPI,VC++結(jié)合ProToolkit,Java結(jié)合J-Link二次開發(fā)的接口,使得其在機(jī)械、電子、模具、汽車、航空航天等行業(yè)得到了廣泛的應(yīng)用[2]。基于各種開發(fā)接口的特征和插件需求說明,選用功能齊全的ProToolkit接口進(jìn)行插件的開發(fā)。

      ProToolkit使用面向?qū)ο箫L(fēng)格的C語言編程,并且提供了用于底層資源調(diào)用的函數(shù)庫和頭文件,外部應(yīng)用程序可以通過這些函數(shù)來訪問Creo[3]。此外,ProToolkit應(yīng)用程序有兩種工作模式,同步模式和異步模式,由于插件需要與Creo一同啟動,所以采用同步模式。

      接下來,我們對整個模型庫進(jìn)行詳細(xì)分析。

      ①供應(yīng)商通過阿里云對象存儲OOS提供的API接口將模型上傳至阿里云服務(wù)器,上傳模型的同時,將模型的品牌、系列、型號、價(jià)格寫入模型數(shù)據(jù)庫中,并在阿里云服務(wù)器端生成相應(yīng)的模型下載鏈接。

      ②在用戶端,插件的操作界面由四個對話框組成,分別是模型庫、用戶登錄、路徑配置、預(yù)選品牌。用戶打開插件后,首先需要登錄,若用戶沒有賬號,登錄對話框提供了用戶注冊功能。登錄成功后,插件通過ADO方式讀取遠(yuǎn)程數(shù)據(jù)庫來獲取用戶信息,包括用戶名、密碼、是否為VIP用戶、賬戶資金數(shù),以及用戶經(jīng)常下載的模型品牌。隨后可選擇性地對模型品牌預(yù)先選取,以及對下載的模型存放路徑進(jìn)行配置。以上的用戶登錄信息,以及配置路徑在第一次設(shè)定好后均會保存至注冊表,方便下次直接進(jìn)行模型庫的訪問。在模型庫界面,主要用來獲取需要的模型,用戶可以通過型號,品牌兩種方式是來搜索模型。

      ③模型型號選好后,點(diǎn)擊下載模型,此時,插件根據(jù)用戶的選擇從模型數(shù)據(jù)庫獲取模型信息,主要包括模型品牌、系列、型號、子零件和價(jià)格。若用戶為VIP或賬戶資金數(shù)大于模型價(jià)格,則插件通過鏈接將模型從阿里云下載到本地并直接插入到Creo中,否則自動打開瀏覽器,跳轉(zhuǎn)到用戶充值界面。

      3? ?模型庫開發(fā)(Model library development)

      3.1? ?環(huán)境配置

      在VS2012新建一個MFC DLL項(xiàng)目后,需要對其進(jìn)行環(huán)境配置。首先將配置屬性平臺改為“活動(X64)”,之后添加包含目錄和庫目錄,并在預(yù)處理定義中添加“PRO_USE_VAR_ARGS”,最后在附加依賴庫中添加“wsock32.lib,psapi.lib,netapi32.lib,mpr.lib,ucore.lib,udata.lib,protk_dllmd.lib”。

      3.2? ?創(chuàng)建菜單

      菜單可以說是程序與Creo進(jìn)行交互的重要通道。在Creo環(huán)境加載Pro/T-oolkit應(yīng)用程序時,首先調(diào)用初始化函數(shù)user_initialize(),該函數(shù)用于設(shè)置需要添加的菜單,以及其他的一些初始值的設(shè)置,與C程序的“main”函數(shù)作用相當(dāng)。創(chuàng)建菜單的語句在初始化函數(shù)內(nèi)部執(zhí)行。ProMenubarMenuAdd()用于向Creo中添加一個新的菜單,菜單項(xiàng)在菜單體系中不能有相同的名字,菜單標(biāo)簽名必須與信息文件中對應(yīng)字段的表示關(guān)鍵字相同[4]。 ProMenubarPushbutton-add()函數(shù)在新的菜單中添加一個按鈕,在該函數(shù)前需要添加動作函數(shù)ProCmd-ActionAdd(),用戶點(diǎn)擊按鈕后,可響應(yīng)該函數(shù)。動作函數(shù)的功能主要為彈出MFC對話框,整個插件需要彈出四個對話框,故需要添加四個按鈕,四個不同的動作函數(shù)來響應(yīng)MFC對話框的創(chuàng)建操作。

      3.3? ?登錄模塊

      環(huán)境配置成功后,便可以開始程序編寫。由于Pro/Toolkit自帶的UI界面資源文件編寫不方便,這里使用MFC對話框來設(shè)計(jì)人機(jī)交互界面[5]。用戶要獲取模型,首先需要登錄,其登錄界面?zhèn)鹘y(tǒng)界面并無差異。

      在編寫登錄模塊代碼前,需要在stdafx類中新建三個全局變量:quanju_isvip、quanju_accoun、quanju_Brand用來向其他類傳遞賬戶信息,包括是否為VIP用戶、賬戶余額,以及用戶常用品牌。輸入用戶名及密碼點(diǎn)擊登錄后,通過連接遠(yuǎn)程數(shù)據(jù)庫,從用戶數(shù)據(jù)庫中讀取相關(guān)信息,若將“記住密碼”選項(xiàng)打鉤,則通過以下代碼,將用戶信息寫入注冊表,下次登錄則會自動填寫用戶名和密碼。

      3.4? ?路徑配置及預(yù)選品牌模塊

      路徑配置用于設(shè)置將模型下載到本地后存放位置,與用戶登錄相似,第一次設(shè)定后,信息也將保存到注冊表中。其界面如圖2所示。

      在圖3的預(yù)選品牌界面中,由于模型庫中零件數(shù)量眾多,為避免模型型號加載速度過于緩慢,可在此界面中選擇用戶需要的品牌來加載相應(yīng)的零件型號。為了讓用戶直觀地看出選擇了哪些品牌,將MFC列表框的HasStrings屬性設(shè)置為True,Owner Draw屬性設(shè)置為Fixed,為列表框添加變量時,變量類型為CCheckListBox,即可實(shí)現(xiàn)一個支持復(fù)選框的列表框。同樣,還需要在stdafx類中新建一個全局變量quanju_selectBrand,用于向模型庫類傳遞所選品牌的信息。

      3.5? ?模型庫模塊

      模型庫為整個插件的核心部分,其界面如圖4所示。它提供了兩種方式用于從服務(wù)器端下載模型。

      第一種通過型號搜索方式來獲取模型。型號搜索可以按預(yù)選的品牌直接搜索所有型號的模型,還可以輸入模型型號開頭幾個字符來進(jìn)行模糊搜索,最終定位到想要下載的模型?!凹虞d型號”按鈕為通過預(yù)選的品牌加載出所有的模型型號。

      為實(shí)現(xiàn)模糊搜索功能,需要添加combox的EDITCHANGE事件,其數(shù)據(jù)庫操作字符如下:

      第二種方式則是在創(chuàng)建對話框的同時,加載出所有品牌,用戶選擇一種品牌后,自動加載其下的所有系列,同理,選擇一種系列,獲取該系列下的所有型號。

      當(dāng)用戶選擇模型型號后,即可進(jìn)入載入模型操作。根據(jù)用戶選取的模型型號,通過讀取模型數(shù)據(jù)庫來獲取模型的品牌、系列、子零件和模型價(jià)格。一個模型的型號可能是單獨(dú)的一個零件,也可能一個裝配體,如果是裝配體,則需要將裝配體的子零件也全部下載到本地。供應(yīng)商上傳的模型都具有一定的價(jià)值,故有些型號的模型需要支付一定的費(fèi)用。vip用戶可下載所有的模型,普通用戶使用賬戶余額來購買需要付費(fèi)的模型,若普通用戶賬戶余額小于模型價(jià)格,則彈出對話框詢問是否跳轉(zhuǎn)至充值頁面。

      當(dāng)用戶滿足下載模型要求后,即可從阿里云服務(wù)器端獲取該模型。這里使用URLDownloadToFile()[6]函數(shù)下載模型,下載鏈接URL由以下代碼生成。

      3.6? ?編寫信息文件

      信息文件是一種文本文件,用來定義菜單項(xiàng),菜單項(xiàng)提示等信息。使用記事本將菜單及菜單下的四個按鈕的信息寫入文本文件中,并保存在Pro/Toolkit應(yīng)用程序路徑下的text文件夾中。

      3.7? ?編寫注冊文件

      在Creo中運(yùn)行Pro/Toolkit應(yīng)用程序,必須先進(jìn)行注冊。注冊文件是一個后綴為.dat的文件,文件信息包括Pro/Toolkit應(yīng)用程序名稱,可執(zhí)行程序全路徑,text文件夾路徑,啟動模式設(shè)置,軟件版本號等。將creo起始目錄設(shè)置為注冊文件的路徑,或把注冊文件放置creo安裝路徑下的text文件夾并將其命名為“protk”,當(dāng)打開Creo后,Pro/Toolkit應(yīng)用程序便會自動加載到Creo中[7]。此外,還可在Creo中工具->實(shí)用工具->輔助應(yīng)用程序,手動注冊Pro/Toolkit應(yīng)用程序。

      4? ?定義Creo功能區(qū)(Define the Creo function area)

      從proe5.0升級到Creo1.0后,其用戶界面發(fā)生了很大的改變,采用了主流的工具欄來定義功能區(qū)。打開Creo,將設(shè)計(jì)好的Pro/Toolkit應(yīng)用程序加載到Creo中,點(diǎn)擊Creo自定義功能區(qū),此時會出現(xiàn)之前定義好的四個TOOLKIT命令,將其添加到新建的選項(xiàng)卡中。隨后點(diǎn)擊導(dǎo)入/導(dǎo)出->導(dǎo)出所有功能區(qū)和快速訪問工具欄自定義,將導(dǎo)出的文件與信息文件存放在一起,并將其命名為“toolkitribbonui.rbn”。在下次打開Creo后,toolkitribbonui.rbn文件將會與Pro/Toolkit應(yīng)用程序一起加載。

      5? ?結(jié)論(Conclusion)

      文章根據(jù)插件需求,首先介紹了模型庫總體設(shè)計(jì)流程,將模型庫劃分為四個模塊:用戶登錄、路徑配置、預(yù)選品牌、模型庫。隨后對四個模塊設(shè)計(jì)過程進(jìn)行了詳細(xì)介紹。最后,介紹了如何定義Creo功能區(qū)。插件的使用面向海內(nèi)外所有用戶,供應(yīng)商不斷將模型上傳至阿里云對象存儲,用戶獲取到模型數(shù)量將會不斷增加。通過此Creo模型庫插件,用戶可以很方便地獲取到所需要型號的三維模型,這樣極大減少了產(chǎn)品設(shè)計(jì)時間,有助于提高工作效率。

      參考文獻(xiàn)(References)

      [1] 姜萍.基于CREO的三維模型庫系統(tǒng)設(shè)計(jì)與開發(fā)[D].合肥工業(yè)大學(xué),2018.

      [2] 李雪,王璐.Creo二次開發(fā)參數(shù)化設(shè)計(jì)技術(shù)[J].電子技術(shù)與軟件工程,2019(03):39.

      [3] 張繼春.Pro/ENGINEER二次開發(fā)實(shí)用教程[M].北京:北京大學(xué)出版社,2003.

      [4] 王文波.Pro/E Wildfire4.0二次開發(fā)實(shí)例解析[M].北京:清華大學(xué)出版社,2010.

      [5] 孟慶當(dāng).基于Pro/TOOLKIT智能出圖系統(tǒng)的設(shè)計(jì)與開發(fā)[D].合肥工業(yè)大學(xué),2015.

      [6] 朱文偉.Visual C++2013從入門到精通[M].北京:清華大學(xué)出版社,2017.

      [7] Parametric Technology Corporation.PTC Creo Parametric TOOLKIT3.0 User' Guide.USA:PTC,2014.

      [8] 曾斌,賀電,尹子軒.基于Creo二次開發(fā)的液壓管路智能設(shè)計(jì)系統(tǒng)的研究與應(yīng)用[J].液壓與氣動,2019(10):118-123.

      [9] 張文彬,沈精虎,夏凡.基于組件的快速變型設(shè)計(jì)系統(tǒng)的開發(fā)[J].制造業(yè)自動化,2017,39(09):64-66.

      作者簡介:

      晏恒兵(1995-),男,碩士生.研究領(lǐng)域:Creo二次開發(fā).

      仲梁維(1962-),男,碩士,教授.研究領(lǐng)域:計(jì)算機(jī)輔助設(shè)計(jì),智能制造.

      猜你喜歡
      模型庫
      基于模型庫系統(tǒng)的金融體系流動性風(fēng)險(xiǎn)預(yù)警機(jī)制研究
      復(fù)雜圓柱殼結(jié)構(gòu)參數(shù)化建模方法及模型庫設(shè)計(jì)
      GIS地形分析模型庫管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
      双城市| 新乡县| 房产| 蓬溪县| 天门市| 讷河市| 苗栗县| 漳平市| 五峰| 邵阳县| 洪泽县| 堆龙德庆县| 青川县| 革吉县| 泰来县| 永福县| 克拉玛依市| 都安| 渝北区| 库车县| 苍南县| 永兴县| 嘉黎县| 黄骅市| 紫金县| 象山县| 淮阳县| 富顺县| 夹江县| 大竹县| 乃东县| 深州市| 漯河市| 漳平市| 巴马| 封开县| 韶山市| 化州市| 德州市| 湛江市| 句容市|