• 
    

    
    

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

      ?

      基于Solid Works的標準件庫參數(shù)化建模系統(tǒng)開發(fā)

      2014-03-22 02:07:20陳圣明
      河南科技 2014年6期
      關(guān)鍵詞:標準件數(shù)據(jù)表二次開發(fā)

      陳圣明

      (廣東工業(yè)大學 機電工程學院,廣東 廣州 510006)

      0 引言

      任何一個CAD系統(tǒng)都不可能完全符合用戶的需求,因此工程師有必要對其進行專業(yè)化和本地化的二次開發(fā),使CAD系統(tǒng)能更好地符合國標、行標和企標[1]。標準件庫的參數(shù)化自動建模系統(tǒng)是CAD系統(tǒng)二次開發(fā)的典型應用,任何一個機械產(chǎn)品都需要許多諸如螺栓、螺釘、軸承之類的通用標準件,因此可以基于企業(yè)所用的CAD系統(tǒng),對這些標準件進行參數(shù)化二次開發(fā),建立其自動建模系統(tǒng)以減少重復勞動,進而提高產(chǎn)品設(shè)計效率。本文闡述了基于Solid Works的通用標準件庫參數(shù)化建模系統(tǒng)的開發(fā)與應用。

      1 系統(tǒng)總體分析與設(shè)計

      1.1 總體分析

      本系統(tǒng)要實現(xiàn)的功能是在Solid Works環(huán)境下,結(jié)合Toolbox的基礎(chǔ)性資源實現(xiàn)標準件的自動化和系列化建模,給工程師提供一種直觀、簡便的標準件快速建模方法。目前,常用的方式是:CAD供應商對用戶提供開放的可擴性接口(Application Programming Interface,API),設(shè)計人員采用可支持COM編程的開發(fā)工具,如VB、VC++、C#、Delphi等對其進行相關(guān)接口函數(shù)調(diào)用,通過這些函數(shù)來驅(qū)動CAD系統(tǒng)自動完成所需模型的建立[2]。

      公司所使用的CAD平臺是Solid Works。它提供了支持二次開發(fā)的應用程序接口,通過該接口可以開發(fā)嵌入式功能插件(*.dll)或獨立的應用程序(*.exe)以擴充原Solid Works的功能,最終形成用戶定制或用戶驅(qū)動的參數(shù)化系統(tǒng)。開發(fā)工具我們選擇VB.NET,開發(fā)環(huán)境為Visual Studio 2010,它擁有完善的圖形用戶界面(GUI)和快速應用程序開發(fā)系統(tǒng)(RAD),可以輕易的使用ADO.NET(Active Data Objects)連接和訪問數(shù)據(jù)庫,因而完全能夠滿足本參數(shù)化系統(tǒng)的開發(fā)。

      1.2 設(shè)計思路

      我們的設(shè)計思路是以面向?qū)ο蟮腣B.NET為開發(fā)工具,基于Access建立標準件尺寸參數(shù)數(shù)據(jù)庫,通過編程調(diào)用Solid Works API相關(guān)對象、屬性和方法,結(jié)合ADO.NET數(shù)據(jù)庫訪問技術(shù)實現(xiàn)系統(tǒng)參數(shù)化建模功能。

      CAD系統(tǒng)實現(xiàn)參數(shù)化的關(guān)鍵在于模型庫的建立與尺寸驅(qū)動技術(shù)[3]。因此,首先得對需要參數(shù)化的標準件進行三維建模,獲得標準件模型庫。將這些源模型作為尺寸驅(qū)動模板,當程序運行的時候,根據(jù)用戶的選擇,更新模板文件即可自動建立所需零件的3D模型。在編程實現(xiàn)階段,采用的是特征參數(shù)法和編程法相結(jié)合的方式,通過繪制模板文件先獲得宏錄制代碼,然后將代碼中的特征尺寸進行常量變量化,再將這些變量傳遞給API函數(shù)。這樣做的優(yōu)點是最大限度的將設(shè)計人員從眾多的Solid Works API函數(shù)中解放出來,設(shè)計人員只需稍加修改相關(guān)API的參數(shù),刪減宏錄制代碼中一些無用代碼即可。至于程序調(diào)用模式,我們選擇將所編輯的程序以.exe格式保存,并將其添加至Solid Works的宏工具欄中以方便工程師調(diào)用。系統(tǒng)運作流程如圖1所示。

      圖1 系統(tǒng)運作流程

      2 系統(tǒng)開發(fā)關(guān)鍵技術(shù)

      2.1 決定性要素

      標準件包括螺栓、螺釘、軸承等大類,每個大類包括不同的型號,每個型號又包括不同的尺寸系列。通過對系統(tǒng)設(shè)計理論和應用方面的分析,我們確定了系統(tǒng)開發(fā)的決定性要素:

      (1)需要建立完善的標準件模型庫??衫肨oolbox自帶的標準庫模型文件,在Solid W-orks安裝目錄的“SOLIDWORKS DATArowser”文件夾下,找到標準件模型,我們只需將相應的模型修改為中文名稱。

      (2)明確各類標準件下不同型號的特征尺寸,建立尺寸參數(shù)數(shù)據(jù)表。

      (3)設(shè)計友好的人機交互界面,添加響應功能函數(shù)并建立數(shù)據(jù)庫訪問機制實現(xiàn)系統(tǒng)功能。界面中提供參數(shù)輸入接口,程序接受各種參數(shù),按用戶設(shè)計意圖重建模型。

      (4)編寫完程序之后,需要進行反復測試以保證程序的正確性與建模的精確性。

      2.2 關(guān)鍵技術(shù)

      基于Solid Works平臺二次開發(fā)的自動建模關(guān)鍵在于三個方面:Solid Works API、VB.NET編程和數(shù)據(jù)庫技術(shù)。

      (1)Solid Works API:它包括了數(shù)以百計的Solid Works內(nèi)部功能函數(shù),設(shè)計人員可以編寫程序調(diào)用這些功能函數(shù),來實現(xiàn)所需要的功能。

      (2)VB.NET:(VB.NET 嵌入在 VS2010 環(huán)境下)作為本系統(tǒng)的開發(fā)工具,通過我們編寫的代碼操縱相關(guān)Solid Works API對象,控制其屬性并調(diào)用相關(guān)方法實現(xiàn)系統(tǒng)參數(shù)化自動建模的要求。

      (3)數(shù)據(jù)庫訪問技術(shù):采用ADO.NET技術(shù),它是一種和編程語言無關(guān)的COM組件系統(tǒng),提供了訪問各種數(shù)據(jù)類型的連接機制,通過其內(nèi)部的屬性和方法提供統(tǒng)一的數(shù)據(jù)訪問接口[3]。通過它我們可以訪問由Access建立的尺寸參數(shù)數(shù)據(jù)表,進而通過程序調(diào)用其中的數(shù)據(jù)來完成零件的參數(shù)驅(qū)動,實現(xiàn)自動建模功能。

      3 參數(shù)化系統(tǒng)的具體實現(xiàn)

      機械標準件可按層次分為標準、類型、子類型和零件[4]。以軸承為例,我們所面向的標準是GB和JB,軸承的類型包含深溝球軸承、圓柱滾子軸承等子類型,而這些子類型又分別包含不同規(guī)格、不同尺寸系列。由于同一子類型的零件結(jié)構(gòu)和拓撲關(guān)系是相同的,它們的區(qū)別僅僅在于驅(qū)動尺寸的不同。因此整體標準件庫的開發(fā)可針對不同類型不同型號的標準件進行尺寸驅(qū)動建模。系統(tǒng)開發(fā)的具體流程如下:①建立子類型的模板文件(*.prtdot);②建立驅(qū)動尺寸數(shù)據(jù)表(*.mdb);③編輯該子類型建模代碼,實現(xiàn)尺寸驅(qū)動;④重復步驟1,2,3,完成其余類型;⑤系統(tǒng)整合在VS2010環(huán)境中,由VB.NET實現(xiàn)。

      以下以深溝球軸承為例,詳細介紹VB.NET對Solid Works進行常用標準件參數(shù)化二次開發(fā)的具體流程和實現(xiàn)方法,其余型號和類型的標準件采用完全類似的方法即可實現(xiàn),最終完成標準件庫參數(shù)化系統(tǒng)的構(gòu)建。

      3.1 深溝球軸承模板建模

      查閱國標,以尺寸系列代號16001的深溝球軸承為例按照正確尺寸約束和設(shè)計意圖在Solid Works中建立三維模型。將其作為模板文件,此型號的深溝球軸承標準件庫的所有模型均基于此模板文件創(chuàng)建、修改和編輯。這里要完成的是:

      (1)明確從動尺寸與驅(qū)動尺寸。深溝球軸承的造型由外圈外徑DD、內(nèi)圈內(nèi)徑d、軸承寬度B和倒圓角半徑rs這四個參數(shù)唯一確定。因此,可選擇這四個參數(shù)作為驅(qū)動尺寸,剩下的一些建模時的定位尺寸作為從動尺寸。如圖2所示,尺寸前有∑表示從動尺寸,沒有∑表示驅(qū)動尺寸。

      圖2 主動尺寸和從動尺寸

      (2)定義關(guān)聯(lián)關(guān)系。為利于編寫代碼與建立尺寸數(shù)據(jù)表實現(xiàn)對模型尺寸的賦值與重建,首先對驅(qū)動尺寸重命名,如上例中的DD、d、rs、B。此外,在繪圖過程中有一些尺寸大小是相同的,而Solid Works系統(tǒng)自身不允許有相同尺寸名稱,所以為了使相同的尺寸在名稱不同的情況下具有同時更改的性能,需要定義尺寸間的關(guān)聯(lián)關(guān)系。再者,要實現(xiàn)參數(shù)化實體造型,必須滿足全尺寸約束與數(shù)據(jù)全相關(guān)這兩個基本條件。因此,我們可以在Solid Works菜單欄,單擊“工具”/“方程式”,添加從動尺寸和驅(qū)動尺寸之間的關(guān)聯(lián)關(guān)系式。關(guān)系表如圖3所示。

      圖3 尺寸方程式

      3.2 建立尺寸數(shù)據(jù)表

      采用Microsoft Access2010建立驅(qū)動尺寸數(shù)據(jù)表。首先要明確數(shù)據(jù)表的字段,根據(jù)上一步的內(nèi)容可以知道深溝球軸承的造型由外圈外徑DD、內(nèi)圈內(nèi)徑d、軸承寬度B和倒圓角rs這4個參數(shù)唯一確定。因此,數(shù)據(jù)表的字段只需用這4個參數(shù)即可。查閱國標(GB/T276-1994)建立它的尺寸數(shù)據(jù)表如圖4所示。每一種標準件的子類型需要對應一張數(shù)據(jù)表,建立過程完全與此相類似,整體標準件庫的數(shù)據(jù)表整合在“gb.mdb”。

      圖4 尺寸數(shù)據(jù)表

      3.3 界面設(shè)計與代碼編寫

      完成以上步驟后,即可在VS2010環(huán)境下設(shè)計系統(tǒng)的界面,按照系統(tǒng)功能需求,我們選擇Tree View、Data Grid View、Tool Strip、Splitter、Panel控件,分別設(shè)計相應的屬性并進行合理的布局,具體界面見3.4節(jié)。

      需要編寫的代碼包括數(shù)據(jù)處理與自動建模兩部分,下面分別對其進行介紹:

      (1)數(shù)據(jù)處理:核心是用戶數(shù)據(jù)顯示、查詢。根據(jù)第一部分內(nèi)容所述,我們選擇的是ADO.NET技術(shù)訪問Access數(shù)據(jù)庫,它通過相關(guān)對象的屬性、方法完成相應的數(shù)據(jù)庫操作。一般而言,ADO.NET處理數(shù)據(jù)庫的步驟:a.創(chuàng)建數(shù)據(jù)庫連接對象;b.使用連接對象打開數(shù)據(jù)庫;c.使用命令對象操作數(shù)據(jù)庫;d.關(guān)閉數(shù)據(jù)庫[5]。數(shù)據(jù)的顯示相對簡單,運用Tree View和Data Grid View控件,對其進行相應屬性設(shè)置與代碼編輯即能輕松實現(xiàn)。

      數(shù)據(jù)查詢是方便用戶在種類繁多的標準件中快速找到所需的種類或型號。它的算法如下:當用戶輸入標準件的名稱或代號后,點擊查詢按鈕,系統(tǒng)自動查詢Tree View控件中節(jié)點數(shù)據(jù)。

      (2)數(shù)據(jù)的傳遞與自動建模

      通過在程序界面中Text控件與用戶進行人機交互,用戶在數(shù)據(jù)表中選中某行或某行的一個單元后,Text控件組自動顯示被選中行的各個參數(shù),然后編寫相應程序?qū)ext控件組的Text屬性值作為API函數(shù)的參數(shù),這樣既可實現(xiàn)尺寸驅(qū)動完成自動建模又能保證數(shù)據(jù)庫和建模代碼之間相對獨立。

      自動建模部分的代碼(節(jié)選):

      Dim PartAs Object

      Dim SelMgrAs Object

      Dim boolstatus As Boolean

      Dim Feature As Object’ 定義對象

      SetswApp=CreateObject("SldWorks.App

      lication")

      Set Part=swApp.NewDocument("E:標準件模板earings gb.SLDPRT",0,0,0)’打開標準件模板

      SetPart=swApp.ActiveDoc

      Set SelMgr=Part.SelectionManager

      Boolstatus=Part.Extension.SelectByID2("d@Sketch2@bearings gb.SLDPRT","DIMENSION",0,0,0,True,0,Nothing,0)’根據(jù)打開的標準件模板,對特征尺寸重新賦值

      Part.Parameter("d@Sketch2").SystemValue=Val(d.Text)/1000

      ……

      boolstatus=Part.Extension.SelectByID2("r@Fillet1@bearingsgb.SLDPRT","DIMENSION",0,0,0,True,0,Nothing,0)

      Part.Parameter("r@Fillet1").SystemValue=Val(r.Text)/1000

      boolstatus=Part.EditRebuild3’重建特征建立模型

      End Sub

      3.4 定制應用程序菜單

      最終的標準件庫參數(shù)化原型系統(tǒng)如圖5所示。運行時,在程序界面左側(cè)檢索到需要的標準件,在彈出的窗口中選擇需要的型號和尺寸系列,即可自動生成所需的模型。

      圖5 系統(tǒng)最終界面

      4 結(jié)論

      通過對參數(shù)化系統(tǒng)的設(shè)計方案分析和二次開發(fā)具體工作的研究與實踐,本文從理論和實例兩個方面詳細討論了基于Solid Works的標準件庫自動化建模技術(shù),開發(fā)了在Solid Works環(huán)境下通用標準件庫參數(shù)化建模系統(tǒng),并以深溝球軸承為例,詳細說明了建立參數(shù)化建模系統(tǒng)的具體設(shè)計流程和實現(xiàn)方法。整個原型系統(tǒng)的設(shè)計與開發(fā),經(jīng)企業(yè)測試可快速、穩(wěn)定地實現(xiàn)標準件的自動化建模,對基于Solid Works進行標準件庫、非標件庫或產(chǎn)品參數(shù)化二次開發(fā)的用戶具有一定的借鑒作用。

      [1] 彭龑,李淇陽.基于Solid Works二次開發(fā)的自動建模技術(shù)與方法[J].制造業(yè)信息化.

      [2] 劉慶立,曹巨江,姚素芬等.基于Solid Works二次打開技術(shù)[J].煤礦機械,2009,30(8):202-204.

      [3] 肖麗雯等.參數(shù)化圖庫建立工具的開發(fā)與應用[J].計算機輔助設(shè)計與圖形學學報,2001,14(5):444-448.

      [4] 劉萍萍.面向企業(yè)應用的Solid Works軟件開發(fā)[D].南京理工大學,2004.

      [5] 高春艷,李艷,谷偉東編著.Visual Basic數(shù)據(jù)庫開發(fā)關(guān)鍵技術(shù)與實例應用[M].北京:人民郵電出版社,20.

      猜你喜歡
      標準件數(shù)據(jù)表二次開發(fā)
      標準件庫的建立與應用
      湖北省新冠肺炎疫情數(shù)據(jù)表
      黨員生活(2020年2期)2020-04-17 09:56:30
      淺談基于Revit平臺的二次開發(fā)
      甘肅科技(2020年20期)2020-04-13 00:30:02
      淺談Mastercam后處理器的二次開發(fā)
      模具制造(2019年3期)2019-06-06 02:11:02
      基于列控工程數(shù)據(jù)表建立線路拓撲關(guān)系的研究
      西門子Easy Screen對倒棱機床界面二次開發(fā)
      圖表
      CATIA V5標準件庫的創(chuàng)建與使用
      汽車零部件(2014年5期)2014-11-11 12:24:34
      基于知識的組合機床夾具可擴充標準件庫的開發(fā)
      古代建筑的標準件
      西宁市| 杭锦后旗| 武宁县| 上犹县| 冕宁县| 蒲江县| 房产| 天祝| 江达县| 绥德县| 龙江县| 新民市| 讷河市| 青州市| 云和县| 常州市| 青阳县| 长春市| 客服| 金川县| 南川市| 普宁市| 阜阳市| 密云县| 色达县| 阳江市| 桂林市| 陆丰市| 南雄市| 新泰市| 枝江市| 营山县| 洪湖市| 桦南县| 武宣县| 蕲春县| 瑞昌市| 桃江县| 伊金霍洛旗| 元阳县| 柳林县|