1 引言
隨著科學技術的進步,現代制造業正朝高速、高效和高精度方向發展,對機床結構和性能提出了越來越高的要求。因此,如何適應市場需求,在復雜多變的市場經濟中,快速高質量地設計制造出市場所需的切削加工設備是制造行業競爭的焦點。所以將計算機輔助設計(CAD)技術應用到機床設計當中一直是眾多廠家的愿望。以前的CAD軟件大都采用面向過程的設計方法編寫,不可避免的存在系統開發速度慢,周期長,費用高,軟件質量差,可讀性、可靠性、易維護性差等缺陷。隨著計算機技術的發展和廣泛應用,設計的方法和手段也隨之不斷改進和完善。面向對象方法正引起人們的關注和重視。對象是對現實世界基本成分的一種抽象,每個對象都有其自身的運行規律(行為)和內部狀態(屬性)。通過類比把具有相同或相似屬性和行為的對象抽象形成對象類(歸納),對象類之間還可以通過繼承機制,使得子對象類具有某些父對象類的屬性和行為,形成層次結構(演繹),不同的對象類的組合及相互作用(通過消息實現)就構成了我們所要研究和分析的客觀系統。面向對象的軟件開發關鍵是建立一個統一的模型———對象模型,充分分析對象以及對象之間的關系和作用,對分析的模型加以細化、調整,實現概念模型到計算機模型的面向對象轉化,最后用面向對象的語言實現該模型。
圖1 主傳動系統對象模型
2 模型建立
根據面向對象的方法、原理和機床主傳動系統的特點,首先要建立主傳動系統的對象模型?;趯ο蟮膭澐衷瓌t,整個系統由以下不同的對象類組成,如圖1所示。在模型的層次結構中上層與下層對象類既有包含與被包含的關系,也有繼承與被繼承的關系,從上到下,從整體到局部把系統逐步細化,分解成容易管理與設計的各個對象類。還可以這些對象為基類再派生出一些子類,使得對象更加具體與簡單,如:齒輪類可以派生出兩個子類,固定齒輪類和滑移齒輪類等。這樣整個系統的設計就演化成對各個子類的設計和類與類之間關系的分析與實現上。
3 模型設計
在對象模型的基礎上,再對每個對象類進行詳細設計,分析出每個對象類的屬性和方法,形成系統的概念模型,用表達式A:{b,c,d,e,…}表示,其含義為A有屬性b,c,d,e…。例如:
主軸類:{軸端類型,軸承配置形式,前軸承直徑,后軸承直徑,內孔直徑,齒輪處直徑,主軸跨距,主軸支撐形式}
固定齒輪類:{模數,齒數,孔徑,鍵高,鍵寬,軸鍵槽深度,輪轂鍵槽深,類型}
軸承類:{軸承類型,小徑,大徑,寬度,額定動載荷,額定靜載荷,小徑最小安裝尺寸,大徑最大安裝尺寸}
螺紋類:{類型,螺紋大徑,小徑,中徑,長度}
節點類:{子節點的數目,父節點指針,子節點指針,數據項,作圖標志}
傳動級類:{主動齒數,被動齒數,傳動副數,級比指數,傳動比,父節點數目}
…………………………………………
其中:節點類和傳動級類屬于中間設計所需類,用于轉速圖和傳動系統圖的實現。
在對象模型和屬性分析的基礎上,便可以用面向對象的計算機語言將這些對象類表達出來,實現現實中的概念模型向計算機內的邏輯模型的轉化,通過一定的算法和運行環境機制最終完成軟件的設計。
4 系統實現
在對象模型和概念模型的基礎上將整個軟件的設計分解成5個子模塊:運動參數設計模塊、傳動零件初步計算模塊、操縱機構模塊、繪制裝配草圖模塊、零件校核模塊。通過這5個模塊逐步實現對每個對象的設計,從而完成系統的設計。本軟件使用C++語言,開發工具是Visual C++ 6.0,運行環境是Windows 95/98或Windows NT?,F以固定齒輪類為例,說明類的描述。
ClassCFixGear //固定齒輪類
{
private:
float modula: //模數
int numberofchishu: //齒數
int innerdiameter: //孔徑
int jianhigh: //鍵高
……
public:
CMainAxisPart(): //構造函數
~CMainAxisPart(): //析構函數
void GetXXX(): //獲得當前齒輪狀態的函數
…………………
void SetXXX(XXXxxx): //設置齒輪狀態函數
…………………
fload CalTouch(): //按接觸疲勞強度計算模數
fload CalBend(): //按彎曲疲勞強度計算模數
int JiaoHe(floadm,intz): //校核齒輪
void OnDraw(CDCpDC,CPointpoint)://在顯示設備中畫出齒輪
……………………
}
各個類之間的數據協調與傳遞是通過消息機制和Visual C++特有的文檔類視圖類的結構實現的,如圖2所示。由圖知通過這些聯系可將所有彼此相互獨立的對象類有機地結合起來,并且這種結構是低耦合度、高聚合度的,某個類的改變對其它類影響極小,只有消息的改變,其相應的對象才有相應的反應,表現出相應的形態。
圖2 各類之間的連接關系
通過這些類的定義、函數的實現和類之間聯系,可方便地實現系統中的每個模塊,快速開發出相應的CAD軟件。同時類具有繼承性、多態性、易理解性和可擴充性,這使得所開發出的軟件易維護,功能易擴充,代碼可重用,系統升級、修改變得簡單容易。
5 數據庫設計
在機床設計中需要查閱大量的數據、資料,一般全都是靠人的手工去查詢,既繁瑣又容易出錯。在本系統中運用數據庫技術將這些數據、資料整理匯總成數據庫,包括如下表項:齒輪齒數庫、齒輪材料庫、各類軸承庫、螺紋庫、典型主軸組件庫、零件驗算所需的參數庫等。數據庫是用微軟的SQL Server實現的,應用程序與數據庫的接口用的是ODBC技術。Visual C++對ODBC的支持是通過CRecordSet類和CDatabase類實現的,在應用程序中生成一個CRecoedSet的派生類和CDatabase實例就可以方便、快速、安全地與任何一個支持ODBC的數據庫相連。
我們按上述方法研制出了較實用的車床主傳動CAD系統,試用效果良好。