(1)使用配置的方法建立零部件庫;

(2)使用和解除約束方程;

(3)使用壓縮的方法處理不同拓撲結(jié)構(gòu)問題;

(4)使用Access 數(shù)據(jù)庫便于用戶修改。

" />

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

您的位置:網(wǎng)站首頁 > Solidworks

基于SoIidWorks的三次開發(fā)方法研究

時間:2008-07-21 18:36:23 來源:
摘 要:詳細探討了如何于SolidWorks 二次開發(fā)完成后,在不改動程序的前提下,為用戶提供良好的三次開發(fā)接口,并實現(xiàn)對產(chǎn)品庫和零件庫的修改和升級。此方法有效延長了二次開發(fā)軟件的生命周期,使軟件得到最大程度的利用,對CAD 軟件的企業(yè)級應(yīng)用具有十分重要的意義。

    關(guān)鍵詞:SolidWorks;三次開發(fā);零部件庫;方程式;壓縮技術(shù)


    CAD 軟件在國內(nèi)生產(chǎn)制造企業(yè)中的應(yīng)用越來越廣泛,大量二次開發(fā)的需求隨之產(chǎn)生,根據(jù)企業(yè)產(chǎn)品特點開發(fā)出一套專業(yè)設(shè)計軟件成為眾多企業(yè)設(shè)計部門的迫切要求。

    PRO/ E,AutoCAD,SolidWorks 和SolidEdge 等著名CAD 設(shè)計軟件都提供了良好的二次開發(fā)平臺,基于這些軟件的二次開發(fā)產(chǎn)品滿足了各種企業(yè)和行業(yè)的設(shè)計需求,然而這樣的軟件產(chǎn)品卻往往會遇到以下幾個方面的問題:

    (1)專業(yè)性強

    企業(yè)往往無法在現(xiàn)有CAD 軟件中找到適合自己行業(yè)的零件庫,在此情況下便產(chǎn)生了二次開發(fā)的需求,因此二次開發(fā)產(chǎn)生的零部庫一般都是針對某個設(shè)計行業(yè)。這樣的零部件庫日后很難從軟件市場上得到升級和補充,例如空氣分離設(shè)備行業(yè),全國只有近百家專業(yè)生產(chǎn)廠商,現(xiàn)在CAD 廠商通常不會為這樣的專業(yè)領(lǐng)域企業(yè)設(shè)計完善的零部件庫。

    (2)保密性高

    企業(yè)的設(shè)計軟件充分體現(xiàn)了企業(yè)的技術(shù)特點和技術(shù)優(yōu)勢,這樣的二次開發(fā)軟件具有很強的保密性。為了防止技術(shù)資料泄漏并保持同行業(yè)內(nèi)的競爭優(yōu)勢,企業(yè)往往非常慎重地選擇軟件開發(fā)伙伴,這樣就為日后維護帶來很大的困難。以空氣分離設(shè)備行業(yè)為例,該行業(yè)準入門檻低,擁有核心技術(shù)的人員可以很容易地組建新的生產(chǎn)企業(yè),因此資料的保密是關(guān)系到企業(yè)生存的大事。如何在保密的情況下,長期維護和升級軟件成了企業(yè)面臨的新問題。

    (3)設(shè)計變動頻繁

    企業(yè)產(chǎn)品要更新?lián)Q代,進而帶動零部件庫的更新和程序設(shè)計流程的變化。從企業(yè)需求角度而言,創(chuàng)新設(shè)計是企業(yè)賴以生存的基石,設(shè)計變動將頻繁發(fā)生;而從軟件的角度來說,涉及變動嚴重威脅了軟件的壽命,任何改動都可能導致既有軟件功能完全喪失。如果對每次設(shè)計變動都要聯(lián)系軟件設(shè)計企業(yè),必然造成無謂的二次投資,而對于軟件企業(yè)更改原有軟件帶來的開銷往往是驚人的。

    如何解決這些問題成了企業(yè)發(fā)展創(chuàng)新道路上的新困難,由此產(chǎn)生了企業(yè)三次開發(fā)的需求———企業(yè)在有限的軟件開發(fā)能力之下,不必支付大量的維護升級成本就能自主進行三次開發(fā),讓軟件適應(yīng)企業(yè)日益增長的設(shè)計需求。

    將以SolidWorks 為例,結(jié)合實際工程項目經(jīng)驗,探討在二次開發(fā)過程中充分考慮用戶三次開發(fā)需求而進行的若干改進和嘗試,從而保證用戶在軟件交付使用后仍然能夠自行升級和維護該軟件。


