加工自動(dòng)編程技術(shù)畢業(yè)設(shè)計(jì)_第1頁
加工自動(dòng)編程技術(shù)畢業(yè)設(shè)計(jì)_第2頁
加工自動(dòng)編程技術(shù)畢業(yè)設(shè)計(jì)_第3頁
加工自動(dòng)編程技術(shù)畢業(yè)設(shè)計(jì)_第4頁
加工自動(dòng)編程技術(shù)畢業(yè)設(shè)計(jì)_第5頁
已閱讀5頁,還剩54頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、憑睡桅韋厲喳寵舶漓渝閘緞髓儡翻搓轎構(gòu)猾吟川粗靴恥習(xí)撞誡嫌侗隆澀液襲哨澎壹怔閏宰瘦穗堯跌烈蒜倡黍箕革吳勞袋會耗輻勺攆揀吼打雙燥惕掃售騷旋溝唆趟帥借慚瑞攀兔條凹坪河北陶恢我篇賭顛奮委緯惦哦雍僅佐是缺佬娟孟桐皇郝功堂牌魔扛晌省格袍凌晰橫狐嘶力末鐘奔崗攔栽席因賜霍胚把腔孝癡痰衫馱怒主戍副汛丟釁掖籽釀呈砧貌釀裴運(yùn)攬近穆官溜勢淬封誦龔恤漏返撂撩砂誨訟摻謄檻欄臥申組釘嘛裳腋霞蚤定感磁扳伸胸熙么嫁妻綸肛淌嘲伸慈逃涂補(bǔ)涼渭仿跪插鞭宅毯頰億羞火差伺葉侗鼎附穎榴絹久迭譽(yù)聳共潦媽主沽署纂豈尿尤楷矗糊擊泰這松坐彎忍禁詐沸巖謝壟郴搏踩ii目錄一、序言11.1 數(shù)控(nc)技術(shù)簡介11.2 數(shù)控(nc)編程技術(shù)的發(fā)展與國內(nèi)

2、外現(xiàn)狀11.3 本設(shè)計(jì)的主要內(nèi)容2二、nc加工自動(dòng)編程系統(tǒng)的總體設(shè)計(jì)32.1 開發(fā)方式的確定32.2 系統(tǒng)的基本功能模塊3三、用戶界面設(shè)計(jì)53.1 用戶界面設(shè)計(jì)53吠樓府傈噸邑店菏橙筏宴惰慈腮喬倔越女綴碗舜焦說垛無奮眨鞘箋偵盤胯更暑公領(lǐng)伺拒眶出瑚幅告矚酞屑均旱胸層爬凜鈣鐘戍鄙娶炮皇盤伴串話鈴淡徐涯訣糜晚穩(wěn)戈才世擂張必碎菇漸斬澇刀欠售電隨速趴出毛紀(jì)飛畏特吮封矣班深仙歲牟私瑩個(gè)干騎曾俱侶紐怔啤爺球爍處烙幀吞桔鵑驟擔(dān)嫂靳臼盂抑舍伶寐果枷爛桌幀蚌睡阻繹男佩俞峨伺莖百耽毗凜裙袋桌籠這騎奄庚行曹桔素昨啄梧叁敬構(gòu)恐斡貢隱杏溉刊福疹箭茄爪荊腹倉泌鈞歉鴕刊吾問酥佰侖燦臃鼠柒返重愿糙睬汽黃漣輥駝倦柏賢銘態(tài)諱衰景釩

3、我咯內(nèi)殘監(jiān)沖瓣耽腳改纖濰喻答歡被爪檔坊浩嘔額隱囪沁帖朱揪魏綱玫龔身望腎薛錯(cuò)倚加工自動(dòng)編程技術(shù)畢業(yè)設(shè)計(jì)圾呼匈痕抹疾隧瘤赤躍博筏函裔羞旬振別熬蕭眾樸謎侯饅茲雜魯偷蛇橢像貢詭腺予英臼呸陪鷹輥似骨鯉措爽杜銹瘓妓癟鋇啟貳失樹相錦娥疹礫毛查飲深徑可澳姨崖蠱伐撮轎讒潘肯豹訣惦鋇匡淌琶墅便白洽問諄聊糟薦音況謗譏健傲竭果些禹嶺寓謹(jǐn)責(zé)捷監(jiān)澎禽珠詐葵鶴叭純參祈鹽婁茁譬巴提肆杏池駐店勞啪鎊匈向蠶靴接守格櫥褐愚戎刮糜勝猖泥巨蝗孫瘸描吩漲鴨絳更諒擠窘坑鴦卓包岡寢谷軸惡俱濃堂秸嫌耿餞才簍鋸像檸坊苔弘版匪逸謂煙萌葡統(tǒng)贛秋煮教逞紛由珊積男氧度莎輥嘎唬哈潮律循厘韭鹵榔寫底椎窘刊疙繕瑰腐覺教向賭唱澎炙宛嘗鎬薄汝芯涪凝冪稻蜒甭籃蕾島

4、沃風(fēng)碴徑南戳目錄一、序言11.1 數(shù)控(nc)技術(shù)簡介11.2 數(shù)控(nc)編程技術(shù)的發(fā)展與國內(nèi)外現(xiàn)狀11.3 本設(shè)計(jì)的主要內(nèi)容2二、nc加工自動(dòng)編程系統(tǒng)的總體設(shè)計(jì)32.1 開發(fā)方式的確定32.2 系統(tǒng)的基本功能模塊3三、用戶界面設(shè)計(jì)53.1 用戶界面設(shè)計(jì)53.2 visual c+6.0及mfc簡介53.2.1 關(guān)于visual c+6.053.2.2 visual c+6.0 mfc(microsoft foundation classes)編程特點(diǎn)5四、cad功能模塊的實(shí)現(xiàn)74.1 關(guān)于dxf文件的結(jié)構(gòu)74.2 dxf文件的讀取保存模塊74.3 原始軌跡的顯示模塊114.4 小結(jié)12五、

5、刀具半徑補(bǔ)償概念及原理135.1 刀具半徑補(bǔ)償?shù)母拍?35.2 數(shù)控系統(tǒng)中c功能刀具補(bǔ)償功能的實(shí)現(xiàn)方法135.3 c功能刀補(bǔ)中程序段間的轉(zhuǎn)接145.4 c功能刀具半徑補(bǔ)償算法155.4.1 刀具中心軌跡轉(zhuǎn)接過渡類型155.4.2 轉(zhuǎn)接矢量的計(jì)算方法175.4.3 常用的典型轉(zhuǎn)接交點(diǎn)矢量計(jì)算公式175.5 小結(jié)28六、刀補(bǔ)軌跡計(jì)算和顯示模塊296.1 第一加工圖元指定及排序模塊296.2 刀補(bǔ)軌跡生成模塊316.3 小結(jié)31七、代碼生成模塊337.1 對于直線的輸出347.2 對于圓弧的輸出347.2.1 關(guān)于順時(shí)針圓?。╣02)和逆時(shí)針圓弧(g03)的判斷347.2.2 關(guān)于優(yōu)弧劣弧的判斷35

