王忠雷,張長江,石奇龍,楊晨立
(山東建筑大學(xué)機電工程學(xué)院,山東 濟南 250101)
塔式起重機(以下簡稱“塔機”)是常用的起重設(shè)備之一,在土木、建筑等工程建設(shè)領(lǐng)域有著廣泛的應(yīng)用,它具有工作效率高、適用范圍廣、回轉(zhuǎn)半徑大、起升高度高、安裝與拆卸比較方便等特點。塔機的裝配設(shè)計是塔機整個設(shè)計過程的重要組成部分,對保證產(chǎn)品質(zhì)量和降低產(chǎn)品成本起著關(guān)鍵性的作用。目前,塔機的裝配設(shè)計主要存在2 個方面的問題:①計算復(fù)雜、設(shè)計周期長。目前塔機的裝配設(shè)計普遍采用SolidWorks 軟件進行幾何建模,通常會遇到完成裝配體后,模型與設(shè)計要求不符,此時只能逐一修改相關(guān)的零件模型,浪費大量的時間。②塔機的裝配設(shè)計方法不易掌握,一般的計算機輔助軟件不能滿足裝配設(shè)計要求,使得在快速研制塔機新產(chǎn)品中遇到困難[1]。
近年來隨著計算機輔助設(shè)計技術(shù)的快速發(fā)展[2-3],很多學(xué)者研究了SolidWorks 二次開發(fā)技術(shù),李建華等[4]研究了一種基于SolidWorks 二次開發(fā)的三維交互輔助裝配方法,實現(xiàn)了裝配數(shù)據(jù)的實時可視化;目登臣等[5]利用應(yīng)用程序接口函數(shù)對SolidWorks 軟件進行二次開發(fā),形成了一套可獨立運行的齒輪零件參數(shù)化造型系統(tǒng);劉金鳳等[6]基于SolidWorks 二次開發(fā)技術(shù),對發(fā)動機活塞參數(shù)化設(shè)計進行了研究,提高了活塞設(shè)計效率。
從這些研究成果可以看出,由于SolidWorks 造型便捷、二次開發(fā)技術(shù)易于實現(xiàn),已成為機械輔助設(shè)計領(lǐng)域的主流軟件。但是目前基于SolidWorks 二次開發(fā)實現(xiàn)的參數(shù)化輔助設(shè)計,以結(jié)構(gòu)簡單,尤其是裝配關(guān)系簡單的零部件為主。對于大型、結(jié)構(gòu)復(fù)雜的裝配體的輔助設(shè)計系統(tǒng)還不多見,基于裝配驅(qū)動的“自上而下”的智能輔助設(shè)計系統(tǒng)更為少見。因此本文針對上述問題,研究并設(shè)計了一種對話框式的塔機智能裝配的三維輔助設(shè)計系統(tǒng)。
本系統(tǒng)由智能輔助設(shè)計平臺、零部件信息數(shù)據(jù)庫、外部鏈接文件、零部件三維模型庫以及SolidWorks 系統(tǒng)5 個部分組成。系統(tǒng)的總體框架如圖1 所示,系統(tǒng)以*.exe 方式獨立運行于SolidWorks 之外,并通過修改SolidWorks 三維模型的外部連接文件,實現(xiàn)三維模型的尺寸驅(qū)動。
圖1 系統(tǒng)整體框架
系統(tǒng)工作時,輔助設(shè)計平臺依據(jù)設(shè)計要求,調(diào)用零部件信息數(shù)據(jù)庫,搜索相關(guān)零部件并確定尺寸信息,通過輔助設(shè)計平臺,寫入外部鏈接文件,最后SolidWorks 系統(tǒng)會自動調(diào)用外部鏈接文件和三維模型庫,生成符合設(shè)計要求的零部件三維模型。
以FP6010 塔機為研究對象,設(shè)計并建立塔機零部件信息數(shù)據(jù)庫,包括零部件信息表和零部件尺寸信息表,描述塔機零部件關(guān)系和零件尺寸對應(yīng)關(guān)系。
零部件信息表主要存儲零部件基本信息,包括零部件編號、零部件所屬裝配體編號、零部件層次、零部件名稱、零部件數(shù)量、零部件類型、零部件材料、零部件質(zhì)量、零部件尺寸數(shù)量以及原材料參數(shù)(長、寬、高等用于直接下料加工的簡單零件)、備注等信息。零部件所屬裝配體編號為零部件信息表的主要字段信息,通過零部件所屬裝配體編號,輔助設(shè)計程序自動建立樹形零部件信息表。
零部件尺寸信息表主要存儲零部件尺寸信息,包括零部件編號、尺寸順序號、尺寸類型、尺寸名稱、尺寸代碼、參數(shù)名稱、默認(rèn)值、尺寸上偏差、尺寸下偏差、尺寸類型、尺寸源部件編號、尺寸表達式等信息。零部件尺寸信息表,通過尺寸數(shù)據(jù)來源表達裝配關(guān)系,零件尺寸數(shù)據(jù)包括3 個類型:①自由尺寸,即裝配不相關(guān)尺寸;②直接引用尺寸,即零件尺寸直接由裝配體尺寸決定;③表達式引用尺寸,即尺寸由裝配體尺寸構(gòu)成的表達式?jīng)Q定。
為實現(xiàn)零件的尺寸驅(qū)動,采用SolidWorks 參數(shù)化建模的方式進行零件三維模型建立。以銷軸的參數(shù)化建模為例。
首先通過圖2(a)所示銷軸零件圖的尺寸信息,用SolidWorks 軟件繪制出銷軸一半(下部分)的草圖,然后通過“旋轉(zhuǎn)”“拉伸切除”命令獲得如圖2(b)所示的銷軸三維圖。
圖2 銷軸三維模型建立過程
其次為定義變量。通過零件圖上的尺寸信息對變量進行賦值,分析零件結(jié)構(gòu)獲得結(jié)構(gòu)的關(guān)鍵尺寸Ln、Dn、Wn(n=1,2,…),如圖3(a),中把Ln、Dn以及Wn作為零件的驅(qū)動尺寸,將驅(qū)動尺寸定義為全局變量;然后如圖3(b)把零件尺寸與特征尺寸構(gòu)造函數(shù)關(guān)系;最后將方程式導(dǎo)出,如圖3(c)所示,形成方程式外部鏈接文件,其中,例如“W1”之類為基本數(shù)據(jù)定義方程式,“D1@草圖1”之類為關(guān)系定義方程式,用于修改基本數(shù)據(jù)定義方程式。通過修改外部鏈接文件,可以實現(xiàn)模型方程式基本數(shù)據(jù)的修改,從而進一步修改三維模型的尺寸值,實現(xiàn)模型的尺寸驅(qū)動。
圖3 銷軸的參數(shù)化過程
傳統(tǒng)的SolidWorks 設(shè)計和建模采用“自下而上”的設(shè)計思路,即首先設(shè)計和建立零件模型,然后生成裝配模型。通常,創(chuàng)建完裝配體后,會發(fā)現(xiàn)模型不符合設(shè)計要求,此時只能逐一修改相關(guān)的模型,隨著零件數(shù)量的增加,檢測和更正這些錯誤會耗費大量的時間;而“自上而下”輔助設(shè)計,是將裝配尺寸定義在部件上,當(dāng)裝配尺寸修改時,程序會自動查詢相關(guān)零件尺寸,并根據(jù)定義的關(guān)系進行尺寸的計算和修改。為了提高輔助設(shè)計系統(tǒng)的效率、準(zhǔn)確性,因此本文使用了“自上而下”三維輔助設(shè)計方法。
SolidWorks 模型驅(qū)動法根據(jù)修改尺寸的方法不同,可以分為3 種:直接尺寸驅(qū)動法、方程式驅(qū)動法、外部文件驅(qū)動法。
直接尺寸驅(qū)動法調(diào)用API 函數(shù)直接修改模型尺寸;方程式驅(qū)動法通過修改模型方程式中的全局變量,間接修改三維模型尺寸;外部文件驅(qū)動法通過修改模型方程式的外部鏈接文件,間接修改方程式中的全局變量,進而修改模型尺寸。與直接尺寸驅(qū)動法、方程式驅(qū)動法相比,外部文件驅(qū)動法不直接操作SolidWorks 軟件,輔助設(shè)計系統(tǒng)與SolidWorks 軟件耦合度低,系統(tǒng)穩(wěn)定性和可靠性強,另外該方法可以實現(xiàn)多個零件的一次性尺寸驅(qū)動,適用于本文提出的“自上而下”裝配驅(qū)動輔助設(shè)計方法,因此本文采用外部鏈接文件驅(qū)動法。為裝配驅(qū)動的塔機三維輔助設(shè)計系統(tǒng)“自上而下”輔助設(shè)計的技術(shù)路線如圖4 所示。將裝配尺寸定義在部件上。
圖4 “自上而下”輔助設(shè)計的技術(shù)路線
通過Access 數(shù)據(jù)庫定義零件尺寸與裝配尺寸的關(guān)系,當(dāng)裝配部件尺寸修改時,程序自動查詢相關(guān)零件尺寸,并根據(jù)定義的關(guān)系進行尺寸的計算,修改相關(guān)零件外部鏈接文件,相關(guān)零件模型尺寸也隨之改變,從而實現(xiàn)裝配部件尺寸的自動修改。
塔機“左引進輪支架”的輔助設(shè)計。以塔機“左引進輪支架”的裝配驅(qū)動為例,選擇“輔助設(shè)計”下的“裝配驅(qū)動”,塔機“左引進輪支架”的裝配驅(qū)動輔助設(shè)計工作界面,塔機“左引進輪支架”由“把手”“階梯軸”“連扳”“立板”“底板”“銷軸”6 個基本零件,從零件信息圖可以看出裝配模型包含銷軸直徑D1、部件總長L1,頂板厚度W1等17 個關(guān)鍵尺寸,把這17 個關(guān)鍵尺寸定義為全局變量,并且構(gòu)造函數(shù)關(guān)系,最后導(dǎo)出外部鏈接文件。點擊界面上的“裝配驅(qū)動”會生成基于默認(rèn)尺寸的裝配模型。生成默認(rèn)尺寸裝配模型的部分代碼為:
1)SWApp:=GetOrCreateObject(’SolidWorks.Application’);(創(chuàng)建或獲取SolidWorks 對象)
2)SWApp.Visible:=True;(使創(chuàng)建的SolidWorks對象可見)
3)PathName:=Dirstr+’SWM’+data.AQ1.fieldbyname(’ID’).AsString+’.SLDASM’:(模型的讀取路徑)
4)Part.ViewZoomtofit2:(使生成的可視化模型界面顯示大小適宜)
通過系統(tǒng)交互式設(shè)計界面,將銷軸直徑D1由40 mm改為30 mm,部件總長L1由400 mm 改為340 mm,頂板厚度W1由20 mm 改為40 mm(在界面上直接修改數(shù)據(jù)即可),相當(dāng)于修改了外部鏈接文件,點擊“裝配驅(qū)動”系統(tǒng)會自動更新相關(guān)零件尺寸,并實現(xiàn)裝配體模型的更新。通過裝配驅(qū)動的智能輔助設(shè)計系統(tǒng),設(shè)計人員可以快速的優(yōu)化部件尺寸、高效實現(xiàn)系列化設(shè)計。自動更新零件尺寸的部分代碼為:
1)begin(開始)
2)T1:=PID;(裝配尺寸數(shù)據(jù))
3)Repeat(進入循環(huán))
4)Str:=T1.Text;(尋找關(guān)聯(lián)子尺寸)
5)ChangeData(Str);(尺寸修改)
6)SaveToText(Str,Data.RecordCount);(保存修改尺寸)
7)T1:=T1.GetNext;(尋找下一個關(guān)聯(lián)子尺寸,直到相關(guān)尺寸都修改完畢)
8)end;(循環(huán)結(jié)束)
配合前面生成默認(rèn)裝配體的代碼,從而實現(xiàn)新尺寸模型的裝配驅(qū)動。
裝配驅(qū)動的塔式起重機三維輔助設(shè)計系統(tǒng)是運用Delphi 語言對SolidWorks 進行輔助性開發(fā),在SolidWorks 參數(shù)化建模的基礎(chǔ)上進行程序化設(shè)計開發(fā),從而實現(xiàn)抽象設(shè)計到實體三維模型的快速轉(zhuǎn)換,在系統(tǒng)設(shè)計和開發(fā)的過程中,獲得如下結(jié)論:①通過數(shù)據(jù)庫定義了塔式起重機部件和所屬零件的隸屬關(guān)系,并建立了部件尺寸和所屬零件尺寸之間的關(guān)系;②采用SolidWorks 二次開發(fā)技術(shù),應(yīng)用“外部鏈接文件驅(qū)動”方式建立了批量零件尺寸修改的尺寸驅(qū)動方法;③建立了“自上而下”裝配驅(qū)動的塔式起重機三維輔助設(shè)計系統(tǒng)。