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

您的位置:網(wǎng)站首頁 > 機(jī)械制圖 > 機(jī)械技巧

機(jī)床主傳動系統(tǒng)CAD軟件的開發(fā)與研究

時間:2011-07-24 07:29:02 來源:未知
1.  引言 

    計算機(jī)輔助設(shè)計簡稱CAD,是英文Computer Aided Design的縮寫。它是指工程技術(shù)人員以計算機(jī)為工具進(jìn)行設(shè)計的全過程:包括資料檢索、方案構(gòu)思、計算分析、工程繪圖和編制技術(shù)文件等,是隨著計算機(jī)、外圍設(shè)備及其軟件的發(fā)展而形成的一種綜合性高新技術(shù)。現(xiàn)代切削加工正朝向高速、高效和高精度方向發(fā)展,這對機(jī)床結(jié)構(gòu)和性能提出了越來越高的要求,如高轉(zhuǎn)速、大功率、寬調(diào)速范圍、低噪音、動態(tài)性能好、可靠性高等。而機(jī)床主傳動系統(tǒng)是機(jī)床設(shè)計中的關(guān)鍵,因此,如何適應(yīng)市場需求,在復(fù)雜多變市場經(jīng)濟(jì)中,快速高質(zhì)地設(shè)計制造出市場所需的切削加工設(shè)備是制造行業(yè)實(shí)力、科技水平的體現(xiàn)。所以將計算機(jī)輔助設(shè)計(CAD)技術(shù)應(yīng)用到機(jī)床設(shè)計當(dāng)中一直是眾多廠家追求的目標(biāo)。我國以前的機(jī)床設(shè)計多用繪圖板,進(jìn)行手工繪制,這樣工作量往往會很大,造成開發(fā)的周期過長,而且設(shè)計過程中容易出錯。因此,如何把計算機(jī)應(yīng)用到機(jī)床設(shè)計中去,如何開發(fā)出一套通用的、行之有效的機(jī)床主傳動系統(tǒng)設(shè)計軟件,是我們寫本文的動機(jī)所在。

    2.面向?qū)ο蟮某绦蛟O(shè)計方法

    面向?qū)ο螅∣bject-oriented)作為一個概念起先是軟件系統(tǒng)設(shè)計與實(shí)現(xiàn)的一種新方法,由于這種思維方法的巨大優(yōu)勢已使得它在其它的各個領(lǐng)域也產(chǎn)生了越來越廣泛的影響。 
    面向?qū)ο蠓椒ㄊ且环N圍繞現(xiàn)實(shí)世界概念來建造對象模型的全新的表示現(xiàn)實(shí)物體,解決問題的方法。它的可擴(kuò)充性和可重用性極大的提高了系統(tǒng)的開發(fā)速度,它通過對設(shè)計參數(shù)的封裝與隱藏,設(shè)計與實(shí)現(xiàn)分離來控制軟件的復(fù)雜性和可維護(hù)性。
    面向?qū)ο蠓椒▽W(xué)的中心是圍繞著對象、類、消息、繼承性、多態(tài)性和動態(tài)聯(lián)編等概念、機(jī)制和原理展開的。其中,對象、類是這一方法的核心,消息是連接它們的紐帶,繼承性是這一方法的獨(dú)特貢獻(xiàn),而多態(tài)性和動態(tài)編聯(lián)使這一方法更加完美。
    面向?qū)ο蟮姆椒▽W(xué)認(rèn)為:客觀世界是由各種“對象”所組成,任何事物都是對象,每個對象都有自己的運(yùn)行規(guī)律和內(nèi)部狀態(tài)。通過類比,具有相同特征和功能的對象形成類(歸納),每個對象都屬于某個“對象類”,都是該對象類的一個實(shí)例。不同對象的組合及相互作用就構(gòu)成了我們要研究、分析和構(gòu)造的客觀系統(tǒng)。對象類之間可以通過繼承關(guān)系構(gòu)成類的層次結(jié)構(gòu),“子類”可以直接繼承“父類”的性質(zhì)和功能(演繹)。而對象之間通過消息相互作用,消息就是通知對象去完成一個允許作用于該對象的操作,該對象將如何完成這個操作的細(xì)節(jié)被封裝在類的定義中,對外界是隱蔽的。
    面向?qū)ο蟮姆治鼍褪怯妹嫦驅(qū)ο蟮乃枷雭硌芯繂栴},并按現(xiàn)實(shí)世界的本來面目構(gòu)造出一個反映問題本質(zhì)的模型,該模型說明了系統(tǒng)必須做什么,而不是如何做,即做的細(xì)節(jié)。面向?qū)ο蟮脑O(shè)計就是構(gòu)造一個問題求解的模型。由于分析模型是用面向?qū)ο蟮姆椒ń⒌模c軟件解的結(jié)構(gòu)相似,因此,面向?qū)ο蟮脑O(shè)計是對分析模型的加細(xì)(描述對象及其關(guān)系是怎樣的),以及構(gòu)造實(shí)現(xiàn)中所涉及對象的過程。 
    面向?qū)ο蟮姆椒ㄌ峁┝吮冉Y(jié)構(gòu)化方法更自然、更合理的概念及技術(shù),而且,它的抽象性、封裝性、繼承性、多態(tài)性等都比結(jié)構(gòu)化方法更為優(yōu)越,從而使其成為一種更有力的工具和方法。

    3.面向數(shù)控機(jī)床主傳動系統(tǒng)的程序設(shè)計

    根據(jù)面向?qū)ο蠓椒ǖ幕驹恚?shù)控車床主傳動系統(tǒng)的概念模型,使用VC作為程序設(shè)計的開發(fā)工具。由于數(shù)控車床主傳動系統(tǒng)的設(shè)計部分主要是一種參數(shù)化設(shè)計的過程,因此程序主要以人機(jī)交互的方式來完成這項(xiàng)工作。針對這一特點(diǎn),我把整個系統(tǒng)劃分為許多界面,并把這些界面作為實(shí)體抽象為一定的對象類。 
    整個系統(tǒng)的對象類大致如下: #p#分頁標(biāo)題#e#
           對象類1: 電機(jī)型號對話框 
           對象類2: 變速箱變速級數(shù)對話框 
           對象類3: 傳動比對話框 
           對象類4: 傳動副齒數(shù)對話框 
           對象類5: 齒輪材料對話框 
           對象類6: 齒輪模數(shù)(按接觸)對話框 
           對象類7: 齒輪模數(shù)(按彎曲)對話框 
           對象類8: 齒輪模數(shù)(標(biāo)準(zhǔn))對話框 
           對象類9: 同步齒形帶計算功率屬性頁 
           對象類10:同步齒形帶模數(shù)屬性頁 
           對象類11:大小帶輪直徑屬性頁 
           對象類12:同步齒形帶齒數(shù)屬性頁 
 