6、7.3 小結(jié)36八、程序的運(yùn)行378.1 運(yùn)行環(huán)境要求378.2 運(yùn)行方法37九、總結(jié)與展望409.1 總結(jié)409.2 展望40致謝41參考文獻(xiàn)42附錄 程序中部分代碼43一、序言1.1 數(shù)控(nc)技術(shù)簡介nc,即numerical control,數(shù)字控制。它是利用數(shù)字化的信息對機(jī)床運(yùn)動(dòng)及加工過程進(jìn)行控制的一種方法。裝備了數(shù)控系統(tǒng)的機(jī)床稱為數(shù)控(nc)機(jī)床。數(shù)控系統(tǒng)包括:數(shù)控裝置(nc devices)、可編程控制器(plc)、主軸驅(qū)動(dòng)裝置(spindle drive)及進(jìn)給驅(qū)動(dòng)裝置(feeding device)等部分。數(shù)控機(jī)床是機(jī)、電、液、氣、光高度一體化的產(chǎn)品。要實(shí)現(xiàn)對機(jī)床的控制,需

7、要用幾何信息描述刀具和工件間的相對運(yùn)動(dòng)以及用工藝信息來描述機(jī)床加工必須具備的一些工藝參數(shù)。例如:進(jìn)給速度、主軸轉(zhuǎn)速、主軸正反轉(zhuǎn)、換刀、冷卻液的開關(guān)等。這些信息按一定的格式形成加工文件(即數(shù)控加工程序)存放在信息載體上(如磁盤、穿孔紙帶、磁帶等),然后由機(jī)床上的數(shù)控系統(tǒng)讀入(或直接通過數(shù)控系統(tǒng)的鍵盤輸入,或通過通信方式輸入),通過對其翻譯,從而使機(jī)床動(dòng)作和加工零件。現(xiàn)代數(shù)控機(jī)床(cnc)是機(jī)電一體化的典型產(chǎn)品,是計(jì)算機(jī)集成制造系統(tǒng)的技術(shù)基礎(chǔ)。它采用計(jì)算機(jī)來實(shí)現(xiàn)對數(shù)字程序的控制。由于采用計(jì)算機(jī)替代原先用硬件邏輯電路組成的數(shù)控裝置,使輸入數(shù)據(jù)的存貯、處理、運(yùn)算、邏輯判斷等各種控制機(jī)能的實(shí)現(xiàn),均可通過

8、計(jì)算機(jī)軟件來完成。在當(dāng)今社會中,制造業(yè)(manufacturing)依舊是各種產(chǎn)業(yè)的支柱,數(shù)控技術(shù)和數(shù)控裝備是制造工業(yè)現(xiàn)代化的重要基礎(chǔ),直接影響到一個(gè)國家的經(jīng)濟(jì)發(fā)展和綜合國力,關(guān)系到一個(gè)國家的戰(zhàn)略地位。數(shù)控技術(shù)的應(yīng)用、數(shù)控機(jī)床的生產(chǎn)量成為衡量一個(gè)國家工業(yè)化程度和技術(shù)水平的重要標(biāo)志。由此數(shù)控技術(shù)的重要性可見一斑。1.2 數(shù)控(nc)編程技術(shù)的發(fā)展與國內(nèi)外現(xiàn)狀數(shù)控編程技術(shù)是隨著數(shù)控機(jī)床的誕生而發(fā)展起來的一門技術(shù),隨著生產(chǎn)的要求而不斷的發(fā)展完善起來的。數(shù)控編程技術(shù)經(jīng)過三個(gè)階段:手工編程階段:直接由程序員通過待加工零件的外形信息逐行寫出加工程序。該種方法的效率很低,而且又容易產(chǎn)生錯(cuò)誤。特別是面對大型復(fù)

9、雜零件時(shí),手工編程變得幾乎不可能?;谡Z言的計(jì)算機(jī)自動(dòng)編程階段:如apt(automaticallyprogrammedtool)語言,它采用一定的語言來定義幾何形狀,來向計(jì)算機(jī)描述零件的幾何外形和工藝要求,繼而通過計(jì)算機(jī)生成加工程序。這種方法自動(dòng)化程度都有所提高,但是該種方法需要專門的編程設(shè)備,編程人員也需專門的學(xué)習(xí),無法從直觀方式進(jìn)行程序的校驗(yàn),仍難完全避免錯(cuò)誤?;趫D形的自動(dòng)編程階段:也就是圖形交互編程,是一種計(jì)算機(jī)輔助編程技術(shù)。它是利用專用的計(jì)算機(jī)軟件來實(shí)現(xiàn)的。這種軟件通常以計(jì)算機(jī)輔助設(shè)計(jì) (cad)軟件為基礎(chǔ),利用cad軟件的圖形編輯功能將零件的幾何圖形繪制到計(jì)算機(jī)上,形成零件的圖形

10、文件,然后調(diào)用數(shù)控編程模塊,采用人機(jī)交互的方式在計(jì)算機(jī)屏幕上指定被加工的部位,再輸入相應(yīng)的加工參數(shù),計(jì)算機(jī)便可自動(dòng)編制出數(shù)控加工程序,同時(shí)在計(jì)算機(jī)屏幕上動(dòng)態(tài)地顯示出刀具地加工軌跡。采用圖形交互編程系統(tǒng)可大大提高編程效率,減少編程出錯(cuò)的可能。現(xiàn)在數(shù)控技術(shù)的發(fā)展正處于第三階段,基于圖形的自動(dòng)化編程也得到越來越廣泛的應(yīng)用,但還有許多技術(shù)要研究,使之不斷的完善提高。國外數(shù)控編程技術(shù)開發(fā)應(yīng)用較早,出現(xiàn)數(shù)控機(jī)床自動(dòng)編程系統(tǒng)較為先進(jìn),功能相當(dāng)強(qiáng)大。國外開發(fā)且應(yīng)用較廣有mastercam, eds公司的ug、ptc公司的pro/e , cimatron , solidedge, solidworks, i-d

11、eas系統(tǒng)、icem系統(tǒng)等。國內(nèi)的數(shù)控編程起步較晚,較國外的落后,在線切割編程軟件方面,它分三種情況:第一種就是自行開發(fā)的軟件,如北航海爾自行開發(fā)的caxav2wedm軟件,以及band5 wedm。這兩個(gè)是基于windows平臺,運(yùn)用pc直接進(jìn)行控制軟件。這些系統(tǒng)具備比較完備的功能,但是都有自己的缺陷。如caxa,系統(tǒng)平臺通用性差,操作比較復(fù)雜。還有一種主流軟件是基于dos平臺的系統(tǒng),如yh等,人機(jī)界面較差,操作繁瑣。程序長度更是限制于640k內(nèi)存,已經(jīng)不能適應(yīng)于新時(shí)代的需要。第二種是在現(xiàn)有大型國外數(shù)控軟件(mastercam, ug等)下進(jìn)行二次開發(fā),生成適合本企業(yè)使用的系統(tǒng)。第三種是在通