1 SoIidWorks三次開發(fā)的四種方法

    SolidWorks 的二次開發(fā)通常是利用SolidWorks 公司提供的功能齊全的API 函數(shù)庫,使用Visual C ++ 或者Visual Basic 語言設(shè)計完成的。這樣的工作對于軟件開發(fā)企業(yè)來說比較簡單,而一旦二次開發(fā)軟件交付用戶使用,理解和修改代碼的工作對于用戶來說將變得十分困難。下面的討論就是基于用戶只具有基本的計算機操作能力,沒有軟件開發(fā)能力的前提之下,如何繞開代碼修改,仍能夠?qū)Χ伍_發(fā)軟件進行補充和升級的四種方法,以滿足企業(yè)創(chuàng)新和發(fā)展的需要。

    這四種方法分別是:

    (1)使用配置的方法建立零部件庫;

    (2)使用和解除約束方程;

    (3)使用壓縮的方法處理不同拓撲結(jié)構(gòu)問題;

    (4)使用Access 數(shù)據(jù)庫便于用戶修改。

    1.1 使用配置的方法建立零部件庫

    二次開發(fā)中建立零部件庫有兩種方法:

    (1)編程實現(xiàn)

    SolidWorks 提供了完整的API 函數(shù),調(diào)用接口函數(shù)可以實現(xiàn)各種繪圖功能。以實現(xiàn)一個圓柱系列化為例,其步驟如下:

    ①使用ModelDoc 對象中的CreateCircle2 函數(shù)即可按照制定的圓心和圓周上一點繪制圓形。使用PartDoc 對象中的FeatureExtrusion3函數(shù)進行拉伸,得到一個圓柱。#p#分頁標題#e#

    ②在數(shù)據(jù)庫(如SQLServer)中建立一組不同規(guī)格的圓的直徑表。

    ③使用ODBC 或者JDBC 建立程序和數(shù)據(jù)庫的連接,調(diào)用不同的直徑值在SolidWorks 中生成不同尺寸的圓柱形。

    這樣就完成了對一組圓柱零件庫的程序驅(qū)動。#p#分頁標題#e#

    (2)使用配置實現(xiàn)

    配置(Configurations)是SolidWorks 中實現(xiàn)零部件庫的一個重要方法,它可以在單一的文件中對零件或裝配體生成多個設(shè)計變化。配置提供了簡便的方法來開發(fā)與管理一組有著不同尺寸、零部件或其他參數(shù)的模型,它是通過插入系列零件設(shè)計表實現(xiàn)的,SolidWorks 內(nèi)嵌Excell 表以支持此功能。

    如圖1 所示,對于“管子”零件有兩個參數(shù)是系列化的,即管子外徑和管子壁厚。對于每一個公稱通徑,如當前配置DN57,都有一組管子外徑57mm(管子外徑@ 草圖1)和管子壁厚3. 50mm(管子壁厚@ 拉伸-薄壁1)與之對應(yīng)。如此形成一組DN10-DN400 的配置就形成了管子的零件庫。

