基于SolidWorks二次開發(fā)的自動(dòng)建模技術(shù)與方法
2013-08-05 by:廣州Solidworks培訓(xùn)中心 來源:仿真在線
基于SolidWorks二次開發(fā)的自動(dòng)建模技術(shù)與方法
1 引言
SolidWorks軟件是基于Windows開發(fā)的三維CAD系統(tǒng),經(jīng)過十幾年的發(fā)展現(xiàn)在已經(jīng)成為了一套包括CAD/CAE/CAM/PDM的桌面集成系統(tǒng)。在強(qiáng)大的設(shè)計(jì)功能和易學(xué)易用的操作協(xié)同下,SolidWorks設(shè)計(jì)是可編輯的,零件設(shè)計(jì)、裝配設(shè)計(jì)和工程圖之間的是傘相關(guān)的。但SolidWorks建模過程中,零件二維草圖無法類似AutoCAD那樣能將圖形從一張圖紙復(fù)制到另外一張圖紙,也無法類似proe可以將草圖直接導(dǎo)出建模,致使工程師們對于開發(fā)同一系列化產(chǎn)品時(shí)需要做許多重復(fù)的工作,進(jìn)而延長了產(chǎn)品開發(fā)周期。怎樣實(shí)現(xiàn)產(chǎn)品公共零件模型系列化的建證?這也成為企業(yè)技術(shù)部門需要考慮的問題。
2 SolidWorks軟件自動(dòng)化建模技術(shù)
基于SolidWorks平臺二次開發(fā)的自動(dòng)建模技術(shù)主要涉及技術(shù)有SolidWorks參數(shù)驅(qū)動(dòng)技術(shù)、基于SolidWorks 的ActiveX Automation技術(shù)、數(shù)據(jù)庫和數(shù)據(jù)庫訪問技術(shù)。
3 ActiveX Automation技術(shù)
SolidWorks API是基于ActiveX Automation技術(shù)的編程接口,它是基于COM和OLE的技術(shù)標(biāo)準(zhǔn)。ActiveX是OLE在網(wǎng)絡(luò)上的擴(kuò)展,它是一組可擴(kuò)充應(yīng)用程序協(xié)議,使SolidWorks應(yīng)用程序之間能夠通過數(shù)據(jù)嵌入或鏈接的方式來共享尺寸參數(shù)數(shù)據(jù)。其宗旨是在Windows系統(tǒng)的統(tǒng)一管理下,來協(xié)調(diào)并且控制不同設(shè)備上的SolidWorks應(yīng)用程序的相互通信問題。符合標(biāo)準(zhǔn)的SolidWorks程序會把其內(nèi)置的對象體系結(jié)構(gòu)顯露出來,從而通過改變其對象的屬性就可以實(shí)現(xiàn)跨越程序操作的設(shè)想?;谠撛?可以將含有嵌入或者鏈接文檔數(shù)據(jù)的應(yīng)用程序稱為容器程序,提供文檔數(shù)據(jù)編輯的應(yīng)用程序則稱為服務(wù)程序。對于基于SolidWorks的二次開發(fā)就可以將SolidWorks理解為一個(gè)服務(wù)程序(Server),而二次開發(fā)手段開發(fā)出來的程序?yàn)榭蛻舫绦?Client)。用戶只要在客戶程序上進(jìn)行操作,客戶程序?qū)Ⅱ?qū)動(dòng)SolidWorks完成相關(guān)的工作。
4 SolidWorks API對象層次結(jié)構(gòu)
為了方便用戶進(jìn)行二次開發(fā),SolidWorks提供了幾百個(gè)API函數(shù),用戶可以使用Visual Basic、VBA、Visual C++、C#、Delphi等高級編程語言對SolidWorks進(jìn)行二次開發(fā),建立適合用戶需要的、專用的SolidWorks功能模塊。同時(shí),由于SolidWorks API及其有關(guān)幫助文檔都包括在SolidWorks軟件中,任何用戶都可以對其進(jìn)行二次開發(fā)。不管是采用Visual Basic、VBA、Visual C++還是Delphi對SolidWorks進(jìn)行二次開發(fā),都是通過SolidWorks的對象體系結(jié)構(gòu)來進(jìn)行的。這種基于ActiveX Automation技術(shù)的SolidWorks API將各種功能封裝在SolidWorks對象之中供編程調(diào)用。顯示了SolidWorks API中各個(gè)對象相互關(guān)系,可以利用這張表的關(guān)系進(jìn)行參考編程。
5 基于ADO的參數(shù)數(shù)據(jù)庫訪問技術(shù)
SolidWorks以VB為開發(fā)平臺支持三種數(shù)據(jù)訪問技術(shù),即數(shù)據(jù)訪問對象DAO技術(shù)、遠(yuǎn)程數(shù)據(jù)對象RDO技術(shù)和ActiveX數(shù)據(jù)對象ADO技術(shù)。其中ADO技術(shù)是通過ADO對象的屬性、方法來完成相應(yīng)的數(shù)據(jù)庫訪問?;赩B的ADO數(shù)據(jù)控件是ActiveX外部控件,它的用途及外形都和Data控件相似,但它是通過Microsoft ActiveX數(shù)據(jù)對象(ADO)來建立對數(shù)據(jù)源的連接,凡是符合OLEDB規(guī)范的數(shù)據(jù)源都能連接,而ADO能訪問的數(shù)據(jù)庫有ODBC、Access、SQL Server、Oracle等,VB直接支持的數(shù)據(jù)庫是Access。同時(shí)ADO數(shù)據(jù)控件可以通過修改屬性來實(shí)現(xiàn)對數(shù)據(jù)源的連接。創(chuàng)建連接時(shí),可以采用下列連接方式之一:一個(gè)連接字符串,一個(gè)OLEDB文件(MDL)。一個(gè)Access數(shù)據(jù)源名稱。ADO訪問技術(shù)實(shí)現(xiàn)SolidWorks尺寸參數(shù)數(shù)據(jù)庫訪問模型。
通過使用ADO數(shù)據(jù)控件和DataGrid數(shù)據(jù)網(wǎng)格控件連接由Access創(chuàng)建的尺寸參數(shù)數(shù)據(jù)庫文件,并能濕示數(shù)據(jù)表,連接DataGrid數(shù)據(jù)網(wǎng)格控件用戶可以很方便地選取一組尺寸參數(shù)數(shù)據(jù)或者通過點(diǎn)擊ADO數(shù)據(jù)控件來選取設(shè)計(jì)參數(shù)。ADO對象模型定義了一個(gè)可編程的分層對象集合,主要由三個(gè)對象成員Connection、Command和RecordSet對象,以及幾個(gè)集合對象Errors、Parameters和Fields等所組成。只需要修改屬性窗口,更改控件的數(shù)據(jù)連接參數(shù)就能完成數(shù)據(jù)連接與數(shù)據(jù)訪問,無須更改控件的任何其他屬性。這些參數(shù)設(shè)置被隱藏在VB中,用戶無需再對其增加代碼。ADO處理數(shù)據(jù)庫的步驟:
(1)創(chuàng)建數(shù)據(jù)庫連接對象;
(2)使用連接對象打開數(shù)據(jù)庫;
(3)操作數(shù)據(jù)庫;
(4)關(guān)閉數(shù)據(jù)庫。
6 參數(shù)化尺寸驅(qū)動(dòng)技術(shù)
SolidWorks系統(tǒng)開發(fā)的核心是圖形的處理。目前廣泛使用的圖形處理方法有編碼法、參數(shù)化尺寸驅(qū)動(dòng)法和基于工程數(shù)據(jù)庫建立圖形庫。參數(shù)化繪圖,就是將圖形的尺寸與一定的設(shè)計(jì)條件(或約束條件)相關(guān)聯(lián),將圖形的尺寸看成是“設(shè)計(jì)條件”的函數(shù),當(dāng)設(shè)計(jì)條件發(fā)生變化時(shí),圖形尺寸便會隨之得到相應(yīng)更新。建立的尺寸參數(shù)庫中參數(shù)傳遞圖。
7 自動(dòng)建模技術(shù)應(yīng)用實(shí)例
本文采用的實(shí)例模型為固定球閥10-1500的閥座。閥座自動(dòng)建模方法實(shí)現(xiàn)的具體步驟:
(1)建立尺寸參數(shù)庫數(shù)據(jù)表
利用Access數(shù)據(jù)庫軟件提供的創(chuàng)建數(shù)據(jù)表向?qū)У墓δ?創(chuàng)建Access尺寸參數(shù)數(shù)據(jù)表。
(2)設(shè)計(jì)閥座參數(shù)化設(shè)計(jì)對話框界面
運(yùn)用VB開發(fā)平臺提供的控件創(chuàng)建設(shè)計(jì)界面??紤]到程序的存在形式既可以是以可執(zhí)行程序(*.EXE)形式獨(dú)立存在,也可以是通過VB環(huán)境創(chuàng)建ActiveX DLL文件,同時(shí)也能創(chuàng)建自定義菜單和SolidWorks工具條和工具條命令按鈕,根據(jù)建立好的DLL生成SolidWorks插件,方便用戶操作。
(3)編寫基于VB的閥座自動(dòng)建模對話框代碼
在用VB編寫閥座參數(shù)化設(shè)計(jì)對話框的程序代碼過程中,SolidWorks API接口函數(shù)中的參數(shù)采用尺寸參數(shù)代替尺寸數(shù)據(jù)的方式,結(jié)合SolidWorks API對象的層次結(jié)構(gòu)關(guān)系,并利用SolidWorks平臺的尺寸參數(shù)驅(qū)動(dòng)技術(shù)。
例如:Part.CreateLine20,(D1-D4)/2,0,B1-B2,(D1-D4),2,0,繪制直線就必須用到CreateLine2對象,它的隸屬關(guān)系如Sldworks.Modeldoc2.Create_Line2,只有當(dāng)前面兩個(gè)對象都定義了才能成功地調(diào)用CreateLine2對象,另外還必須設(shè)定該對象的六位參數(shù),它是直線的起點(diǎn)和終點(diǎn)空間位置坐標(biāo),最終實(shí)現(xiàn)繪制直線的功能。其他代碼可以參考SolidWorks API的幫助文檔所提供的函數(shù)說明來編寫。
(4)設(shè)置ADO和DataGrid數(shù)據(jù)訪問控件
ADO數(shù)據(jù)庫訪問設(shè)置可以借助屬性窗口來創(chuàng)建Connection對象。要?jiǎng)?chuàng)建連接,需要選擇該控件,并打開其屬性對話框,從ConnectionString屬性的設(shè)置中選擇“新建連接”選項(xiàng)。然后在彈出的“數(shù)據(jù)鏈接屬性”對話框中,選擇提供程序和設(shè)置服務(wù)器名稱,數(shù)據(jù)庫名稱、登錄賬戶和密碼等信息后測試連接是否正確,單擊確定完成ConnectionString屬性的設(shè)置,也就完成了ADO對象的創(chuàng)建。
(5)程序運(yùn)行
程序運(yùn)行時(shí),首先鏈接Access和程序界面的ADO控件和文本框,通過數(shù)據(jù)的傳輸為變量賦值。然后在內(nèi)部自動(dòng)執(zhí)行編譯好的程序,即可實(shí)現(xiàn)模型的建立和更新。值得注意的是,零件模型的空間放置情形應(yīng)盡量與其實(shí)際的情形相一致,以便于后續(xù)對零件的裝配。選取參數(shù),運(yùn)行程序。
SolidWorks建模會采用自動(dòng)約束和捕捉功能,能有效地幫助用戶完成實(shí)體模型的繪制,但是它們會干涉程序自動(dòng)建模,需要關(guān)閉這種自動(dòng)約束和自動(dòng)捕捉功能,特別是關(guān)閉水平和垂直方向的捕捉功能。在實(shí)例中這種自動(dòng)建模技術(shù)采用參數(shù)驅(qū)動(dòng)方式生成模型,以設(shè)計(jì)參數(shù)建模比具體設(shè)計(jì)數(shù)據(jù)來驅(qū)動(dòng)尺寸建模的方式速度要快。
相關(guān)標(biāo)簽搜索:基于SolidWorks二次開發(fā)的自動(dòng)建模技術(shù)與方法 基于SolidWorks二次開發(fā)的自動(dòng)建模技術(shù)與方法 SolidWorks培訓(xùn)課程 SolidWorks設(shè)計(jì)教程 SolidWorks視頻教程 SolidWorks軟件下載 SolidWorks在建筑室內(nèi)設(shè)計(jì)工業(yè)設(shè)計(jì)的應(yīng)用 SolidWorks基礎(chǔ)知識 SolidWorks代做 Fluent、CFX流體分析 HFSS電磁分析 Ansys培訓(xùn) Abaqus培訓(xùn)