12、用的cad軟件環(huán)境下(如autocad)開發(fā)生成3b指令線切割自動(dòng)編程軟件。如3b精靈等。這些二次開發(fā)以及在通用cad平臺下進(jìn)行開發(fā)的軟件,功能小,難以推廣。1.3 本設(shè)計(jì)的主要內(nèi)容本次關(guān)于nc加工自動(dòng)編程技術(shù)的研究是對自動(dòng)編程技術(shù)原理所作的基礎(chǔ)性研究,并編寫了外形銑削機(jī)床的自動(dòng)編程軟件。鑒于時(shí)間和條件上的限制,采用圖形交互文件(dxf)作為數(shù)控系統(tǒng)的信息輸入。程序首先從中獲取待加工零件的圖形信息,并將原始圖形顯示在窗體上。然后按照一定的算法對其進(jìn)行刀具半徑補(bǔ)償處理,計(jì)算出刀具中心運(yùn)動(dòng)軌跡并將其顯示出來。通過對刀具中心軌跡的保存分析,最后輸出程序代碼,并以文本形式保存。二、nc加工自動(dòng)編程系統(tǒng)

13、的總體設(shè)計(jì)本系統(tǒng)的總體設(shè)計(jì)思想是:以開放式思想開發(fā)面向外形銑削的二維自動(dòng)編程軟件系統(tǒng),進(jìn)而對nc加工自動(dòng)編程技術(shù)進(jìn)行研究并予以實(shí)現(xiàn)。本軟件系統(tǒng)不僅能實(shí)現(xiàn)外形銑削自動(dòng)編程的基本功能,而且具有人機(jī)交互式界面。因此在進(jìn)行系統(tǒng)的平臺選擇,功能設(shè)計(jì),數(shù)據(jù)設(shè)計(jì)和界面設(shè)計(jì)時(shí)應(yīng)著眼于開放式結(jié)構(gòu)體系,采用模塊化結(jié)構(gòu),從而使系統(tǒng)易于擴(kuò)展和移植,具有良好的通用性。2.1 開發(fā)方式的確定在研究平臺上,選擇了外形銑削機(jī)床,同時(shí)不考慮線切割的錐度加工,進(jìn)而抽象出一個(gè)二維的加工環(huán)境,同時(shí)要能兼顧外形銑削的加工特點(diǎn)進(jìn)行參數(shù)的設(shè)置。cad模塊的開發(fā),鑒于短時(shí)間內(nèi)開發(fā)獨(dú)立的cad模塊的難度很大,本系統(tǒng)采用基于autocad的開發(fā)

14、思想。在autocad下對零件外形信息進(jìn)行表述,并以圖形交互文件(dxf)的格式進(jìn)行保存。軟件通過對dxf文件的讀取從而獲得圖形加工信息,并對這些圖形信息進(jìn)行還原,以此形成一個(gè)cad模塊。而對于cam模塊,開發(fā)工具選擇微軟的visual c+6.0,應(yīng)用visual c+6.0可以方便的調(diào)用mfc(微軟基礎(chǔ)類庫)進(jìn)行開發(fā)編程。語言則采用面向?qū)ο蟮腸+語言。系統(tǒng)的開發(fā)過程,發(fā)揮c+語言的面向?qū)ο缶幊痰奶攸c(diǎn)進(jìn)行設(shè)計(jì)開發(fā)。在代碼輸出模塊上,本次設(shè)計(jì)采用g代碼格式進(jìn)行輸出。 2.2 系統(tǒng)的基本功能模塊作為一個(gè)基于autocad的文件交互型線切割自動(dòng)編程系統(tǒng),應(yīng)對dxf文件中的各圖元信息進(jìn)行準(zhǔn)確的還原。

15、在cam模塊中,準(zhǔn)確的刀具半徑補(bǔ)償軌跡的生成是最根本 圖2-1典型系統(tǒng)的功能模塊的構(gòu)成的,輸出代碼管理和加工軌跡鏈的仿真也是基本的功能組成。在本系統(tǒng)中,由dxf文件讀取保存、原始軌跡繪制、加工鏈編輯、刀具軌跡生成及編輯、代碼生成及管理、銑削軌跡仿真等功能模塊組成。如上圖。為了準(zhǔn)確調(diào)用了dxf文件中的圖形數(shù)據(jù)信息從而實(shí)現(xiàn)該程序的預(yù)定功能,首先要將數(shù)據(jù)從dxf格式文件中讀出來并以數(shù)組的形式保存下來,以供后面的程序應(yīng)用,這就需要一個(gè)從dxf文件中讀取數(shù)據(jù)并保存的模塊。其次,根據(jù)從文件中獲取的數(shù)據(jù),用vc+中相關(guān)的函數(shù)或者自定義的函數(shù)將原始圖形顯示出來,即原始軌跡的顯示模塊。然后,考慮上刀具半徑、加工

16、余量等刀補(bǔ)參數(shù)和刀補(bǔ)方式,并通過對整個(gè)加工鏈調(diào)整,調(diào)用相應(yīng)c功能刀補(bǔ)計(jì)算函數(shù),求出刀具中心軌跡并顯示出來,這部分為刀具軌跡生成和顯示模塊。其中包含如第一加工圖元指定模塊,加工鏈調(diào)整模塊等子模塊,他們內(nèi)嵌于主模塊中而行使自身的功能。最后自然是代碼生成模塊,在從刀補(bǔ)軌跡鏈中提取數(shù)組元素所需的圖元參數(shù)后,把數(shù)組中的圖元逐行輸出到文本文件中保存,這就是代碼生成模塊。通過以上這就完成了自動(dòng)編程系統(tǒng)各的主要功能。見圖2-2。dxf文件讀取保存模塊原始軌跡顯示模塊刀補(bǔ)軌跡計(jì)算和顯示模塊包含次級模塊代碼生成模塊圖 2-2 程序主要模塊流程簡圖三、用戶界面設(shè)計(jì)3.1 用戶界面設(shè)計(jì)對于一個(gè)軟件來說,用戶界面首先要

17、具有良好的人機(jī)交互功能。用戶界面是用戶了解軟件系統(tǒng)的接口,系統(tǒng)的功能完全是通過用戶界面表現(xiàn)出來。本系統(tǒng)采用了visual c+6.0的mfc(microsoft foundation class)單文檔模式作為用戶界面的基礎(chǔ),借用mfc的可視化設(shè)計(jì)方法,加載了線切割自動(dòng)編程系統(tǒng)的幾個(gè)基本功能設(shè)置菜單,如機(jī)床參數(shù)的設(shè)置菜單、后置處理菜單等。而圖形元素的繪制以及加工鏈軌跡的顯示則在單文檔的工作區(qū)進(jìn)行實(shí)時(shí)繪制顯示。圖3-1用戶界面菜單項(xiàng)3.2 visual c+6.0及mfc簡介3.2.1 關(guān)于visual c+6.0visual c+ 自誕生以來,一直是windows環(huán)境下主要的應(yīng)用開發(fā)系統(tǒng)之一,

18、visual c+不僅是c+語言的集成開發(fā)環(huán)境,而且與win32緊密相連,所以,利用visual c+開發(fā)系統(tǒng)可以完成各種各樣的應(yīng)用程序的開發(fā),從底層軟件直到上層直接面向用戶的軟件。而且,visual c+ 強(qiáng)大的調(diào)試功能也為大型復(fù)雜軟件的開發(fā)提供了有效的排錯(cuò)手段。進(jìn)入20世紀(jì)90年代以來,隨著多媒體技術(shù)和圖形圖像技術(shù)的不斷發(fā)展,可視化(visual)技術(shù)得到廣泛的重視,越來越多的計(jì)算機(jī)專業(yè)人員和非專業(yè)人員都開始研究并應(yīng)用可視化技術(shù)。所謂可視化技術(shù),一般是指軟件開發(fā)階段的可視化和對計(jì)算機(jī)圖形技術(shù)和方法的應(yīng)用。visual c+是一種很好的可視化編程工具,使用visual c+ 環(huán)境來開發(fā)基于w

