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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

28、xes; /點的z坐標(在計算過程中不用,因為是平面圖形,但讀取數(shù)據(jù)時要考慮它) cpt;/線的存儲結構定義,用來存儲直線的信息(起點和終點)typedef struct target_linecpt plstart; /直線起點cpt plend; /直線終點 cln;/圓的存儲結構定義,存儲圓的信息和圓弧的部分信息typedef struct target_circlecpt pccenter; /圓心(圓弧的圓心)坐標double rradius; /圓的(圓弧的)半徑ccl; /圓弧的存儲結構定義typedef struct target_arcccl arccircle;double

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

溫馨提示

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

評論

0/150

提交評論