計算機輔助設計簡稱CAD,是英文Computer Aided Design的縮寫。它是指工程技術人員以計算機為工具進行設計的全過程:包括資料檢索、方案構思、計算分析、工程繪圖和編制技術文件等,是隨著計算機、外圍設備及其軟件的發展而形成的一種綜合性高新技術?,F代切削加工正朝向高速、高效和高精度方向發展,這對機床結構和性能提出了越來越高的要求,如高轉速、大功率、寬調速范圍、低噪音、動態性能好、可靠性高等。而機床主傳動系統是機床設計中的關鍵,因此,如何適應市場需求,在復雜多變市場經濟中,快速高質地設計制造出市場所需的切削加工設備是制造行業實力、科技水平的體現。所以將計算機輔助設計(CAD)技術應用到機床設計當中一直是眾多廠家追求的目標。我國以前的機床設計多用繪圖板,進行手工繪制,這樣工作量往往會很大,造成開發的周期過長,而且設計過程中容易出錯。因此,如何把計算機應用到機床設計中去,如何開發出一套通用的、行之有效的機床主傳動系統設計軟件,是我們寫本文的動機所在。
2.面向對象的程序設計方法
面向對象(Object-oriented)作為一個概念起先是軟件系統設計與實現的一種新方法,由于這種思維方法的巨大優勢已使得它在其它的各個領域也產生了越來越廣泛的影響。
面向對象方法是一種圍繞現實世界概念來建造對象模型的全新的表示現實物體,解決問題的方法。它的可擴充性和可重用性極大的提高了系統的開發速度,它通過對設計參數的封裝與隱藏,設計與實現分離來控制軟件的復雜性和可維護性。
面向對象方法學的中心是圍繞著對象、類、消息、繼承性、多態性和動態聯編等概念、機制和原理展開的。其中,對象、類是這一方法的核心,消息是連接它們的紐帶,繼承性是這一方法的獨特貢獻,而多態性和動態編聯使這一方法更加完美。
面向對象的方法學認為:客觀世界是由各種“對象”所組成,任何事物都是對象,每個對象都有自己的運行規律和內部狀態。通過類比,具有相同特征和功能的對象形成類(歸納),每個對象都屬于某個“對象類”,都是該對象類的一個實例。不同對象的組合及相互作用就構成了我們要研究、分析和構造的客觀系統。對象類之間可以通過繼承關系構成類的層次結構,“子類”可以直接繼承“父類”的性質和功能(演繹)。而對象之間通過消息相互作用,消息就是通知對象去完成一個允許作用于該對象的操作,該對象將如何完成這個操作的細節被封裝在類的定義中,對外界是隱蔽的。
面向對象的分析就是用面向對象的思想來研究問題,并按現實世界的本來面目構造出一個反映問題本質的模型,該模型說明了系統必須做什么,而不是如何做,即做的細節。面向對象的設計就是構造一個問題求解的模型。由于分析模型是用面向對象的方法建立的,它與軟件解的結構相似,因此,面向對象的設計是對分析模型的加細(描述對象及其關系是怎樣的),以及構造實現中所涉及對象的過程。
面向對象的方法提供了比結構化方法更自然、更合理的概念及技術,而且,它的抽象性、封裝性、繼承性、多態性等都比結構化方法更為優越,從而使其成為一種更有力的工具和方法。
3.面向數控機床主傳動系統的程序設計
根據面向對象方法的基本原理,建立數控車床主傳動系統的概念模型,使用VC作為程序設計的開發工具。由于數控車床主傳動系統的設計部分主要是一種參數化設計的過程,因此程序主要以人機交互的方式來完成這項工作。針對這一特點,我把整個系統劃分為許多界面,并把這些界面作為實體抽象為一定的對象類。
整個系統的對象類大致如下: #p#分頁標題#e#
對象類1: 電機型號對話框
對象類2: 變速箱變速級數對話框
對象類3: 傳動比對話框
對象類4: 傳動副齒數對話框
對象類5: 齒輪材料對話框
對象類6: 齒輪模數(按接觸)對話框
對象類7: 齒輪模數(按彎曲)對話框
對象類8: 齒輪模數(標準)對話框
對象類9: 同步齒形帶計算功率屬性頁
對象類10:同步齒形帶模數屬性頁
對象類11:大小帶輪直徑屬性頁
對象類12:同步齒形帶齒數屬性頁
對象類13:軸徑估算對話框
根據上述基本對象類,進一步將數控機床主傳動系統的設計部分劃分為四個子系統:
根據以上所得基于面向對象分析的系統模型、結構,可直接得到程序的模塊分解。有上述的4個子系統,很容易設計出該系統的程序設計部分的總體模塊結構。
(1) 運動設計模塊
在這一模塊中,主要完成確定機床電機型號、機床極限轉速、變速級數、傳動副傳動比及齒輪齒數的工作。
(2) 齒輪設計模塊
在這一模塊中,主要完成傳動齒輪材料和熱處理方式的選擇、按接觸疲勞強度計算傳動齒輪模數、按彎曲疲勞強度計算傳動齒輪模數及模數圓整的工作。
(3) 同步齒形帶模塊
在這一模塊中,主要完成確定計算功率、齒形帶模數、齒形帶速比、大小帶輪齒數和直徑、齒形帶寬度及帶輪中心距和齒形帶齒數的工作。
(4) 軸徑估算模塊
在這一模塊中,主要完成確定車床最大加工直徑、一般傳動軸直徑估算、主軸前軸頸直徑估算、主軸后軸頸直徑估算及主軸平均內徑估算的工作。
根據上述各對象類之間的關系及對系統的模塊化劃分,同時為了保證設計過程中各對象類的數據傳遞的有效性。在對象類設計時,首先給每一個對象類封裝一部分與該對象類相關的數據成員(屬性)。然后在程序中聲明與每個對象類相對應的結構體(Struct),結構體包含了與對象類中封裝的數據成員一一對應的變量。這些結構體中的變量,在初始化對象類,對象類之間進行數據傳遞以及保存重要的設計參數的方面都起著非常重要的作用。最后只要在“文檔”類中為每個結構體定義一個對象,利用Visual C++中“文檔”類和“視”類的一些重要方法來完成這些工作。下圖表示了數據之間的組織關系。這些工作也可以直接通過類的對象而不是利用結構體的對象來完成,但出于組織上的協調和管理上的方便,依靠中間橋梁的思想來組織數據和傳遞數據。 #p#分頁標題#e#
下面以一個具體例子來說明這工作原理:
1.數據封裝
l 對象類1:電機型號對話框 類名:ACMotorSelectDlg
class ACMotorSelectDlg : public CDialog
{
// Construction
public:
CNCLatheDesignView* pView; // 視類對象(指針型)
CNCLatheDesignDoc* pDoc; // 文檔類對象(指針型)
int index; // 交流電機功率列表框選擇索引
float power[7]; // 交流電機額定功率數組
long basespeed[7]; // 交流電機額定轉速數組
long maxspeed[7]; // 交流電機最高轉速數組
ACMotorSelectDlg(CWnd* pParent = NULL); // standard constructor
// Dialog Data
//{{AFX_DATA(ACMotorSelectDlg)
enum { IDD = IDD_ACMOTOR_SELECT };
CListBox m_powerlist;
CString m_information;
long m_ebspeed;
long m_emaxspeed;
float m_epower;
//}}AFX_DATA
};
l 對象類2:變速級數對話框 類名:GearShiftSelectDlg
class GearShiftSelectDlg : public CDialog
{
// Construction
public:
CNCLatheDesignView* pView; // 視類指針對象
CNCLatheDesignDoc* pDoc; // 文檔類指針對象
double nj; //主軸計算轉速
double Rn; // 主軸調速范圍
double Rnp; // 主軸恒功率調速范圍
double Rp; // 電機恒功率調速范圍
GearShiftSelectDlg(CWnd* pParent = NULL); // standard constructor
// Dialog Data
//{{AFX_DATA(GearShiftSelectDlg)
enum { IDD = IDD_GEARSHIFT_SELECT };
CButton m_calculate;
float m_inputmaxspeed;
float m_inputminspeed;
int m_twoshift;
CString m_spispeedrange;
CString m_motspeedrange;
//}}AFX_DATA
};
這兩段程序代碼都封裝了對象類1和對象類2各自所需要的成員變量,在這些成員變量中有兩個成員變量CNCLatheDesignView* pView和CNCLatheDesignDoc* pDoc,它們是一種介質。通過這種介質與“文檔”類CNCLatheDesignDoc(從CDocument類派生而類)中定義的結構體對象進行聯系,從而可以使對象類引用屬于自己的結構體或是與其它對象類相關聯的結構體中變量。在這兩段程序代碼中,定義在 // Dialog Data和//}}AFX_DATA之間的成員變量是與對話框中的控件相聯系的,用來描述各個控件的狀態和數值,同時也依靠這些成員變量通過介質與結構體中的變量進行數據通訊。#p#分頁標題#e#
4.數據庫技術在機床主傳動系統設計中的應用
傳統的機床主傳動系統設計需要查找大量的數據,這樣會使設計的工作量很大,如何把設計中所需的基礎數據組織到一起,構建一個緊湊、高效的數據庫,來縮短查找時間,提高效率,是我們在軟件設計開發過程中要解決的一個重要環節。
VC包含了兩個相互獨立的數據庫訪問系統:ODBC(開放數據庫互聯)和DAO(數據訪問對象)。在本程序中利用的是ODBC標準。ODBC是基于SQL(結構化查詢語言)的標準。利用這種語言,可以實現數據庫的操作。
在本程序中利用了VC中的CDatabase類和CRecordset類來實現具體的操作。在實際訪問數據庫之前,首先要建立一個可以使用的數據庫。結合本設計的要求,利用SQL(Structured Query Language)軟件建立了一個具體的數據庫,在這一數據庫中包含了兩張數據表:一張是存放各種常用傳動比適用齒數的數據表,另一張是存放齒輪材料和熱處理發式的數據表。
數據庫建立完畢后,用數據源管理器(在Windows控制面板中)使應用程序與數據源建立連接,指定為ODBC方式訪問數據庫,并選擇將要訪問的數據表,這樣應用程序就可以訪問數據庫中的數據資源。
這些工作完成之后,就可以在應用程序中加入相應的代碼來執行數據庫操作。在程序中首先從CRecordset類中派生出它的子類,一個是 Summation類,一個是Material類,通過這兩個子類分別來訪問數據庫中的兩張數據表。然后適用子類的Open()函數、MoveFirst ()函數、MoveNext()函數等方法以及利用SQL中的SELECT語句來來實現具體的功能。
部分程序代碼如下:
1.檢索傳動組中各級傳動副不同傳動比所具有的相同齒數和語句
summation.m_strFilter="(傳動比="+string1+" or 傳動比="+string2+" or 傳動比="+string3+" or 傳動比="+string4") and 齒數和 in ( select 齒數和 "+" from 各種常用傳動比的適用齒數 where 傳動比="+string1+" and 齒數和 "+" in (select 齒數和 from 各種常用傳動比的適用齒數 where 傳動比="+string2+ " and 齒數和 "+" in (select 齒數和 from 各種常用傳動比的適用齒數 where 傳動比="+string3+" and 齒數和 "+" in (select 齒數和 from 各種常用傳動比的適用齒數 where 傳動比="+string4+"))))";
2.打開數據庫,查詢與檢索語句設置條件相關數據和關閉數據庫語句
if (summation.IsOpen())
{
summation.Close();
}
summation.Open();
if (summation.IsBOF())
{
return false ;
}
summation.MoveFirst();
m_summation1=0;
CComboBox* pcombobox=(CComboBox*) GetDlgItem(IDC_SUMMATION1);
while( !summation.IsEOF())
{
if (summation.m_column1==m_trasmitone )
{
string1.Format("%d",summation.m_column2);
pcombobox->InsertString(-1,string1); #p#分頁標題#e#
}
summation.MoveNext();
}
summation.Close();
5.結束語
本文通過面向對象思想在數控機床主傳動系統中應用,對CAD技術在機床設計中進行了探討,并將數據庫技術引入機床設計中去,大大簡化了設計人員的工作量,實踐證明該CAD軟件具有一定的可行性和通用性。
相關文章
- 2021-09-08BIM技術叢書Revit軟件應用系列Autodesk Revit族詳解 [
- 2021-09-08全國專業技術人員計算機應用能力考試用書 AutoCAD2004
- 2021-09-08EXCEL在工作中的應用 制表、數據處理及宏應用PDF下載
- 2021-08-30從零開始AutoCAD 2014中文版機械制圖基礎培訓教程 [李
- 2021-08-30從零開始AutoCAD 2014中文版建筑制圖基礎培訓教程 [朱
- 2021-08-30電氣CAD實例教程AutoCAD 2010中文版 [左昉 等編著] 20
- 2021-08-30電影風暴2:Maya影像實拍與三維合成攻略PDF下載
- 2021-08-30高等院校藝術設計案例教程中文版AutoCAD 建筑設計案例
- 2021-08-29環境藝術制圖AutoCAD [徐幼光 編著] 2013年PDF下載
- 2021-08-29機械AutoCAD 項目教程 第3版 [繆希偉 主編] 2012年PDF