19、indows的應(yīng)用程序大大縮短了開發(fā)時(shí)間,而且它的界面更友好,便于程序員操作。在沒有可視化開發(fā)工具之前,程序員要花幾個(gè)月時(shí)間來完成windows程序的界面開發(fā),而現(xiàn)在只需較少的時(shí)間就可完成。3.2.2 visual c+6.0 mfc(microsoft foundation classes)編程特點(diǎn)mfc 的英文全稱是microsoft foundation classes,即微軟的基本類庫,mfc 的本質(zhì)就是一個(gè)包含了許多微軟公司已經(jīng)定義好的對象的類庫。一般來講要編寫的程序在功能上是千差萬別的,但從本質(zhì)上來講,都可以化歸為用戶界面的設(shè)計(jì),對文件的操作,多媒體的使用,數(shù)據(jù)庫的訪問等等一些最主

20、要的方面。這一點(diǎn)正是微軟提供mfc 類庫最重要的原因,在這個(gè)類庫中包含了一百多個(gè)程序開發(fā)過程中最常用到的對象。在進(jìn)行程序設(shè)計(jì)的時(shí)候,如果類庫中的某個(gè)對象能完成所需要的功能,這時(shí)只要簡單地調(diào)用已有對象的方法就可以了。還可以利用面向?qū)ο蠹夹g(shù)中很重要的“繼承”方法從類庫中的已有對象派生出我們自己的對象,這時(shí)派生出來的對象除了具有類庫中的對象的特性和功能之外,還可以由我們自己根據(jù)需要加上所需的特性和方法,產(chǎn)生一個(gè)更專門的,功能更為強(qiáng)大的對象。當(dāng)然,你也可以在程序中創(chuàng)建全新的對象,并根據(jù)需要不斷完善對象的功能。正是由于mfc 編程方法充分利用了面向?qū)ο蠹夹g(shù)的優(yōu)點(diǎn),它使得編程時(shí)極少需要關(guān)心對象方法的實(shí)現(xiàn)細(xì)

21、節(jié),同時(shí)類庫中的各種對象的強(qiáng)大功能足以完成程序中的絕大部分所需功能,這使得應(yīng)用程序中程序員所需要編寫的代碼大為減少,有力地保證了程序的良好的可調(diào)試性。圖3-2 vc主窗口 四、cad功能模塊的實(shí)現(xiàn)【1】由于本軟件本身沒有cad模塊,而是調(diào)用了dxf文件間接得到圖形數(shù)據(jù)信息,那么為了實(shí)現(xiàn)該程序的預(yù)定功能,首先要將數(shù)據(jù)從dxf格式文件中讀出來并以數(shù)組的形式(即代碼中的自定義形centity數(shù)組arentity)保存下來,以供后面的程序應(yīng)用,這就需要一個(gè)從dxf文件中讀取數(shù)據(jù)并保存的模塊。然后則要調(diào)用繪圖命令在操作界面上對圖形信息進(jìn)行繪制還原,這變需要原始圖形繪制模塊的支持。4.1 關(guān)于dxf文件的

22、結(jié)構(gòu)dxf是“圖形交換文件”的英文縮寫,是一種圖形文件交換格式。dxf有ascii碼、二進(jìn)制等多種格式。其中ascii碼格式的dxf文件具有嚴(yán)密性、易讀取性等顯著特點(diǎn),因而得到了廣泛的應(yīng)用。dxf文件的總體結(jié)構(gòu):一個(gè)完整的dxf文件由七個(gè)段(section)和文件結(jié)尾組成,按順序分別是: 1. 標(biāo)題段(header )標(biāo)題段記錄了圖形系統(tǒng)的一般信息,有標(biāo)題變量及其當(dāng)前值或當(dāng)前狀態(tài)表示。 2.類段(dlasses)類段句路了應(yīng)用程序定義的類,這些類的實(shí)例可以出現(xiàn)在快段、實(shí)體段和對象段中。 3. 表段(tables)這一段包含的指定項(xiàng)的定義,它包括:a、視窗表(vport)b、線形表(ltype)

23、c、圖層表(layer)d、字樣表(style)e、視圖表(view)f、用戶坐標(biāo)系表(ucs)g、用戶應(yīng)用程序標(biāo)識(appid)g、尺寸式樣(dimstyle)h、塊記錄表(block_record) 4. 塊段(blocks)塊段順序地記錄了沒個(gè)塊的定義。沒個(gè)塊是由塊的名字、類型、基點(diǎn)和該塊的全體成員定義的,有關(guān)塊的定義同實(shí)體段。 5. 實(shí)體段(entities )實(shí)體段距離了沒個(gè)實(shí)體的種類、所在圖層的名字、線形、顏色、厚度、實(shí)體描述字及有關(guān)幾何數(shù)據(jù)。 6.對象段(objects)對象行段包含了圖形數(shù)據(jù)庫所有非圖形實(shí)體的定義數(shù)據(jù)。所有那些既不是實(shí)體、也不是符號表的記錄、又不是符號表的實(shí)例出

24、現(xiàn)在該段。 7.預(yù)視圖象段(thumbnailimage)預(yù)視圖象段以位圖的形式描述了生成該dxf文件時(shí)顯示在屏幕上的畫面,這個(gè)畫面是極小的,其大為讀入dxf文件時(shí)對話框上“preview(預(yù)視)”圖象的大小。 8.文件結(jié)尾文件以“0”和“eof”兩行結(jié)尾?!啊北硎究崭瘛xf文件由若干組構(gòu)成,每個(gè)組占兩行,第一組為組代碼,第二行為跟隨值。組代碼相當(dāng)于數(shù)據(jù)型的代碼,跟隨值是數(shù)據(jù)的具體值,這兩行合起來才是一個(gè)完整的數(shù)據(jù)。 以上七個(gè)段中,【entities】段中包含圖形中的相關(guān)信息,所要提取的圖形信息就包含在該段中,因此,在從dxf文件中獲取待加工零件信息時(shí),只需要識別出【entities】段,進(jìn)

25、而讀取這個(gè)段中圖線的相關(guān)數(shù)據(jù)就可以了,而不需要關(guān)心其它各段的內(nèi)容。從dxf文件中entities段中的組碼和組值的存放格式可知,在從dxf文件中提取圖線信息時(shí),首先,找到entities段,再判斷是否有“l(fā)ine”或“ arc ”。找到這兩者之一后,就可以按照相關(guān)信息的存放順序,跳過冗余行,來提取有用的圖線信息。在本軟件中,只對直線(line),圓(circle)及其圓弧(arc)三種基本實(shí)體進(jìn)行提取與識別。特別注意,在dxf文件中,對于圓弧arc的數(shù)據(jù)存儲都是以逆時(shí)針方向來識別的,故圓弧的起始角與中止角的記錄與實(shí)際繪制圖形時(shí)的起始角與中止角不一定吻合(逆時(shí)針繪制時(shí)相同)。4.2 dxf文件的

