我想看一级黄色大片_久久亚洲国产精品一区二区_久久精品免视看国产明星_91久久青青青国产免费

您的位置:網站首頁 > Solidworks

機床夾具三維標準件庫的開發

時間:2010-06-02 08:00:00 來源:
副標題#e#    當前國內機械行業內雖然有諸多機械標準零件的圖庫,但并不是很能滿足需求。一方面,現在的圖庫基本上都是二維平面圖庫,而隨著大量三維實體造型軟件如SolidWorks、Pro/E、UG等的崛起,引發了設計領域的變革。由于這些三維軟件不僅可創建三維實體模型,還可利用沒汁出的三維模型進行模擬裝配和靜態干涉檢查、機構分析、動態干涉檢查、動力學分析、強度分析等,所以應用越來越廣泛,而平面圖庫的應用將日趨減少。另一方面,雖然一些三維軟件也有標準件圖庫,但多數是普通的機械標準零件圖庫,并沒有一套專門的機床夾具標準零部件的圖庫。我們對眾多夾具標準件進行搜集、篩選、分類,而后編程對其進行組織,形成一套針對性較強的三維參數化夾具標準件圖形庫。
   
    1夾具標準零部件三維圖形庫建立
   
    1.1軟件平臺的選擇
   
    SolidWorks是一套三維機械CAD軟件,它以參數化和特征建模的技術,為設計人員提供了良好的設計環境,逐漸擁有了越來越多的用戶。另外,其強大的程序接口,能夠方便地利用VB、VC、Delphi等開發語言來進行二次開發。所以我們選擇VB作為標準件系統的主要平臺。VB是Windows流行的編程語言,從根本上改變了傳統的程序設計模式,大大簡化了Windows應用程序設計。VB最大的特點就是簡單,使用VB來開發軟件,開發周期短,代碼效率高,并且VB和SolidWorks具有良好的連接性,它通過SolidWorks API提供的對象和方法實現與SolidWorks的交互,實現參數化三維圖形庫的生成。
   
    1.2圖形庫的信息流程
   
    機床夾具零部件庫有如下幾個主要的功能模塊:零部件庫應用程序,零部件數據庫,圖形庫和SolidWorks。圖形庫用于存放由SolidWorks繪制的不同種類夾具標準件的三維圖形,供預覽用。零部件數據庫是將機床夾具零部件標準中的所有零部件的尺寸數據輸入計算機中,建立起多個數據文件,利用Access數據庫軟件建立標準件數據庫,其中每種類型夾具標準件不同規格的尺寸構成一個數據文件。供應用程序在SolidWorks中生成相應的三維零件圖。功能模塊的信息流程為:應用程序調用圖形庫中的某種類型夾具標準件的三維圖形,在相應對話框中選擇所需的規格或輸入必要的參數,通過接口程序調用零部件數據庫中相應類型夾具的某種規格的尺寸數據,最后在SolidWorks界面下生成指定規格的三維夾具零件圖。
   
    1.3圖形庫的結構
   
    機床夾具標準件的種類繁多,為便于檢索到所需的零部件,我們將夾具零部件分為9大類70多種不同規格,具體如下:
   
    (1)定位零件與部件:以工件平面為基準的定位件、以工件外圓為基準的定位件、以工件內孔為基準的定位件;
    (2)夾緊零件與部件:螺母、螺釘與螺栓、壓塊、壓板、偏心輪等;
    (3)其它夾緊零件:T型滑塊、切向夾緊套、壓入式螺紋襯套;
    (4)導向零件與部件:鉆套、鏜套、襯套、鉆套和鏜套用螺釘;
    (5)對刀零件:對刀塊、對刀用塞尺;
    (6)對定零件與部件:手柄式定位器、槍栓式定位器、齒條式定位器;
    (7)鍵:定位鍵、定向鍵、過渡盤;
    (8)其它零部件:萬能支柱、支腳、角鐵、螺塞、鎖扣、堵片;
    (9)夾具體:標準鑄件組合夾具體、操作件。
   
    2夾具標準零部件三維圖形庫的關鍵技術
   
    2.1 Solidworks API

   
    SolidWorks對象包括ModelDoc, Environment,Frame,AttributeDef,Modeler,SWPropertySheet等。SolidWorks對象是SolidWorks API中的最高層對象,它能夠直接或間地訪問SolidWorks API中的所有其他對象,并可以實現應用程序最基本的操作,如生成、打開、關閉、結束文件、重排圖標和窗口生成屬性定義等。除此之外,它還可以對SolidWorks的系統環境進行設置。
   
    (1)ModelDoc對象
   
    SolidWorks的子對象ModelDoc屬于模型層。用它可以實現視圖設置、輪廓線修改、參數控制、對象選擇/打開和保存文檔、生成編輯特征參量、生成框架等與實體模型相關的各類操作。ModelDoc對象包括PartDoc,AssemblyDoc,DrawingDoc,Feature,Annotaion,FeatMgView,ModelView,Sketch,DesignTable,Attribute,SelectionMgr,LayerMgr,Configuration,ModelDocExtension,Configuration-Manager,ModelViewManager等對象。ModelDoc對象提供了直接訪問PartDoc,DrawingDoc和AssemblyDoc對象的方法。對COM應用程序,這意味著通過使用QueryInterface,能夠從這三個對象中的任何一個獲得ModelDoc對象。
   
    同樣地,用QueryInterface通過基于ModelDo。指針所代表的文件類型能夠從ModeiDoc對象獲得相關的PartDoc,DrawingDoc或AssemblyDoc對象。對OLE應用程序,這種關系表示可以簡單地定義一個新的IModelDoc對象,該對象調用指針和IPartDoc。IdrawingDoc或IassmeblyDoc對象的一樣。而對于給定的零件,可以使用它的ModelDoc調用指針來定義一個新的IpartDoc對象。
   
    (2)Environment對象
   
    Environment對象可分析文本和幾何關系,該幾何關系用于生成符號。如果有-個包含了符號的注釋,想要重新生成注釋時可用Environment對象實現。從Environment類返回的所有數值都是以文本高1.0為單位的。一個具有文本高o.15的符號,應將返回值乘以0.1 5。可以用SldWorks GetEnvironment來查看返回值。在安裝目錄\lang\English中可以找到名為gt01.sym的環境沒置文件,它包含所支持的幾何公差符號和它們在SolidWorks文本文件中的縮寫詞。
   
    2.2數據庫的連接技術
   
    VB程序提供了數據庫連接Data控件,使用它可以將數據庫連接到VB程序主程序中,實現數據庫、SolidWorks圖形文件和程序界面相互聯系,實現應有的功能。為便于選取數據,采用MsFlexGrid控件來實現數據庫中的數據能以表格形式提供給用戶,使用MsFlexGrid控件方便簡單。雖然它的功能不及其它數據控件,但可以使用變通方法擴展它的功能,只要在MsFlexGrid控件的屬性中設置DataSource為數據控件,Data就可以使,}fj數據表了。另外,為了方便設計非標準夾具零部件,在表列的最后增加一輸入欄,以生成任意尺寸的非標準夾具零部件,擴充了三維圖形庫的使用范圍。具體步驟如下:
   
    (1)使用Data控件將數據庫連接到程序界面。
   
    Data I.DatabaseName=App.Path &"小固定定位銷.mdb"
    Data 1.RecordSource= "****"
   
    用上面的語句實現數據庫連接,而且不會為文件的移動丟失數據庫。
   
    (2)用MsFlexGrid控件來實現數據庫中的數據能以表格形式給用戶使用。使用MsFlexGrid控件方便簡單,只要在MsFlexGrid控件的屬性中設置DataSource為數據控件Date就可以使用數據表了。
   
    (3)獲取數據表中的數據。我們用鼠標點選數據表中所要數據的那一欄(row),選中的數據欄的數據被依次讀入設定的變量中,實現方法如下:
   
    Private Sub MSFlexGridl_SelChange()
    IfMSFlexGridI.Row<>(數據庫的列數)-5-Then
    MSFlexGridl.Row=MSFlexGridl.ROW
    MSFlexGridl.Col=O:d-MSFlexGridl.Text
    MSFlexGridl.Col=l:DD--MSFlexGridl.Text
    MSFlexGridI.C01=2:DI=MSFlexGridl.Text
   
    2.3 VB和SolidWorks的聯接
   
    在建立VB和SolidWorks的聯接時所用到的程序代碼較多,擇較為常用的列述如下。添加SolidWorks庫文件:
   
    在[工程][引用]下查找并選中相應的3個SolidWorks庫文件
   
    SolidWorks Extensibility Type Library
    SIdWorks 2006 Type Library
    SolidWorks exposed type libraries for add-in use
   
    建立SoliidWorks和Visual Basic之間的通訊過程的代碼如下:
   


    設置文檔變量指向SolidWorks應用的文檔對象的代碼如下:
   
    Dim swDoc as 0bject
    Set swDoc=swapp.ActiveDocument