對象類13:軸徑估算對話框 
    根據(jù)上述基本對象類,進(jìn)一步將數(shù)控機(jī)床主傳動系統(tǒng)的設(shè)計部分劃分為四個子系統(tǒng):


    根據(jù)以上所得基于面向?qū)ο蠓治龅南到y(tǒng)模型、結(jié)構(gòu),可直接得到程序的模塊分解。有上述的4個子系統(tǒng),很容易設(shè)計出該系統(tǒng)的程序設(shè)計部分的總體模塊結(jié)構(gòu)。 
    (1)   運(yùn)動設(shè)計模塊 
    在這一模塊中,主要完成確定機(jī)床電機(jī)型號、機(jī)床極限轉(zhuǎn)速、變速級數(shù)、傳動副傳動比及齒輪齒數(shù)的工作。 
    (2)   齒輪設(shè)計模塊 
    在這一模塊中,主要完成傳動齒輪材料和熱處理方式的選擇、按接觸疲勞強(qiáng)度計算傳動齒輪模數(shù)、按彎曲疲勞強(qiáng)度計算傳動齒輪模數(shù)及模數(shù)圓整的工作。 
    (3) 同步齒形帶模塊 
    在這一模塊中,主要完成確定計算功率、齒形帶模數(shù)、齒形帶速比、大小帶輪齒數(shù)和直徑、齒形帶寬度及帶輪中心距和齒形帶齒數(shù)的工作。 
    (4) 軸徑估算模塊 
    在這一模塊中,主要完成確定車床最大加工直徑、一般傳動軸直徑估算、主軸前軸頸直徑估算、主軸后軸頸直徑估算及主軸平均內(nèi)徑估算的工作。 
    根據(jù)上述各對象類之間的關(guān)系及對系統(tǒng)的模塊化劃分,同時為了保證設(shè)計過程中各對象類的數(shù)據(jù)傳遞的有效性。在對象類設(shè)計時,首先給每一個對象類封裝一部分與該對象類相關(guān)的數(shù)據(jù)成員(屬性)。然后在程序中聲明與每個對象類相對應(yīng)的結(jié)構(gòu)體(Struct),結(jié)構(gòu)體包含了與對象類中封裝的數(shù)據(jù)成員一一對應(yīng)的變量。這些結(jié)構(gòu)體中的變量,在初始化對象類,對象類之間進(jìn)行數(shù)據(jù)傳遞以及保存重要的設(shè)計參數(shù)的方面都起著非常重要的作用。最后只要在“文檔”類中為每個結(jié)構(gòu)體定義一個對象,利用Visual C++中“文檔”類和“視”類的一些重要方法來完成這些工作。下圖表示了數(shù)據(jù)之間的組織關(guān)系。這些工作也可以直接通過類的對象而不是利用結(jié)構(gòu)體的對象來完成,但出于組織上的協(xié)調(diào)和管理上的方便,依靠中間橋梁的思想來組織數(shù)據(jù)和傳遞數(shù)據(jù)。  #p#分頁標(biāo)題#e#

   下面以一個具體例子來說明這工作原理: 
    1.?dāng)?shù)據(jù)封裝