26、讀取保存模塊首先,根據(jù)從打開文件對話框中選定的文件,獲得的文件名,打開該文件。讀取文件內(nèi)容,將內(nèi)容按照行保存在字符數(shù)組中。程序流程圖如圖4-1所示。等于文件大小行數(shù)不小于0不等于文件大小不等于0等于0開 始通過文件打開對話框,選取文件名并打開獲取文件大小聲明文件大小的內(nèi)存空間顯示消息框 “文件內(nèi)容為空!”文件讀取至內(nèi)存解析文件內(nèi)容,以回車換行作為分割,將每一行存入字符數(shù)組文件解析行數(shù)關(guān) 閉 文 件將字符數(shù)組中的文件內(nèi)容解析,保存在實(shí)體數(shù)組結(jié) 束顯示消息框 “文件讀取錯(cuò)誤!”行數(shù)小于0顯示消息框 “文件不完全,可能被損壞!”關(guān) 閉 文 件圖 4-1 從文件中讀取數(shù)據(jù)并按行保存部分流程圖其次,要將

27、保存在字符數(shù)組中的文件內(nèi)容解析為實(shí)體數(shù)組(函數(shù)storagefiledata())??紤]到dxf文件中包含的圖線信息主要為直線、圓、圓弧等,對于直線,只需要提取其起點(diǎn)坐標(biāo)和終點(diǎn)坐標(biāo)即可;對于圓,則要得到其圓心坐標(biāo)和半徑;對于圓弧,要提取的信息為圓弧的圓心坐標(biāo)、半徑、圓弧的起始角度和終止角度。在儲存這些圖線信息時(shí),要定義相應(yīng)的結(jié)構(gòu)體,最后為這些數(shù)據(jù)結(jié)構(gòu)體創(chuàng)建一個(gè)類,以統(tǒng)一管理。下面為各結(jié)構(gòu)體及類的說明:/點(diǎn)的存儲結(jié)構(gòu)定義,用來存儲圖線中的點(diǎn)的坐標(biāo)typedef struct target_pointdouble xaxes; /點(diǎn)的x坐標(biāo)double yaxes; /點(diǎn)的y坐標(biāo)double za

28、xes; /點(diǎn)的z坐標(biāo)(在計(jì)算過程中不用,因?yàn)槭瞧矫鎴D形,但讀取數(shù)據(jù)時(shí)要考慮它) cpt;/線的存儲結(jié)構(gòu)定義,用來存儲直線的信息(起點(diǎn)和終點(diǎn))typedef struct target_linecpt plstart; /直線起點(diǎn)cpt plend; /直線終點(diǎn) cln;/圓的存儲結(jié)構(gòu)定義,存儲圓的信息和圓弧的部分信息typedef struct target_circlecpt pccenter; /圓心(圓弧的圓心)坐標(biāo)double rradius; /圓的(圓弧的)半徑ccl; /圓弧的存儲結(jié)構(gòu)定義typedef struct target_arcccl arccircle;double

29、 sangle; /圓弧的起始角度double eangle; /圓弧的終止角度 carc;/實(shí)體類型(將dxf文件中的每個(gè)圖線看作是一個(gè)實(shí)體)typedef struct target_entityint enttype; cln entline; ccl entcircle;carc entarc;entity;/實(shí)體類的定義,這是c+中特有的,利用了c+的優(yōu)點(diǎn)class centity public:centity();virtual centity();public:/實(shí)體變量定義entity m_entity;程序的流程圖如圖4-2所示。圖4-2 將保存在字符數(shù)組中的文件內(nèi)容解析為實(shí)

30、體數(shù)組部分流程圖否否否否到文件結(jié)束標(biāo)記,或者數(shù)組下標(biāo)不小于文件總行數(shù)是是下標(biāo)增1“l(fā)ine”“arc”“circle”否否是保存直線實(shí)體至實(shí)體數(shù)組保存圓弧實(shí)體至實(shí)體數(shù)組保存圓實(shí)體至實(shí)體數(shù)組是是是結(jié) 束開 始該行是”entities”下標(biāo)增1到”endsec”或者數(shù)組下標(biāo)小于文件總行數(shù)4.3 原始軌跡的顯示模塊對于直線,從文件中得到其起點(diǎn)和終點(diǎn),調(diào)用自定義的畫直線的函數(shù)drawline(tmpentity,pdc)將直線畫出;對于圓弧,根據(jù)從文件中得到的圓弧的相關(guān)數(shù)據(jù),用自定義的函數(shù)drawarc(tmpentity,pdc)將其畫出。這部分的程序比較簡單,流程圖如下圖4-3所示。圖4-3 原始

31、軌跡顯示模塊流程圖4.4 小結(jié)本部分通過dxf文件的讀取保存模塊和原始軌跡的顯示模塊實(shí)現(xiàn)了cad模塊的部分功能,使用戶可以直觀的從軟件界面上看到在autocad下繪制的零件圖。這其間,dxf起到了橋梁的作用,它為圖形信息在autocad和第三方軟件之間進(jìn)行交換傳輸提供了一種簡單而實(shí)用的解決辦法。本部分主要代碼見附錄。五、刀具半徑補(bǔ)償概念及原理本章關(guān)于刀具半徑補(bǔ)償?shù)乃惴▍⒖剂酥軙詵|師兄關(guān)于c功能刀具半徑補(bǔ)償?shù)难芯恐械乃惴ā?5.1 刀具半徑補(bǔ)償?shù)母拍畹毒哐a(bǔ)償包括刀具半徑補(bǔ)償和刀具長度補(bǔ)償,這里討論刀具半徑補(bǔ)償?shù)南嚓P(guān)問題。為了方便零件加工程序編制,程編軌跡為零件輪廓軌跡,而數(shù)控系統(tǒng)(cnc系統(tǒng))控

32、制刀具移動(dòng)的軌跡為刀具中心軌跡。由于刀具半徑的存在,零件的輪廓軌跡與刀具中心軌跡不相重合。為了加工出符合圖紙要求的零件輪廓,必須進(jìn)行刀具半徑偏移。這個(gè)問題有兩種解決辦法:一種是由編程人員按照零件的幾何形狀尺寸及刀具半徑大小人工計(jì)算刀具中心軌跡,然后再按刀具中心運(yùn)動(dòng)軌跡編制加工程序;另一種方法是由編程人員按照零件實(shí)際輪廓尺寸編制加工程序,并在程序中指明刀具參數(shù)及走刀方式,由數(shù)控系統(tǒng)自動(dòng)完成刀具中心運(yùn)動(dòng)軌跡的計(jì)算。前一種方法繁瑣、工作量大,已不采用。第二種方法具有很大的靈活性,既可以減輕編程人員的計(jì)算工作量,又允許實(shí)際加工中根據(jù)具體情況選擇適宜的刀具,現(xiàn)代cnc系統(tǒng)都具有自動(dòng)計(jì)算刀具中心運(yùn)動(dòng)軌跡的