實現(xiàn)這個長度關(guān)系有兩種方法:

    (1)編程實現(xiàn)

    可以按照如下步驟設(shè)定彎頭半徑和管道直徑的關(guān)系:

    ①使用ModelDoc2 對象的子對象Annotation 中的GetDimension函數(shù)獲得管道直徑參數(shù)。

    ②使用ModelDoc2 對象中的SetParamValue 方法設(shè)定彎頭直徑值為管道直徑的1. 5 倍。

    這樣就設(shè)定了彎頭直徑和管道直徑的關(guān)系。

    (2)使用方程式實現(xiàn)

    方程式是SolidWorks 提供的一種重要的尺寸約束關(guān)系,在零部件尺寸實現(xiàn)參數(shù)驅(qū)動后,可以使用尺寸名稱作為變量添加方程式。當在裝配體中使用方程式時,可以在零件之間、零件和子零部件之間,以配合尺寸來生成方程式。

    使用方程式可以輕松地實現(xiàn)這個數(shù)學關(guān)系,同時又使用戶日后可以很方便地進行修改。在圖2 中,兩個彎頭可以由下面兩個方程式進行控制:

    “D2@ 草圖2”=“管子外徑@ 草圖1”× 1. 5

    “D2@ 草圖4”=“管子外徑@ 草圖1”× 1. 5

    可以看出,與第一種方法相比,用方程式控制可以不必關(guān)心程序代碼,直接在SolidWorks 中實現(xiàn)數(shù)學關(guān)系的添加和修改。例如有些管路根據(jù)經(jīng)驗要求彎頭直徑是管道直徑的2 倍,因為這樣一個微小的變動而修改整個程序?qū)τ谟脩魜碚f將非常困難,使用方程式則只需在SolidWorks 選擇“ 編輯方程式”,將系數(shù)1. 5 改成2 即可。

    另外值得一提的是,使用方程式和配置一起配合使用,可以極大地簡化零部件的復雜程度。如圖2 所示,整個管道是由拉伸-薄壁1、拉伸-薄壁2、拉伸-薄壁3、旋轉(zhuǎn)-薄壁1、旋轉(zhuǎn)-薄壁2 五部分組成,其中拉伸-薄壁1 的壁厚是配置中定義的,其余四部分沒有建立配置,其壁厚可以由如下方程式來控制:

    “D5@ 拉伸-薄壁3”=“管子壁厚@ 拉伸-薄壁1”

    “D3@ 旋轉(zhuǎn)-薄壁2”=“管子壁厚@ 拉伸-薄壁1”

    “D5@ 拉伸-薄壁2”=“管子壁厚@ 拉伸-薄壁1”

    “D3@ 旋轉(zhuǎn)-薄壁1”=“管子壁厚@ 拉伸-薄壁1”

    這樣既減少了資源開銷,又方便用戶自行進行變更和控制。

    1.3 使用壓縮的方法處理不同拓撲結(jié)構(gòu)問題

    拓撲問題一直是CAD 軟件中的重要問題,用戶在設(shè)計過程中也常常遇到這樣的需求。

    如圖3 所示,在空氣分離設(shè)備中氮氧分離設(shè)備( 左)上部要安裝氣缸(右),常用的氣缸有QT100 和QT200 兩個型號,根據(jù)設(shè)備尺寸的不同進行選擇。

 

    通常氮氧分離設(shè)備直徑小于1 500mm 時使用QT100,當直徑大于1 500mm 時采用QT200,可以用如下兩種方法解決這個問題:

    (1)編輯實現(xiàn)

    可用如下步驟編程實現(xiàn):①使用SolidWorks 對象的Open-Doc6 方法加載氮氧分離設(shè)備文件。②根據(jù)氮氧分離設(shè)備直徑判斷需要選擇的氣缸類型,并加載相應(yīng)文件。③使用Model-Doc2 對象里的AssemblyDoc 子對象中的Mate2 方法將兩個部分裝配在一起。#p#分頁標題#e#

    (2)壓縮實現(xiàn)

    壓縮是暫時將零部件從裝配體中移除(而不是刪除)。它不裝入內(nèi)存,不再是裝配體中有功能的部分。

    這里選用SolidWorks 的壓縮功能而沒有使用輕化或者隱藏,主要是考慮在對零部件進行壓縮之后,該零部件包含的配合關(guān)系也被壓縮,這樣在同樣的位置裝配兩個類似的零部件,只要其中之一處于壓縮狀態(tài),則另一個完全不受影響。而輕化或者隱藏是部分零部件模型數(shù)據(jù)裝入內(nèi)存,其余的模型數(shù)據(jù)根據(jù)需要裝入,這樣會導致當一個零部件處于當前狀態(tài)時,被輕化或者隱藏的零部件仍然有部分信息處于當前狀態(tài),造成信息混亂和編輯困難。#p#分頁標題#e#

    在繪制如圖3 所示三維圖形時,將兩種氣缸都裝配在氮氧分離設(shè)備頂端并都處于壓縮狀態(tài),設(shè)計過程中,用戶根據(jù)需要選擇一種氣缸之后,程序解除該氣缸的壓縮狀態(tài)。如果設(shè)計變動,需要選用另外一種氣缸,那么用戶可以很方便地刪除當前氣缸,將另一種氣缸從壓縮狀態(tài)中釋放出來即可。以此類推,當設(shè)計者開發(fā)出更多新型號的氣缸后,只需要在氮氧分離裝置頂部裝配新的氣缸并處于壓縮狀態(tài),待程序生成整套設(shè)備后,根據(jù)需要選擇每種氣缸的壓縮狀態(tài)。

    另外,實際設(shè)計過程中,根據(jù)經(jīng)驗往往需要對氣缸的選擇標準進行調(diào)整。例如對于不同純度的要求,往往可以靈活選用,在氮氧分離設(shè)備直徑大于1 500mm 時仍然選擇QT100。

    這樣的情況給程序設(shè)計帶來困難,用戶無法修改程序代碼調(diào)整這個尺度,而采用壓縮的方法可以有效地解決這個問題。

    1.4 使用Access 數(shù)據(jù)庫便于用戶修改

    作為具有GUI 的設(shè)計軟件,總是不可避免地要用到數(shù)據(jù)庫。例如在工業(yè)制氧機產(chǎn)品設(shè)計界面上,主管路設(shè)計中的“ 公稱通徑型號”,AC 和CG 選型中的“AC 型號”、“AC 冷干機型號”和“CG 型號”等需要下拉菜單的控件都需要數(shù)據(jù)庫的支持,這里為了最大限度地降低用戶日后修改的難度,避免采用SQL Server 等中型以上的數(shù)據(jù)庫,而是選用Access 數(shù)據(jù)庫。程序通過DAO 調(diào)用Access 數(shù)據(jù)庫中的相關(guān)表格,當用戶需要添加新的下拉菜單內(nèi)容時,只需要打開程序的Access 文件,在相關(guān)的表中進行添加即可。

    例如在Access 中對每個下拉菜單都有相關(guān)的表支持,對于圖4 中AC 和CG 選型下拉菜單,Access 中有表格“ACCG”相對應(yīng),存儲著從AC1. 2 至AC97 等17 行數(shù)據(jù)。當用戶需要添加新的AC 類型時,只需要在Access 中添加新的一行數(shù)據(jù),即可反映在設(shè)計界面的下拉菜單中,方便了用戶對AC 設(shè)備庫進行升級和補充。