l         對象類1:電機(jī)型號對話框        類名:ACMotorSelectDlg
class ACMotorSelectDlg : public CDialog
{
// Construction
public: 
    CNCLatheDesignView* pView; // 視類對象(指針型) 
    CNCLatheDesignDoc* pDoc;   // 文檔類對象(指針型) 
    int   index;           // 交流電機(jī)功率列表框選擇索引 
     float power[7];        // 交流電機(jī)額定功率數(shù)組 
    long  basespeed[7];    // 交流電機(jī)額定轉(zhuǎn)速數(shù)組 
    long  maxspeed[7];     // 交流電機(jī)最高轉(zhuǎn)速數(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;   //主軸計算轉(zhuǎn)速 
    double Rn;   // 主軸調(diào)速范圍 
    double Rnp; // 主軸恒功率調(diào)速范圍 
    double Rp;  // 電機(jī)恒功率調(diào)速范圍 
    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,它們是一種介質(zhì)。通過這種介質(zhì)與“文檔”類CNCLatheDesignDoc(從CDocument類派生而類)中定義的結(jié)構(gòu)體對象進(jìn)行聯(lián)系,從而可以使對象類引用屬于自己的結(jié)構(gòu)體或是與其它對象類相關(guān)聯(lián)的結(jié)構(gòu)體中變量。在這兩段程序代碼中,定義在 // Dialog Data和//}}AFX_DATA之間的成員變量是與對話框中的控件相聯(lián)系的,用來描述各個控件的狀態(tài)和數(shù)值,同時也依靠這些成員變量通過介質(zhì)與結(jié)構(gòu)體中的變量進(jìn)行數(shù)據(jù)通訊。#p#分頁標(biāo)題#e#

    4.數(shù)據(jù)庫技術(shù)在機(jī)床主傳動系統(tǒng)設(shè)計中的應(yīng)用

    傳統(tǒng)的機(jī)床主傳動系統(tǒng)設(shè)計需要查找大量的數(shù)據(jù),這樣會使設(shè)計的工作量很大,如何把設(shè)計中所需的基礎(chǔ)數(shù)據(jù)組織到一起,構(gòu)建一個緊湊、高效的數(shù)據(jù)庫,來縮短查找時間,提高效率,是我們在軟件設(shè)計開發(fā)過程中要解決的一個重要環(huán)節(jié)。 
    VC包含了兩個相互獨(dú)立的數(shù)據(jù)庫訪問系統(tǒng):ODBC(開放數(shù)據(jù)庫互聯(lián))和DAO(數(shù)據(jù)訪問對象)。在本程序中利用的是ODBC標(biāo)準(zhǔn)。ODBC是基于SQL(結(jié)構(gòu)化查詢語言)的標(biāo)準(zhǔn)。利用這種語言,可以實(shí)現(xiàn)數(shù)據(jù)庫的操作。 
    在本程序中利用了VC中的CDatabase類和CRecordset類來實(shí)現(xiàn)具體的操作。在實(shí)際訪問數(shù)據(jù)庫之前,首先要建立一個可以使用的數(shù)據(jù)庫。結(jié)合本設(shè)計的要求,利用SQL(Structured Query Language)軟件建立了一個具體的數(shù)據(jù)庫,在這一數(shù)據(jù)庫中包含了兩張數(shù)據(jù)表:一張是存放各種常用傳動比適用齒數(shù)的數(shù)據(jù)表,另一張是存放齒輪材料和熱處理發(fā)式的數(shù)據(jù)表。 
    數(shù)據(jù)庫建立完畢后,用數(shù)據(jù)源管理器(在Windows控制面板中)使應(yīng)用程序與數(shù)據(jù)源建立連接,指定為ODBC方式訪問數(shù)據(jù)庫,并選擇將要訪問的數(shù)據(jù)表,這樣應(yīng)用程序就可以訪問數(shù)據(jù)庫中的數(shù)據(jù)資源。 
    這些工作完成之后,就可以在應(yīng)用程序中加入相應(yīng)的代碼來執(zhí)行數(shù)據(jù)庫操作。在程序中首先從CRecordset類中派生出它的子類,一個是 Summation類,一個是Material類,通過這兩個子類分別來訪問數(shù)據(jù)庫中的兩張數(shù)據(jù)表。然后適用子類的Open()函數(shù)、MoveFirst ()函數(shù)、MoveNext()函數(shù)等方法以及利用SQL中的SELECT語句來來實(shí)現(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è)置條件相關(guān)數(shù)據(jù)和關(guān)閉數(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#分頁標(biāo)題#e#
      } 
     summation.MoveNext(); 
   } 
  summation.Close(); 

    5.結(jié)束語

    本文通過面向?qū)ο笏枷朐跀?shù)控機(jī)床主傳動系統(tǒng)中應(yīng)用,對CAD技術(shù)在機(jī)床設(shè)計中進(jìn)行了探討,并將數(shù)據(jù)庫技術(shù)引入機(jī)床設(shè)計中去,大大簡化了設(shè)計人員的工作量,實(shí)踐證明該CAD軟件具有一定的可行性和通用性。