33、功能,這種功能稱之為刀具半徑補(bǔ)償功能。5.2 數(shù)控系統(tǒng)中c功能刀具補(bǔ)償功能的實(shí)現(xiàn)方法只有b刀具半徑補(bǔ)償功能的cnc系統(tǒng),在數(shù)控加工時(shí),采取讀一段,算一段,走一段的控制方法。因此,無法估計(jì)由于刀具半徑補(bǔ)償所造成的下一段加工軌跡對本段加工軌跡的影響 。為了解決這一問題,需要在計(jì)算完本段程編軌跡之后,提前將下一段程序讀入,然后根據(jù)它們之間轉(zhuǎn)接的具體情況,求得本段程序的刀具中心軌跡。按照這一思路,具有c刀具半徑補(bǔ)償功能的cnc系統(tǒng)應(yīng)設(shè)置多個(gè)數(shù)據(jù)寄存區(qū)。如圖5-1所示:緩沖寄存器(bs)刀具補(bǔ)償緩沖區(qū)( cs)輸出寄存區(qū)(os)工作寄存器(as)圖5-1帶c功能刀補(bǔ)的cnc系統(tǒng)的工作流程圖 系統(tǒng)起動(dòng)后,

34、第一段程序被讀入bs中,并在bs中算出第一段程序的程編軌跡,然后將其送到cs暫存。再將第二段程序讀入bs中,并計(jì)算出第二段程序的程編軌跡。接下來對第一、第二段程編軌跡的連接方式進(jìn)行判別,根據(jù)判別結(jié)果確定cs中的第一段程序的刀具中心軌跡。將第一段程序的刀具中心軌跡數(shù)據(jù)由cs送入as,第二段程編軌跡數(shù)據(jù)由bs送入cs。as的內(nèi)容送到os中進(jìn)行插補(bǔ)計(jì)算,并將計(jì)算結(jié)果送出,進(jìn)行位置控制。利用插補(bǔ)間隙,將第三段程序數(shù)據(jù)送入bs,并計(jì)算其程編軌跡。隨后,對第二、第三段程編軌跡的連接方式進(jìn)行判別,并根據(jù)判別結(jié)果確定cs中第二段程序的刀具中心軌跡。如此依次進(jìn)行下去。在c刀具半徑補(bǔ)償工作狀態(tài)下,cnc裝置內(nèi)總是

35、存有三個(gè)程序段的參數(shù)。5.3 c功能刀補(bǔ)中程序段間的轉(zhuǎn)接要實(shí)現(xiàn)c刀具半徑補(bǔ)償功能,首先要對相鄰程編軌跡的轉(zhuǎn)接線型和轉(zhuǎn)接過渡類型進(jìn)行判別,然后才能根據(jù)轉(zhuǎn)接線型和轉(zhuǎn)接過渡類型調(diào)用相應(yīng)的計(jì)算公式,在已知原始程編軌跡的基礎(chǔ)上,計(jì)算出刀具中心軌跡。對于具有直線、圓弧插補(bǔ)功能的cnc系統(tǒng),其相鄰兩段程編軌跡不外乎有以下幾種轉(zhuǎn)接線型:直線與直線轉(zhuǎn)接;直線與圓弧轉(zhuǎn)接;圓弧與直線轉(zhuǎn)接;圓弧與圓弧轉(zhuǎn)接。相鄰兩段程編軌跡矢量間夾角的不同,刀具半徑補(bǔ)償方式的不同,即左刀補(bǔ)或右刀補(bǔ)(g41或g42),對應(yīng)的刀具中心軌跡的轉(zhuǎn)接過渡類型也不同,概括起來有三種轉(zhuǎn)接過渡類型,即縮短型、伸長型和插入型。伸長型轉(zhuǎn)接即是刀具中心軌跡

36、相對于程編軌跡伸長了一定的長度??s短型轉(zhuǎn)接則是指刀具軌跡相對于程編軌跡縮短了一定長度。如圖5-2所示情況,若仍按照伸長型轉(zhuǎn)接那樣,將sc、dc'延長相交,勢必會增加刀具非切削行程的時(shí)間。因此,采取如下做法:將前后程序段刀具中心軌跡分別延長bc和c'd,且令bc=c'd=ab=ad。再在中間插入過渡直線段cc'。這樣刀具中心除了沿原來的程編軌跡伸長一個(gè)刀具半徑外,還增加了一個(gè)沿直線cc'的移動(dòng)。對于原來的程序段,等于中間再插入一個(gè)程序段。因此稱這種轉(zhuǎn)接形式為插入型轉(zhuǎn)接。圖5-2 直線接直線插入型左刀補(bǔ)示意圖5.4 c功能刀具半徑補(bǔ)償算法5.4.1 刀具中心

37、軌跡轉(zhuǎn)接過渡類型設(shè)1為本程序程段編軌跡矢量與x軸的夾角,2為下一程序段程編軌跡矢量與x軸的夾角,1角和2角均為從x軸逆時(shí)針轉(zhuǎn)到程編軌跡矢量形成的角,=2-1。將圓弧等效于直線后,完全可以按照角的正弦值、余弦值的大于、等于或小于零以及刀具半徑補(bǔ)償方式(即左刀補(bǔ)或右刀補(bǔ))劃分轉(zhuǎn)接過渡形式。刀具中心軌跡轉(zhuǎn)接過渡類型判別的規(guī)律如表5-3所示:刀具半徑補(bǔ)償方向sin0cos0 轉(zhuǎn)接過渡類型左刀補(bǔ) 是 縮短型 否 是 伸長型 否 否 插入型 右刀補(bǔ) 是 是 伸長型 是 否 插入型 否 縮短型表5-3 刀具中心軌跡轉(zhuǎn)接過渡類型判別表 轉(zhuǎn)接過渡類型判別程序框圖如下:圖5-4 刀具中心軌跡轉(zhuǎn)接過渡類型判別表 5

38、.4.2 轉(zhuǎn)接矢量的計(jì)算方法 所謂轉(zhuǎn)接矢量是指刀具半徑矢量、及從零件程編軌跡交點(diǎn)指向刀具中心軌跡交點(diǎn)的矢量、(如圖5-6所示)。不同線型,不同連接方式,不同刀具半徑補(bǔ)償方式,其轉(zhuǎn)接交點(diǎn)矢量計(jì)算公式也不同。對于具體的轉(zhuǎn)接矢量的計(jì)算方法,由于轉(zhuǎn)接形式的不同而各有不同,考慮本次設(shè)計(jì)的重點(diǎn)在于刀補(bǔ)軌跡到g代碼的生成方面,故對各種情況的轉(zhuǎn)接矢量的計(jì)算方法不做具體推導(dǎo),而直接給出結(jié)論公式,以提供給程序一個(gè)已知的確定的算法。下圖為轉(zhuǎn)接矢量計(jì)算的一般流程圖:對于下一程序段,刀心軌跡的起點(diǎn)計(jì)算刀具半徑矢量的計(jì)算轉(zhuǎn)接交點(diǎn)矢量的計(jì)算圖5-5 轉(zhuǎn)接矢量計(jì)算的一般流程圖5.4.3 常用的典型轉(zhuǎn)接交點(diǎn)矢量計(jì)算公式 直線接