綜合以上四種方法,一個總的原則就是:讓程序最小限度地參與到設(shè)計中來,為用戶提供最大的方便以及自由設(shè)計和修改的空間。


2 結(jié)論

    本文詳細介紹了在SolidWorks 二次開發(fā)完成后,如何留給用戶一個三次開發(fā)空間的若干種方法。這是個很有意義的研究領(lǐng)域,使二次開發(fā)軟件保持長久的生命力,同時最大限度地節(jié)省用戶的開發(fā)和維護成本。而如何更大程度地給用戶開放自由發(fā)揮的空間,還有待于進一步的研究。

參考文獻:

    [1] 池勇,辛選榮,葛中新,等. SolidWorks 二次開發(fā)方法的研究[ J].機械,2003,30(3):38-40.

    [2] 江有永,曾忠,曹志全,等. 基于SolidWorks 的尺寸方程驅(qū)動系列件庫建模實現(xiàn)[J]. 機械工程師,2003,(5):25-26.

    [3] 夏秋英. 參數(shù)化、變量化技術(shù)及其CAD 系統(tǒng)[J]. 精密制造與自動化,2005,(1):53-55.

    [4] 李光耀,杜娟. 基于參數(shù)的SolidWorks 零件庫的開發(fā)和實現(xiàn)[ J].機械設(shè)計與制造,2005,(5):40-45.

    [5] 劉潔,李言. 二次開發(fā)SolidWorks 建立國標零件庫[ J]. 計算機輔助設(shè)計與制造,2000,(10):43-44.