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