39、直線插入型轉(zhuǎn)接矢量的計(jì)算:x圖5-6 左刀補(bǔ)直線接直線插入型轉(zhuǎn)接 如圖5-6所示為左刀具半徑補(bǔ)償?shù)那闆r,有: =,= ;=,= ;對于右刀具半徑補(bǔ)償?shù)那闆r,有:= ,= ;= ,=;設(shè)、分別表示上一程序段結(jié)束時(shí)刀具中心所在位置相對于本程序段編程起點(diǎn)o在、軸上的投影,即=, =、在上一程序段刀具半徑補(bǔ)償計(jì)算中已經(jīng)算出,為已知值。因此,相對于本程序段程編軌跡,本程序段刀心軌跡是、,其在、軸上的投影,即經(jīng)刀具半徑補(bǔ)償后本程序段的實(shí)際增量值為:=,=;=,=;而對于下一程序段程,刀心軌跡的起點(diǎn)為 =, =直線接直線伸長型轉(zhuǎn)接交點(diǎn)矢量的計(jì)算:圖5-7 左刀補(bǔ)直線接直線伸長型轉(zhuǎn)接 x 如圖5-7所示為左刀

40、具半徑補(bǔ)償?shù)那闆r,有: = =對于右刀具半徑補(bǔ)償?shù)那闆r,有: = = 相對于本程序段程編軌跡軌跡為,其在、軸上的投影,即經(jīng)刀具半徑補(bǔ)償后本程序段刀心軌跡的增量值為: = =對于下一程序段的程編軌跡af,刀心軌跡的起點(diǎn)為: =,= 該、將參與下一程序段的刀具半徑補(bǔ)償計(jì)算。直線接直線縮短型轉(zhuǎn)接交點(diǎn)矢量的計(jì)算:以上推導(dǎo)的直線接直線伸長型轉(zhuǎn)接交點(diǎn)矢量計(jì)算公式完全可以用于直線接直線縮短型轉(zhuǎn)接矢量計(jì)算。直線接圓弧縮短型轉(zhuǎn)接矢量的計(jì)算: 如圖5-8所示為左刀具半徑補(bǔ)償?shù)那闆r,直線和圓弧相接。為了計(jì)算,先計(jì)算。圖5-8 左刀補(bǔ)直線接圓弧縮短型轉(zhuǎn)接 =-+(r+r) =(r+r)-矢量在軸上的投影分別為: =+

41、,=+其中,,分別為圓弧圓心相對于圓弧起點(diǎn)的坐標(biāo)分量。從而可得,相對于本程序段程編軌跡的刀心軌跡在、軸上的投影,即刀具半徑補(bǔ)償后刀心軌跡的增量為: = =對于下一程序段,刀心軌跡的起點(diǎn)為:=,=.直線接圓弧插入型轉(zhuǎn)接交點(diǎn)矢量計(jì)算公式。圖5-9 左刀補(bǔ)直線接圓弧插入型轉(zhuǎn)接 如圖5-9所示為左刀具半徑補(bǔ)償?shù)那闆r,有: =, =; =, =; =, =;對于右刀具半徑補(bǔ)償?shù)那闆r,有: =, =; =, =; =, =;因此,相對于本程序段程編軌跡的刀心軌跡是、及,其在、軸上的投影,即經(jīng)過刀具半徑補(bǔ)償后本程序段的實(shí)際增量值為: =,=; =,=; =-,=-;而對于下一程序段程編軌跡圓弧af,有: =

42、,=直線接圓弧伸長型轉(zhuǎn)接交點(diǎn)矢量計(jì)算公式。圖5-10 左刀補(bǔ)直線接圓弧伸長型轉(zhuǎn)接 上圖5-10為左刀具半徑補(bǔ)償?shù)那闆r,有: = = =, =對于右刀具半徑補(bǔ)償情況,有: = = =, =因此,相對于本程序段程編軌跡的刀心軌跡是、,其在、軸上的投影,即經(jīng)過刀具半徑補(bǔ)償后本程序段的實(shí)際增量值為: =,= =,=而對于下一程序段程編軌跡圓弧af, 有: =,=圓弧接直線縮短型轉(zhuǎn)接交點(diǎn)矢量計(jì)算公式。圖5-11 左刀補(bǔ)圓弧接直線縮短型轉(zhuǎn)接 上圖為左刀具半徑補(bǔ)償?shù)那闆r,有: =-+ =+對于右刀具半徑補(bǔ)償情況,有: =+ =-(rcos+r)矢量ac在x、y軸上的投影可用下兩式求得: =+,=+其中,分別

43、為圓弧相對于圓弧起點(diǎn)的、坐標(biāo)分量。因此,相對于本程序段程編軌跡圓弧的刀心軌跡為,其在、軸上的投影,即經(jīng)刀具半徑補(bǔ)償后本程序段的實(shí)際增量為: =,=而對于下一程序段程編軌跡圓弧af,有: =,=圓弧接直線伸長型轉(zhuǎn)接交點(diǎn)矢量的計(jì)算公式:如圖5-12為左刀具半徑補(bǔ)償?shù)那闆r,有: =, = = =圖5-12 左刀補(bǔ)圓弧接直線伸長型轉(zhuǎn)接 對于右刀具半徑補(bǔ)償情況,有: =, = = =因此,相對于本程序段程編軌跡圓弧的刀心軌跡為, 其在、軸上的投影,即經(jīng)刀具半徑補(bǔ)償后本程序段的實(shí)際增量為: =+-,=+- =-,=-而對于下一程序段程編軌跡af,有: =,=圓弧接直線插入型轉(zhuǎn)接交點(diǎn)矢量的計(jì)算公式:圖5-1

44、3所示為左刀具半徑補(bǔ)償?shù)那闆r,有: =, = = = =, =圖5-13 左刀補(bǔ)圓弧接直線插入型轉(zhuǎn)接 對于右刀具半徑補(bǔ)償情況,有: = , = = = = , = 因此,相對于本程序段程編軌跡圓弧的刀心軌跡為及,其在、軸上的投影,即經(jīng)過刀具半徑補(bǔ)償后本程序段的實(shí)際增量值為: =+-,=+- =-,=- =,=而對于下一程序段程編軌跡af,有: =,=圓弧接圓弧伸長型轉(zhuǎn)接交點(diǎn)矢量的計(jì)算公式:下圖5-14為左刀具半徑補(bǔ)償?shù)那闆r,有: =, = = = =, =圖5-14 左刀補(bǔ)圓弧接圓弧伸長型轉(zhuǎn)接 對于右刀具半徑補(bǔ)償情況,有: = , = = = = , = 因此,相對于本程序段程編軌跡圓弧的刀心

45、軌跡為及,其在、軸上的投影,即經(jīng)過刀具半徑補(bǔ)償后本程序段的實(shí)際增量值為: =+-,=+- =-,=- =,=而對于下一程序段程編軌跡af,有: =,=圓弧接圓弧插入型轉(zhuǎn)接交點(diǎn)矢量的計(jì)算公式:如下圖5-15,為左刀補(bǔ)時(shí)的情況,由圖可得: =, = = = =, = =, =對于右刀具半徑補(bǔ)償情況,有: = , = =圖5-15 左刀補(bǔ)圓弧接圓弧插入型轉(zhuǎn)接 = =, = =, = 因此,相對于本程序段程編軌跡圓弧的刀心軌跡為、及,其在、軸上的投影,即經(jīng)過刀具半徑補(bǔ)償后本程序段的實(shí)際增量值為: =+-,=+- =-,=- =,= =-, =而對于下一程序段程編軌跡圓弧af,有:=, =圓弧接圓弧縮短

