• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    二次開發(fā)技術(shù)在飛機(jī)機(jī)身結(jié)構(gòu)零部件庫中的應(yīng)用

    2019-11-05 01:56:32林國斌劉向堯
    貴州農(nóng)機(jī)化 2019年3期
    關(guān)鍵詞:零件圖宏程序二次開發(fā)

    林國斌,劉向堯

    (貴州理工學(xué)院航空航天工程學(xué)院,貴州 貴陽 550003)

    0 引言

    飛機(jī)三維外形是飛機(jī)CAD中的一個(gè)重要組成部分。由于在概念設(shè)計(jì)階段飛機(jī)外形經(jīng)常需要修改,因此如何快速地生成飛機(jī)三維外形模型是一個(gè)需要解決的問題。參數(shù)化設(shè)計(jì)工作為快速地生成飛機(jī)三維外形模型提供了一種有效的途徑[1]。參數(shù)化設(shè)計(jì)是指CAD通過尺寸驅(qū)動的方式,以獨(dú)立的幾何約束條件按既定的幾何參數(shù)生成一系列具有相同或相似幾何特征的二維或三維圖形的一種設(shè)計(jì)方法。從編程角度來看,實(shí)現(xiàn)參數(shù)化設(shè)計(jì)的途徑主要有三種:(1)基于圖形庫,如Open GL[2-3];(2)基于已有的CAD軟件進(jìn)行二次開發(fā)?;趫D形庫的方法實(shí)現(xiàn)飛機(jī)三維外形建模相對復(fù)雜些;而基于CAD軟件的方法則可以省略圖形軟件的開發(fā),同時(shí)可以利用已有CAD系統(tǒng)的強(qiáng)大功能和通用性[4-5]。(3)直接利用CAD的基礎(chǔ)理論進(jìn)行建模編程。

    本文應(yīng)用Visual Basic 6.0(以下簡稱VB6.0)編程語言和CATIA二次開發(fā)技術(shù)進(jìn)行實(shí)現(xiàn)飛機(jī)機(jī)身外形的參數(shù)化設(shè)計(jì)。首先分析不同類型的零部件設(shè)計(jì)方法,梳理在CATIA中的建模流程,再介紹VB6.0環(huán)境下CATIA二次開發(fā)的步驟,然后討論飛機(jī)參數(shù)化描述,最后以一個(gè)簡單的飛機(jī)機(jī)頭外形為例,說明基于CATIA二次開發(fā)實(shí)現(xiàn)飛機(jī)外形參數(shù)化設(shè)計(jì)的實(shí)現(xiàn)方法及可行性。

    1 在VB6.0環(huán)境下的CATIA二次開發(fā)

    1.1 CATIA 二次開發(fā)技術(shù)簡介

    CATIA作為CAD/CAM/CAM/CAPP一體化的軟件,廣泛地應(yīng)用于航空航天、汽車、船舶等行業(yè)。尤其在航空領(lǐng)域,航空企業(yè)普遍使用CATIA進(jìn)行零部件的建模工作。然而由于用戶使用的側(cè)重點(diǎn)不同,功能再強(qiáng)大的軟件也不可能同時(shí)滿足各類用戶的需求。因此,對CATIA進(jìn)行二次開發(fā)已經(jīng)受到國內(nèi)外許多企業(yè)及高校的重視。通過開發(fā)工具對CATIA的功能進(jìn)行二次開發(fā),可以開發(fā)出針對某一功能需求,甚至針對某一用戶的特定模塊,以方便用戶使用,其是對CATIA功能的深入挖掘和拓展[4]。CATIA二次開發(fā)的過程和意義如圖1所示。

    圖1 CATIA二次開發(fā)的過程和意義

    CATIA二次開發(fā)主要分為以下兩種方法:一種是采用C++作為開發(fā)工具、CAA二次開發(fā)技術(shù),另一種是采用VB作為開發(fā)工具、Automation二次開發(fā)技術(shù)。

    CAA是CATIA的一套C++函數(shù)庫,該函數(shù)庫在CATIA運(yùn)行時(shí)加載,用戶可通過RADE模塊在VC++編程環(huán)境下編寫程序,與CATIA進(jìn)行通信[5],一般在CATIA的低版本運(yùn)行。

    Automation其核心技術(shù)是允許外部程序操作CATIA。此技術(shù)并不是直接進(jìn)行獲取處理CATIA數(shù)據(jù),而是間接的通過調(diào)用CATIA類的對象和屬性,利用對象的方法和屬性來獲取、設(shè)置及處理數(shù)據(jù)。不足之處在于這種方法功能有限制,但入門輕松[6],比如可以采用API函數(shù)進(jìn)行調(diào)用。Application對象結(jié)構(gòu)圖如圖2所示。

    1.2 CATIA二次開發(fā)的步驟

    本文在此僅以VB6.0二次開發(fā)CATIA為例,敘述CATIA二次開發(fā)的一般步驟。通常情況下有以下幾個(gè)步驟:

    (1)在CATIA中進(jìn)行CAD建模,初始化COM庫,獲得模板文件。

    (2)打開或新建一個(gè)全局對象Application。

    (3)向Application中加入Document對象,注意類和對象的區(qū)別。以實(shí)現(xiàn)數(shù)據(jù)管理,如零件圖設(shè)計(jì)使用PartDocument,工程圖設(shè)計(jì)使用DrawingDocument。

    圖2 Application對象結(jié)構(gòu)圖

    (4)聲明使用的對象,在模板上改寫對應(yīng)參數(shù),繪制二次開發(fā)后的幾何形體。

    (5)保存CAD文件,關(guān)閉Application,釋放COM庫,關(guān)閉VB程序。

    2 機(jī)身零部件庫系統(tǒng)的實(shí)現(xiàn)

    2.1 程序界面

    根據(jù)該程序要實(shí)現(xiàn)的功能及所需的輸入?yún)?shù),可編制程序的運(yùn)行界面如圖3所示。在這里坐標(biāo)系采用y軸坐標(biāo)為巡航方向,從機(jī)頭指向機(jī)尾的方向?yàn)檎较?;x軸沿展向,指向艙門左側(cè)為正方向;z軸由x軸和y軸按右手法則確定。

    2.2 程序結(jié)構(gòu)

    為了實(shí)現(xiàn)飛機(jī)機(jī)身零部件的參數(shù)化設(shè)計(jì)系統(tǒng),將該系統(tǒng)劃分為一個(gè)主模塊和若干個(gè)子模塊:

    1)長桁類零件的設(shè)計(jì)

    2)隔板類零件的設(shè)計(jì)

    3)蒙皮類零件的設(shè)計(jì)

    4)艙門類零件的設(shè)計(jì)

    5)其他機(jī)身零件的設(shè)計(jì)

    程序總體結(jié)構(gòu)如圖4所示。

    圖3 程序的運(yùn)行界面

    圖4 程序的總體結(jié)構(gòu)

    2.3 程序功用

    程序主界面程序是按照應(yīng)用人員要求輸入符合國家、企業(yè)標(biāo)準(zhǔn)的3D零件圖的參數(shù),經(jīng)過程序內(nèi)運(yùn)算得到宏程序參數(shù)。

    獲取保存路徑界面程序是為了方便應(yīng)用人員,將生成的宏程序和零件圖按照自定義的宏程序文件名稱、宏程序文件格式、零件名稱、零件格式到應(yīng)用人員指定的路徑進(jìn)行保存,并按照經(jīng)過程序主界面運(yùn)算得到的宏程序參數(shù),傳入至宏文件中,生成符合應(yīng)用人員的宏程序文件和零件圖。

    2.4 實(shí)現(xiàn)生成零部件圖的一般步驟

    從任務(wù)的角度來解釋,不同的零部件有不同的模板,比如長桁零件中的截面長度、高度、厚度、倒圓和整個(gè)零件的長度等工作就對應(yīng)著不同的零件模板。為了切合使用者的使用情況,為使用者提供準(zhǔn)確的數(shù)值,令使用者達(dá)到滿意,在簡單的操作下將零件圖繪制到符合要求。以長桁為例生成零件圖的步驟如下圖5所示。

    圖5 生成零件圖的步驟

    2.5 流程分析

    CATIA提供了完整的參數(shù)化建模及數(shù)據(jù)管理手段,其參數(shù)化設(shè)計(jì)過程可為產(chǎn)品結(jié)構(gòu)的全部數(shù)據(jù)提供參數(shù)輸入和函數(shù)關(guān)系式,所有飛機(jī)結(jié)構(gòu)理論站位可依靠總體坐標(biāo)系、飛機(jī)總體設(shè)計(jì)人員發(fā)布理論外形面并通過參數(shù)轉(zhuǎn)換生成,直接提供窗框、地板、門框、前起后端框、前起艙側(cè)壁的骨架模型元素,并提取與理論外形相關(guān)的站位布局。機(jī)頭結(jié)構(gòu)布置設(shè)計(jì)首先要解決全局理論數(shù)據(jù)和結(jié)構(gòu)站位的協(xié)調(diào)關(guān)系,確定全過程設(shè)計(jì)需求的特征面, 特征線、特征點(diǎn)。然后為模型建立一個(gè)總的布局樹,結(jié)構(gòu)站位遞歸關(guān)系一目了然。這樣既為后續(xù)關(guān)聯(lián)設(shè)計(jì)骨架模型定義打下基礎(chǔ),也可以有效防止數(shù)據(jù)的循環(huán)引用,使錯誤數(shù)據(jù)鏈的發(fā)生概率降到最低,同時(shí)也能快速響應(yīng)上游總體專業(yè)參數(shù)化理論外形的設(shè)計(jì)變化,實(shí)現(xiàn)飛機(jī)結(jié)構(gòu)方案設(shè)計(jì)階段上下游專業(yè)設(shè)計(jì)輸入與輸出之間更改影響的自動傳遞、自動更新,保證設(shè)計(jì)數(shù)據(jù)的有效性、唯一性和一致性。

    2.6 前置處理的實(shí)現(xiàn)

    (1)讀取分析宏程序內(nèi)的參數(shù)

    打開錄制的宏程序文件,查找文件內(nèi)有利用價(jià)值的參數(shù)值。機(jī)身信息如表1所示。

    表1 機(jī)身信息

    (2)讀取分析宏程序編譯規(guī)則

    根據(jù)V5Automation.chm分析宏程序編譯規(guī)則;

    例如:圓弧的定義

    Func CreateCircle( double iCenterX,

    double iCenterY,

    double iRadius,

    double iStartParam,

    double iEndParam) As Circle2D

    進(jìn)行創(chuàng)建并返回一個(gè)2D圓弧

    (3)讀取分析剩余未確定數(shù)值函數(shù)表達(dá)式

    分析出已有確切數(shù)值后,對未確切數(shù)值進(jìn)行分析,建立對應(yīng)的函數(shù)表達(dá)式。

    (4)將確切數(shù)值及表達(dá)式轉(zhuǎn)換成VB語言

    為使程序能夠正常運(yùn)行,進(jìn)行將所有參數(shù)值利用表達(dá)式轉(zhuǎn)換成VB程序語言,需要進(jìn)行格式的統(tǒng)一,便于CATIA軟件的識別。對于復(fù)雜函數(shù),利用變量進(jìn)行運(yùn)算。在部分處理中,VB中沒有直接的數(shù)學(xué)函數(shù)表達(dá)式,采用自編函數(shù)的方式進(jìn)行解決,比如arcsin函數(shù)。同樣地,創(chuàng)建的平面和拉伸的凸臺與凹槽的距離,是不能確定的值,也不能利用函數(shù)進(jìn)行表達(dá),但可以利用判斷更改其值。所以針對該種參數(shù)值編寫函數(shù)進(jìn)行表達(dá)。

    2.7 腳本運(yùn)行方式

    在使用VB應(yīng)用程序時(shí),可以使用以下語法:

    (1)如果CATIA已經(jīng)在運(yùn)行,那么宏應(yīng)該使用GetObject方法連接到CATIA。

    (2)如果CATIA還沒有運(yùn)行,宏應(yīng)該使用CreateObject方法啟動CATIA。

    一般把兩種方法合在一起,這樣訪問CATIA的時(shí)候就不會出問題。

    2.8 將參數(shù)傳送到宏程序中

    (1)得到一個(gè)未使用的文件號

    Dim FileNumber1, FileNumber2, Stri As String

    FileNumber1 = FreeFile '

    (2)打開要讀取的文件

    Open App.Path & "/macro737-0005-parts1_I.CATScript" For Input As #FileNumber1 ' FileNumber2 = FreeFile

    (3)打開要寫入的文件

    Open Dir1.Path & "/" & Text2.Text & Combo1.Text For Output As #FileNumber2 '

    (4)按行讀取文件,直到最后一行

    Line Input #FileNumber1, Stri '

    While Not EOF(1) '

    (5)'寫入替換后的內(nèi)容

    Print #FileNumber2, Stri

    (6)關(guān)閉文件

    2.9 繪制機(jī)頭零部件

    當(dāng)程序?qū)?shù)的運(yùn)算結(jié)果傳入宏程序文件后,按照模板進(jìn)行更改參數(shù),利用語句進(jìn)行在CATIA環(huán)境中自動打開指定路徑的宏程序文件。繪制的機(jī)頭零部件圖如圖6所示。

    圖6 機(jī)頭零部件圖

    3 結(jié)語

    CATIA的二次開發(fā)在開發(fā)完成后,需要應(yīng)用人員利用圖紙?jiān)诔绦蛑胁檎蚁鄬?yīng)類型的零部件,將零件圖圖紙的參數(shù),輸入至程序中,按照規(guī)定的步驟即可得到符合要求的三維機(jī)身零件圖。同時(shí)完善二次開發(fā)相關(guān)功能使用戶體驗(yàn)佳。

    本文以CATIA二次開發(fā)的問題為導(dǎo)向,提高效率為目標(biāo),設(shè)計(jì)了程序,并采用CATIA和VB進(jìn)行實(shí)現(xiàn)。希望本探索能有效地幫助設(shè)計(jì)人員高效率地開展零部件設(shè)計(jì)的工作。

    猜你喜歡
    零件圖宏程序二次開發(fā)
    橢球槽宏程序編制及其Vericut仿真
    智能制造(2021年4期)2021-11-04 08:54:44
    淺談基于Revit平臺的二次開發(fā)
    甘肅科技(2020年20期)2020-04-13 00:30:02
    淺談Mastercam后處理器的二次開發(fā)
    模具制造(2019年3期)2019-06-06 02:11:02
    西門子Easy Screen對倒棱機(jī)床界面二次開發(fā)
    “軸承的配合制選用”的教學(xué)心得
    淺談機(jī)修鉗工實(shí)訓(xùn)中的零件測繪
    《機(jī)械制圖》中裝配圖的識讀
    速讀·中旬(2017年6期)2017-07-29 17:53:13
    繪制工程圖紙時(shí)常見問題分析及研究
    基于Vericut的四軸數(shù)控加工宏程序仿真研究
    G代碼B類宏程序在數(shù)控切割參數(shù)化圖形庫中的應(yīng)用
    焊接(2015年9期)2015-07-18 11:03:53
    泰兴市| 盐边县| 六安市| 乾安县| 新巴尔虎右旗| 苗栗市| 崇州市| 汪清县| 肇东市| 洪泽县| 南宫市| 辽阳市| 芜湖市| 遂平县| 衢州市| 封开县| 定日县| 永康市| 丹棱县| 利辛县| 和田市| 忻州市| 宜黄县| 西平县| 宾川县| 青田县| 广安市| 章丘市| 廊坊市| 桂东县| 若尔盖县| 东乌珠穆沁旗| 武山县| 玛曲县| 铜川市| 博客| 喀喇沁旗| 荔波县| 鹿邑县| 鄯善县| 玉环县|