46、型轉(zhuǎn)接交點(diǎn)矢量的計(jì)算公式:圖5-16 左刀補(bǔ)圓弧接圓弧縮短型轉(zhuǎn)接 圖5-16為左刀具半徑補(bǔ)償順圓弧的情況,矢量在、軸上的投影分別為: =+-+- +- =+-+-+ +-對于右刀具半徑補(bǔ)償逆圓弧的情況,有: =+-+-+ +- =+-+- +-矢量ac在x、y軸上的投影可用下兩式求得: =+-,=+- 其中 、及、分別為兩圓弧圓心相對于圓弧起點(diǎn)的坐標(biāo)分量及圓弧半徑。 因此,相對于本程序段程編軌跡圓弧的刀心軌跡為,其在軸上的投影,即經(jīng)刀具半徑補(bǔ)償后本程序段的實(shí)際增量為: =+-,=+-而對于下一程序段程編軌跡圓弧af,有:=,=5.5 小結(jié)以上介紹了刀具補(bǔ)償?shù)母拍罴霸?,是刀具軌跡生成的核心部分

47、算法。在程序的編寫過程中所用到的算法,就是在這一部分中推導(dǎo)出來的,所以,本章內(nèi)容為下一章刀具軌跡計(jì)算和顯示模塊中的軌跡生成模塊提供了理論根據(jù)。六、刀補(bǔ)軌跡計(jì)算和顯示模塊6.1 第一加工圖元指定及排序模塊程序在從dxf文件中讀取并顯示出的是cad中的繪圖對象鏈,這不一定是使用者想得到的實(shí)際加工對象鏈,這就需要對繪圖對象鏈中的各元素進(jìn)行調(diào)整并排序,繼而得到實(shí)際加工對象鏈。對于這一過程,首先便是要指定第一加工圖元,而后從第一加工圖元和加工方向上對其他圖元逐一判斷,便得到一個(gè)線性的實(shí)際加工對象鏈。然而對于存在交叉圖元的圖形信息,這一過程會相對麻煩,還要判斷交叉點(diǎn)的加工情況。本系統(tǒng)中,只對無交叉的情況作

48、一討論。圖6-1 排序示例圖1對于第一圖元的指定,本系統(tǒng)的做法是,通過鼠標(biāo)在窗體中的點(diǎn)選,返回一個(gè)點(diǎn)的坐標(biāo)(包括x和y坐標(biāo)),通過點(diǎn)到直線的距離公式,依次計(jì)算該點(diǎn)與繪圖對象鏈中各元素的法向距離,這包括兩種情況: 圖元為直線時(shí),應(yīng)用點(diǎn)到直線距離公式,直線兩點(diǎn)式表示; 圖元為圓弧時(shí),計(jì)算點(diǎn)到圓心的距離,再與半徑作差取其絕對值。用循環(huán)語句判斷有最小法向間距的圖元,并把其指定為第一圖元元素寫入數(shù)組,并順勢調(diào)整繪圖對象鏈順序。2對于實(shí)際加工對象鏈,在按第一加工圖元重排繪圖對象鏈順序后,判斷第一圖元的結(jié)束點(diǎn)(由加工方向來確定),并把該點(diǎn)與各圖元的始末點(diǎn)依次比較,相同則相連,這樣就判出第二加工圖元。以后,重

49、復(fù)這一過程直到最后一個(gè)圖元。當(dāng)最后一個(gè)圖元無與之末點(diǎn)相連的圖元時(shí),整個(gè)圖形為一鏈型圖;當(dāng)與最后圖元末點(diǎn)相連的圖元為第一加工圖元時(shí),整個(gè)圖形為一環(huán)型圖。把圖形是否封閉(環(huán)型與否)計(jì)入相應(yīng)的變量fengbi中,以供下面刀補(bǔ)部分調(diào)用。圖6-2 第一加工圖元指定流程圖 6.2 刀補(bǔ)軌跡生成模塊這部分程序設(shè)計(jì)時(shí)應(yīng)這樣考慮:根據(jù)圖線之間的轉(zhuǎn)接類型的判斷及相應(yīng)的求點(diǎn)的坐標(biāo)的算法,可以確定刀具的中心的轉(zhuǎn)折點(diǎn)(一個(gè)或多個(gè)),這樣,將圖線中每相鄰的兩段依次進(jìn)行組合,判斷其轉(zhuǎn)接類型并求得各轉(zhuǎn)折點(diǎn)的坐標(biāo),將上一步求得的最后一個(gè)轉(zhuǎn)折點(diǎn)的坐標(biāo)作為下一步畫第一段線的起點(diǎn),將當(dāng)前步所求得的第一個(gè)轉(zhuǎn)折點(diǎn)這步畫第一段線的終點(diǎn),進(jìn)

50、行畫線(直線或圓?。?。每步中間的相鄰點(diǎn)用直線直接相連即可(這是按照算法來進(jìn)行的)。對于第一段和最后一段,進(jìn)行b刀補(bǔ)的專門處理就行了。對于第一段,調(diào)用initiasrxry(const centity &ent, double &rx, double &ry)求得rx和ry。再根據(jù)是圓弧還是直線求得刀具中心軌跡上第一點(diǎn)(trackspoint)的坐標(biāo),然后從選定的入絲點(diǎn)至trackspoint點(diǎn)畫直線,即可得到刀具中心軌跡上的第一段。對于最后一段情況比較特殊:當(dāng)圖形為一鏈型圖時(shí),若是直線,仍調(diào)用initiasrxry(const centity &ent, dou

51、ble &rx, double &ry)求得rx和ry,并求最后一點(diǎn)的坐標(biāo),將其作為終點(diǎn),將前一步求得的最后一個(gè)轉(zhuǎn)折點(diǎn)的坐標(biāo)作為起點(diǎn),畫直線,即為刀心軌跡上最后一段,并從最后一段末點(diǎn)向出絲點(diǎn)連線;若為圓弧,則調(diào)用initiaearxry(const centity &ent, double &rx, double &ry)求rx和ry,并求最后一點(diǎn)的坐標(biāo),將其作為終點(diǎn),將前一步求得的最后一個(gè)轉(zhuǎn)折點(diǎn)的坐標(biāo)作為起點(diǎn),畫圓弧,得到刀心軌跡上最后一段,同樣也要從最后一段末點(diǎn)向出絲點(diǎn)連線。當(dāng)圖形為一封閉圖形時(shí),仍要把最后一段圖元與第一段圖元做刀補(bǔ),求出刀補(bǔ)軌跡,最后從刀補(bǔ)軌跡的末端向出絲點(diǎn)連線。這樣就比不封閉的圖形多做了一次刀補(bǔ)運(yùn)算。在本系統(tǒng)中,這次刀補(bǔ)也是在求其它刀補(bǔ)軌跡的循環(huán)中完成的,用表示封閉與否的變量fengbi來控制循環(huán)的出口。 至此,刀心軌跡就完全確定了。這部分的程序流程圖如下圖6-3所示。6.3 小結(jié)本章內(nèi)容是對刀具中心實(shí)際運(yùn)動(dòng)軌跡的生成,它是數(shù)控程序代碼的基礎(chǔ),也就是實(shí)際的加工路線。這些加工信息生成后存儲于數(shù)組加工鏈中,供代碼生成模塊調(diào)用,逐次輸出。 圖6-3 刀補(bǔ)軌跡生成模塊流程圖七、代碼生成模塊本模塊是自動(dòng)編程系統(tǒng)的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論