版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、FPC紫外激光加工中Gerber文件的解析轉(zhuǎn)換研究 華中科技大學(xué) 碩士學(xué)位論文 姓名:詹萍萍 申請(qǐng)學(xué)位級(jí)別:碩士 專(zhuān)業(yè):光學(xué)工程 指導(dǎo)教師:胡兵 20080530 摘 要 紫外激光的冷加工特性,使它在FPC(柔性電路板)加工領(lǐng)域有著無(wú)可取代的地位。隨著高功率DPSS紫外激光器的發(fā)展,將激光加工技術(shù)與現(xiàn)代數(shù)控編程技術(shù)相結(jié)合,開(kāi)發(fā)適用于FPC的紫外激光加工系統(tǒng)具有積極的現(xiàn)實(shí)意義。 作為PCB行業(yè)的通用文件格式,Gerber文件的圖形數(shù)據(jù)讀取是激光加工FPC的關(guān)鍵環(huán)節(jié),直接影響加工的精度和效率。本課題運(yùn)用編譯原理的基礎(chǔ)知識(shí),在對(duì)Gerber文件進(jìn)行詞法和語(yǔ)法分析的基礎(chǔ)上,采用Boost.Regex
2、正則表達(dá)式類(lèi)庫(kù)作為匹配和分析工具,開(kāi)發(fā)出一種匹配速度快、精度高、具有較強(qiáng)通用性和兼容性的Gerber文件解析轉(zhuǎn)換軟件。該軟件能夠讀取Gerber文件,快速提取其中相關(guān)的FPC圖形信息,繪制加工軌跡,并能夠?qū)erber文件轉(zhuǎn)換為CAD軟件能識(shí)別的DXF文件。 本文的主要內(nèi)容是從以下四個(gè)方面來(lái)組織的: (1) 介紹FPC紫外加工系統(tǒng)的特點(diǎn)和應(yīng)用,并從實(shí)際應(yīng)用需求出發(fā),設(shè)計(jì)出Gerber文件解析轉(zhuǎn)換軟件的結(jié)構(gòu)框架、工作流程、開(kāi)發(fā)環(huán)境和開(kāi)發(fā)流程。 (2) 分析了Gerber文件的總體結(jié)構(gòu)以及具體的數(shù)據(jù)記錄格式,在此基礎(chǔ)上提出文件的解析算法,并引入了Boost庫(kù)的正則表達(dá)式類(lèi)庫(kù)函數(shù)對(duì)其進(jìn)行分析處理,保
3、證了解析的快速和準(zhǔn)確性。 (3) 將面向?qū)ο蠹夹g(shù)應(yīng)用到該軟件的開(kāi)發(fā)中,研究了Gerber數(shù)據(jù)的讀入方法和解析數(shù)據(jù)的保存方式,并利用MFC繪制加工圖形。 (4) 研究了與常見(jiàn)CAD軟件的接口問(wèn)題,將解析數(shù)據(jù)轉(zhuǎn)換為DXF文件輸出,改善了該軟件的可移植性。 關(guān)鍵詞:紫外激光加工系統(tǒng) Gerber文件 DXF文件 正則表達(dá)式 Boost庫(kù) I Abstract With the “cold” processing character, UV laser have a indispensable effect on FPC processing field. Along with the develop
4、ment of the high power DPSS UV laser, its meritoriously to develop a UV laser processing system which is based on laser and moderm NC programming technology for FPC. The Gerber file is the standard file format of PCB industry. As the key step of the FPC laser processing, the figure data of the Gerbe
5、r file parsing has a notable influence on the efficiency and precision of the processing.The paper adopts the Boost. Regex formula expressions library researched and developed in Microsoft research lab as strong match and analysis tool, which based on lexical and syntactic analysis. It works out a k
6、ind of Gerber file parsing and switching software with rapid match, high precision, better versatility and compatibility. This software can read the Gerber file and pick-up the figure imformation according to the FPC rapidly. It plots processing figure with the imformation and switches it to the DXF
7、 format which can recognize by any CAD software. The paper can be divided into four segments: (1) First, the FPC UV laser processing system is studied. And then introduced the framework, main task, the procedure of design and the principle of the Gerber file parsing and swithing software according t
8、o the practice. (2) Analysis the holistic configuration and data register format of the Gerber file. And introduce the parse means which adopts the Boost. Regex formula expressions library function as analysis tool based on it, insure the speed and precision. (3) Introducing the object-oriented tech
9、nology to the software. Study the means of the Gerber datas reading and saving, then plots the processing figure with MFC. (4) Study the interface problem with general CAD software. Improve the expandability of the software by switching the parse data to DXF. Key words:UV laser processing system Ger
10、ber file Drawing Exchange Format (DXF) Formula expressions Boost II 獨(dú)創(chuàng)性聲明 本人聲明所呈交的學(xué)位論文是我個(gè)人在導(dǎo)師指導(dǎo)下進(jìn)行的研究工作及取得的研究成果。盡我所知,除文中已經(jīng)標(biāo)明引用的內(nèi)容外,本論文不包含任何其他個(gè)人或集體已經(jīng)發(fā)表或撰寫(xiě)過(guò)的研究成果。對(duì)本文的研究做出貢獻(xiàn)的個(gè)人和集體,均已在文中以明確方式標(biāo)明。本人完全意識(shí)到本聲明的法律結(jié)果由本人承擔(dān)。 學(xué)位論文作者簽名: 日期: 年 月 日 學(xué)位論文版權(quán)使用授權(quán)書(shū) 本學(xué)位論文作者完全了解學(xué)校有關(guān)保留、使用學(xué)位論文的規(guī)定,即:學(xué)校有權(quán)保留并向國(guó)家有關(guān)部門(mén)或機(jī)構(gòu)送交論文的復(fù)印件和
11、電子版,允許論文被查閱和借閱。本人授權(quán)華中科技大學(xué)可以將本學(xué)位論文的全部或部分內(nèi)容編入有關(guān)數(shù)據(jù)庫(kù)進(jìn)行檢索,可以采用影印、縮印或掃描等復(fù)制手段保存和匯編本學(xué)位論文。 保密, 在 年解密后適用本授權(quán)書(shū)。 本論文屬于 不保密。 (請(qǐng)?jiān)谝陨戏娇騼?nèi)打“”) 學(xué)位論文作者簽名: 指導(dǎo)教師簽名: 日期: 年 月 日 日期: 年 月 日 1 緒論 1.1 課題研究背景及意義 1.1.1 什么是FPC FPC是柔性印刷電路板(Flexible Printed Circuit Board)的簡(jiǎn)稱(chēng),它是由柔性絕緣基材制成的印刷電路,具有許多硬性印刷電路板不具備的優(yōu)點(diǎn)。 FPC 基材是通過(guò)膠粘劑將撓性絕緣薄膜與金屬箔
12、按照一定設(shè)計(jì)要求, 覆合在一起制成的,常用的絕緣薄膜為聚酰亞胺(PI)薄膜和聚酯(PET)薄膜,常用的金屬箔為銅箔1。薄膜材料耐熱性高、尺寸穩(wěn)定性好,與兼有機(jī)械保護(hù)和良好電氣絕緣性能的覆蓋膜通過(guò)壓制而成的最終產(chǎn)品,具有良好的散熱性和可焊性,易于裝連、綜合成本較低。它可以自由彎曲、卷繞、折疊,依照空間布局要求任意安排,并在三維空間任意移動(dòng)和伸縮,從而達(dá)到元器件裝配和導(dǎo)線(xiàn)連接的一體化。FPC可大大縮小電子產(chǎn)品的體積,適用于電子產(chǎn)品向高密度、小型化、高可靠性方向發(fā)展的需要,已經(jīng)成為電子產(chǎn)品中不可缺少的重要組成部分。 1.1.2 FPC產(chǎn)業(yè)發(fā)展概括 現(xiàn)今,F(xiàn)PC板在航天、軍事、移動(dòng)通訊、手提電腦、計(jì)算
13、機(jī)外設(shè)、PDA、數(shù)字相機(jī)等領(lǐng)域或產(chǎn)品上得到了廣泛的應(yīng)用,需求量也逐年提高。Techsearch 預(yù)測(cè)在未來(lái)幾年內(nèi),F(xiàn)PC年銷(xiāo)量增長(zhǎng)率為26 %1, 2;IPC(美國(guó)互聯(lián)與封裝協(xié)會(huì))預(yù)測(cè)在未來(lái)幾年中,全世界柔性印制電路板的產(chǎn)值將以13 %15 %的年增長(zhǎng)率高速發(fā)展2。 當(dāng)前國(guó)內(nèi)電子工業(yè)正飛速向前發(fā)展,引進(jìn)的轎車(chē)生產(chǎn)線(xiàn)、通訊設(shè)備、計(jì)算機(jī)等工業(yè)生產(chǎn)中需要大量使用FPC,使中國(guó)的FPC制造工業(yè)在短短幾年內(nèi)迅速發(fā)展起來(lái),每年會(huì)有兩位數(shù)字的增幅,許多國(guó)外訂單投入中國(guó)。另一方面,歐、美、日印刷電路板公司陸續(xù)來(lái)華兼并投資,印刷電路板生產(chǎn)規(guī)模越擴(kuò)越大,價(jià)格戰(zhàn)越打越烈,企業(yè)面臨著成本、資金、管理、技術(shù)、價(jià)格等方面
14、的巨大挑戰(zhàn)?,F(xiàn)代高性能電子產(chǎn)品、計(jì)算機(jī)技術(shù)和現(xiàn)代通訊技術(shù)的高速發(fā)展,使電子產(chǎn)品“輕、薄、短、小”的普遍要求同F(xiàn)PC制作工藝中高密度、高層次、細(xì)線(xiàn)路、表面貼裝等技術(shù)應(yīng)用要求變得越來(lái)越高,隨之, 1 對(duì)FPC加工制造設(shè)備中的關(guān)鍵設(shè)備CNC切割機(jī)床的依賴(lài)性也就越來(lái)越大。 早期印制電路板的生產(chǎn)采用手工繪圖或人工布線(xiàn)貼圖、周期長(zhǎng)、精度低、正確性檢查困難1。隨著計(jì)算機(jī)系統(tǒng)在速度、容量、軟件和圖形工具上的高速發(fā)展,以及自動(dòng)布線(xiàn)算法的深入研究和實(shí)現(xiàn),CAD(Computer Aided Design,即計(jì)算機(jī)輔助設(shè)計(jì))技術(shù)日益完善并廣泛應(yīng)用于印刷電路板的制造中。目前高精度、高密度的制作印制電路板技術(shù)已采用了先
15、進(jìn)的CAD工作站硬件和軟件,包括CAD/CAM軟件、數(shù)據(jù)庫(kù)軟件、專(zhuān)家系統(tǒng)軟件以及網(wǎng)絡(luò)系統(tǒng)軟件等。CAD包括PCB設(shè)計(jì)輸入,可對(duì)電路圖形進(jìn)行編輯、校正、修理和拼版,以磁盤(pán)為介質(zhì)材料并輸出光繪、鉆孔和檢測(cè)(包括AOI和電氣檢測(cè))的自動(dòng)化數(shù)據(jù)。 目前,電子工程人員可以在計(jì)算機(jī)上利用商品化的CAD/CAM軟件來(lái)輔助設(shè)計(jì),輔助生產(chǎn)印制板。由原始的手工貼圖到計(jì)算機(jī)畫(huà)圖,再由計(jì)算機(jī)自動(dòng)布線(xiàn)到帶有智能的模擬仿真布線(xiàn),把一個(gè)電子產(chǎn)品的理想設(shè)計(jì)到現(xiàn)實(shí)產(chǎn)品之間的距離縮得更小,使產(chǎn)品的周期完成得更快、更好、更有效率2, 3。近年來(lái),國(guó)內(nèi)的一些高科技公司通過(guò)努力解決了一系列技術(shù)難題,成功地推出適合國(guó)內(nèi)應(yīng)用的激光繪圖系統(tǒng)
16、(又稱(chēng)為光繪機(jī))。光繪機(jī)繪圖控制器讀取系統(tǒng)繪圖文件后,根據(jù)用戶(hù)繪圖需要通過(guò)鍵盤(pán)及視頻顯示器進(jìn)行系統(tǒng)參數(shù)調(diào)整、設(shè)置、修改、調(diào)試,然后將有關(guān)系統(tǒng)參數(shù)儲(chǔ)存?zhèn)溆?。開(kāi)始繪圖時(shí)再?gòu)挠脩?hù)處讀取繪圖數(shù)據(jù),控制繪圖平臺(tái)及曝光系統(tǒng)運(yùn)動(dòng),在設(shè)定的位置對(duì)放置在平臺(tái)上的膠片進(jìn)行曝光,形成線(xiàn)條、焊盤(pán)、字符等圖形。繪制完畢,將膠片進(jìn)行沖洗處理后,獲得制板用底片。為了使光繪機(jī)工作順利、方便,通常都配有計(jì)算機(jī)及相應(yīng)的繪圖軟件,以便配合CAD軟件隨時(shí)檢查有關(guān)繪圖文件及圖形等。光繪機(jī)普遍采用Gerber格式的繪圖文件。 計(jì)算機(jī)輔助制造技術(shù)(Computer Aided Manufacturing,簡(jiǎn)稱(chēng)CAM)是一種由計(jì)算機(jī)控制完成
17、生產(chǎn)的先進(jìn)技術(shù)。計(jì)算機(jī)技術(shù)的發(fā)展和激光繪圖機(jī)的出現(xiàn),使得PCB的計(jì)算機(jī)輔助制造技術(shù)走向了實(shí)用性的道路。CAM技術(shù)使PCB的設(shè)計(jì)生產(chǎn)上了一個(gè)新的臺(tái)階,一些過(guò)去無(wú)法實(shí)現(xiàn)的功能得以實(shí)現(xiàn)。各種CAM系統(tǒng)一般都能對(duì)光繪數(shù)據(jù)(Gerber數(shù)據(jù))進(jìn)行處理,排除設(shè)計(jì)中的各種缺陷,使設(shè)計(jì)更易于生產(chǎn),大大提高了生產(chǎn)質(zhì)量。 2 1.1.3 紫外激光的加工優(yōu)勢(shì) (1) 激光在FPC制造過(guò)程中有三個(gè)主要功能:加工成型(切割)、切片和鉆孔。在以往FPC的大批量生產(chǎn)中,都使用機(jī)械硬沖壓成型的模具壓制成型3,但是硬沖模法損耗較大、交付周期長(zhǎng),對(duì)小部件的加工和成型而言顯得不實(shí)用且成本高。 激光具有可控性強(qiáng)、能量穩(wěn)定集中、光束方
18、向性好、光束細(xì)等特點(diǎn),加工精度高,是FPC成型處理的理想工具。激光切割有諸多優(yōu)點(diǎn),例如切割速度快、切口光滑平整、無(wú)需后續(xù)加工;切割熱影響區(qū)域小、切割變形?。患庸ぞ雀?、重復(fù)性好、加工質(zhì)量穩(wěn)定;能數(shù)控編程、可加工任意圖形、無(wú)需模具、經(jīng)濟(jì)省時(shí)、切割過(guò)程容易實(shí)現(xiàn)自動(dòng)化控制等3。 (2) 從本質(zhì)上來(lái)說(shuō),紫外激光微處理過(guò)程與紅外加工不同:紫外激光是利用高能量的光子直接破壞材料的化學(xué)鍵,這一加工過(guò)程稱(chēng)為“光蝕”效應(yīng)4;而可見(jiàn)光和紅外光激光器利用聚焦到加工部位的熱量來(lái)熔化材料,產(chǎn)生熱影響區(qū)。 但是,許多塑料和一些大量使用在FPC基體材料中的特殊聚合物(如聚酰亞胺)不能通過(guò)紅外處理或“熱”處理過(guò)程進(jìn)行精細(xì)加工
19、?!盁帷睍?huì)使塑料變形,在切割邊緣產(chǎn)生炭化形式的損傷,可能導(dǎo)致電路板結(jié)構(gòu)性的削弱和寄生傳導(dǎo)性通路,從而不得不增加后續(xù)處理工序以改善加工結(jié)果5, 6。因此,紅外激光器不適合處理柔性電路板。 相比之下,紫外激光加工材料是冷處理過(guò)程,熱影響區(qū)微乎其微,并且大多數(shù)材料吸收紫外光比紅外光更加容易。用高能量的紫外光直接破壞許多非金屬材料表面的分子鍵,這種“冷”加工出來(lái)的部件具有光滑的邊緣和最低限度的炭化影響。另外,紫外激光器的輸出波長(zhǎng)在0.4m以下,適合處理聚合物材料5。由于光束的衍射現(xiàn)象是限制加工部件最小尺寸的主要因素,因此波長(zhǎng)較短的紫外激光能夠加工更小的部件,可達(dá)到的聚焦點(diǎn)的最小直徑隨著波長(zhǎng)的增加而線(xiàn)性
20、增加6, 12, 14。 隨著小型電子產(chǎn)品和微電子元器件需求的日益增長(zhǎng),聚合物材料的精密處理日漸成為激光在工業(yè)應(yīng)用中發(fā)展最快的應(yīng)用領(lǐng)域之一。良好的聚焦性能和冷處理特性使紫外激光成為處理廣泛應(yīng)用于微電子元器件工業(yè)中的塑料(如聚酰亞胺)和金屬(如銅)等材料的理想工具7, 13。固態(tài)激光器的最新技術(shù)推動(dòng)了新一代結(jié)構(gòu)緊湊,全固態(tài)的紫外 3 激光器的發(fā)展,從而使之成為FPC加工領(lǐng)域中更加經(jīng)濟(jì)有效的處理手段8, 9,具有廣泛的應(yīng)用前景。 1.2 課題研究目的 (1) 隨著高功率紫外DPSS激光器技術(shù)的發(fā)展,直接使用紫外激光加工柔性電路板逐漸成為頗具吸引力的工藝手段。在此背景下,對(duì)激光加工系統(tǒng)的研究和開(kāi)發(fā)具
21、有重要的現(xiàn)實(shí)指導(dǎo)意義。 圖1-1 紫外激光加工系統(tǒng) 本實(shí)驗(yàn)室將紫外激光加工技術(shù)與計(jì)算機(jī)技術(shù)結(jié)合起來(lái),開(kāi)發(fā)出一套適合FPC的激光切割系統(tǒng),使用該系統(tǒng)可以有效提高FPC的加工效率和精度。該紫外激光加工系統(tǒng)可以對(duì)不同種類(lèi)的FPC進(jìn)行加工,將最終成型的電路板裁剪下來(lái)。激光切割系統(tǒng)主要由機(jī)床主機(jī)、激光器、控制系統(tǒng)三大主要部分組成??刂葡到y(tǒng)是整個(gè)系統(tǒng)的控制中樞,負(fù)責(zé)協(xié)調(diào)整個(gè)系統(tǒng)的正常工作,主要完成加工軌跡控制、焦點(diǎn)位置控制和機(jī)、光、電一體的協(xié)調(diào)控制。按功能的不同,可分為六個(gè)部分:Gerber文件解析、運(yùn)動(dòng)控制、系統(tǒng)狀態(tài)顯示、激光控制、CCD自動(dòng)定位及變形矯正和系統(tǒng)補(bǔ)償與矯正。 4 (2) 目前,在FPC的
22、實(shí)際制造工藝中使用的是Gerber文件格式。Gerber文件不包含設(shè)計(jì)時(shí)元器件的電氣性能和網(wǎng)絡(luò)屬性,只包含最基本的物理特性,如焊盤(pán)和導(dǎo)線(xiàn)的坐標(biāo)、形狀、大小等10,很適合生產(chǎn)廠(chǎng)家直接使用, 所以Gerber文件已經(jīng)成為了PCB行業(yè)通用的文件標(biāo)準(zhǔn)。 我們?cè)谶M(jìn)行FPC加工時(shí),使用的是生產(chǎn)廠(chǎng)家提供的Gerber文件。但是,紫外激光切割系統(tǒng)僅接受線(xiàn)性圖形文件,要使市場(chǎng)通用的Gerber文件能夠被激光切割系統(tǒng)接受,必然牽涉到文件格式轉(zhuǎn)換的過(guò)程。因此,對(duì)輸入的Gerber文件進(jìn)行解析,提取激光切割系統(tǒng)所需要的圖形信息,并將其轉(zhuǎn)換成可以被激光切割系統(tǒng)接受的文件格式,是進(jìn)行FPC加工的關(guān)鍵環(huán)節(jié),對(duì)FPC激光加工
23、系統(tǒng)的開(kāi)發(fā)研究具有重要意義。 1.3 課題主要研究?jī)?nèi)容 本課題按照紫外激光加工FPC的實(shí)際要求,編寫(xiě)單獨(dú)的Gerber文件解析轉(zhuǎn)換軟件。該軟件能夠自動(dòng)解析Gerber文件,提取加工所需的圖形信息,繪制出進(jìn)行FPC加工軌跡圖,并將圖形信息轉(zhuǎn)換為一般CAD/CAM系統(tǒng)都能識(shí)別的DXF文件。Gerber文件解析轉(zhuǎn)換軟件不僅解決了激光加工系統(tǒng)的信息讀取問(wèn)題,提高了激光加工系統(tǒng)的工作效率;另一方面,該軟件能夠?qū)erber文件進(jìn)行格式轉(zhuǎn)換,輸出包含F(xiàn)PC圖形信息的DXF文件,使用戶(hù)能夠在常見(jiàn)的CAD軟件上對(duì)圖形進(jìn)行處理和修改,從而提高了加工系統(tǒng)的靈活性和可移植性 該解析轉(zhuǎn)換軟件的設(shè)計(jì)方案為:以Windo
24、ws XP為系統(tǒng)環(huán)境,采用VC+6.0為編程工具,應(yīng)用正則表達(dá)式為分析工具進(jìn)行信息提取。 本文共分為六章,各章節(jié)內(nèi)容安排如下: 第一章概述了FPC制造產(chǎn)業(yè)的發(fā)展現(xiàn)狀和紫外激光在FPC加工中的優(yōu)勢(shì),說(shuō)明了紫外激光加工系統(tǒng)開(kāi)發(fā)的實(shí)際意義,并簡(jiǎn)要介紹了本課題的主要研究?jī)?nèi)容和實(shí)現(xiàn)目標(biāo)。 第二章主要研究了解析轉(zhuǎn)換模塊的總體設(shè)計(jì)思路,并根據(jù)實(shí)際生產(chǎn)需要,按照主要實(shí)現(xiàn)功能設(shè)計(jì)了該模塊的結(jié)構(gòu)框架、工作流程、開(kāi)發(fā)環(huán)境和開(kāi)發(fā)流程。 第三章介紹了Gerber文件解析時(shí)使用的匹配分析工具正則表達(dá)式,特別對(duì)Boost庫(kù)的正則表達(dá)式庫(kù)函數(shù)進(jìn)行了研究,為下一章的解析的具體實(shí)現(xiàn)做了準(zhǔn)備,最后介紹了Boost庫(kù)的編譯方法。 5
25、 第四章介紹了Gerber文件的格式和結(jié)構(gòu),并由此提出解析部分的實(shí)現(xiàn)原理和設(shè)計(jì)思想,其中還重點(diǎn)分析了文件參數(shù)和代碼的解析流程以及解析數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)和方式,并且對(duì)具體實(shí)現(xiàn)做了詳細(xì)介紹。 第五章概述了DXF文件的結(jié)構(gòu)、應(yīng)用和創(chuàng)建要求,提出了轉(zhuǎn)換部分的實(shí)現(xiàn)原理和設(shè)計(jì)思想,分析了不同轉(zhuǎn)換數(shù)據(jù)的處理方法,并對(duì)轉(zhuǎn)換部分的具體實(shí)現(xiàn)進(jìn)行了介紹。 第六章闡述了在本模塊的研究開(kāi)發(fā)過(guò)程中,對(duì)FPC紫外激光加工技術(shù),文件格式轉(zhuǎn)換和編程技巧等方面的了解和收獲,總結(jié)了課題研究成果和不足,并對(duì)紫外激光加工系統(tǒng)的應(yīng)用以及文件解析和轉(zhuǎn)換的研究做了展望。 6 2 Gerber文件解析轉(zhuǎn)換模塊的需求分析和系統(tǒng)設(shè)計(jì) 2.1 系統(tǒng)需求
26、分析 我們?cè)谶M(jìn)行軟件設(shè)計(jì)之前,必須通過(guò)對(duì)應(yīng)用問(wèn)題及其環(huán)境的理解和分析,為軟件所涉及的信息、功能以及系統(tǒng)行為建立模型,將用戶(hù)的需求精確化和完全化,也就是進(jìn)行系統(tǒng)需求分析15。 在實(shí)際的科研和生產(chǎn)活動(dòng)中,對(duì)Gerber文件的解析轉(zhuǎn)換一般發(fā)生在FPC加工的預(yù)處理階段,解析轉(zhuǎn)換軟件主要有以下兩個(gè)用途:一是用來(lái)提取圖形信息。由于激光加工系統(tǒng)不能直接識(shí)別Gerber文件,所以在加工前需要利用解析軟件提取FPC的線(xiàn)性圖形信息,用來(lái)繪制激光加工軌跡以及進(jìn)行后續(xù)的加工代碼生成。 該軟件的另一用途是提供與其他CAD系統(tǒng)的接口功能。為了靈活處理加工信息,需要能夠?qū)τ脩?hù)提供的FPC信息進(jìn)行修改或者擴(kuò)充,激光加工系統(tǒng)本
27、身不能提供這一功能,但是將解析得到的圖形信息轉(zhuǎn)換為DXF文件后,就能夠在常用的CAD軟件上處理FPC的加工圖形,同時(shí)也提高了加工的靈活性。 圖2-1 軟件的需求分析 通過(guò)對(duì)軟件進(jìn)行需求分析,我們把其功能和性能的總體概念描述為具體的軟件需求規(guī)格說(shuō)明,從而奠定軟件開(kāi)發(fā)的基礎(chǔ)15。需求分析工作是一個(gè)不斷認(rèn)識(shí)和逐步細(xì)化的過(guò)程,將軟件范圍逐步細(xì)化到可詳細(xì)定義的程度,并分析出各種不同的軟件元素,然后為這些元素找到可行的解決方法15, 16。通過(guò)需求分析,將軟件的功能進(jìn)行了分解,如圖2-1所示。 7 2.2 總體設(shè)計(jì) 2.2.1 編譯原理概述 總體設(shè)計(jì)階段主要解決“How to do”這個(gè)問(wèn)題,對(duì)后續(xù)工作的
28、開(kāi)展有著指導(dǎo)作用。從前面的需求分析可以看出,我們需要設(shè)計(jì)的Gerber文件解析轉(zhuǎn)換軟件的執(zhí)行實(shí)際上是一個(gè)“從Gerber文件>加工數(shù)據(jù)>加工圖形和DXF文件”的實(shí)現(xiàn)過(guò)程,它可以看成一個(gè)編譯程序。 一般所說(shuō)的編譯程序是將一種語(yǔ)言翻譯為另一種語(yǔ)言的計(jì)算機(jī)程序,它將源程序語(yǔ)言編寫(xiě)的程序作為輸入,而產(chǎn)生用目標(biāo)語(yǔ)言編寫(xiě)的等價(jià)程序,并且在轉(zhuǎn)換過(guò)程中向用戶(hù)報(bào)告源程序中出現(xiàn)的錯(cuò)誤17。這一過(guò)程可由圖2-2表示18: 圖2-2 編譯過(guò)程示意圖 由源程序到生成一個(gè)可以在計(jì)算機(jī)上執(zhí)行的目標(biāo)程序,除了編譯程序,還涉及到預(yù)處理程序、裝配/鏈接程序以及某些庫(kù)程序等。在計(jì)算機(jī)上執(zhí)行用高級(jí)語(yǔ)言編寫(xiě)的程序,一般要經(jīng)
29、過(guò)兩個(gè)階段:第一階段稱(chēng)為編譯階段,它的任務(wù)是由編譯程序?qū)⒃闯绦蚓幾g為目標(biāo)程序;第二階段稱(chēng)為運(yùn)行階段,其任務(wù)是在目標(biāo)計(jì)算機(jī)上執(zhí)行編譯階段所得到的目標(biāo)程序17。 這里的編譯程序完成從源程序(Gerber文件)到目標(biāo)程序(圖形和DXF文件)的翻譯過(guò)程,從概念上來(lái)講,是劃分為六個(gè)階段的,各個(gè)階段進(jìn)行的操作在邏輯上是緊密相連的。編譯過(guò)程劃分為詞法分析、語(yǔ)法分析、語(yǔ)義分析、中間代碼生成、代碼優(yōu)化和目標(biāo)代碼生成六個(gè)階段。另外還要涉及到信息表格管理和錯(cuò)誤檢查處理兩個(gè)程序, 8 這兩個(gè)程序與上述六個(gè)階段都是緊密聯(lián)系的。編譯過(guò)程中,源程序的各種信息都保留在不同的特定的數(shù)據(jù)結(jié)構(gòu)(或者表格)中,各階段工作都涉及到構(gòu)造
30、、查找有關(guān)數(shù)據(jù)結(jié)構(gòu)或者表格,因此需要數(shù)據(jù)結(jié)構(gòu)的管理工作。另一方面,需要在編譯過(guò)程中發(fā)現(xiàn)并報(bào)告錯(cuò)誤,這樣才能將錯(cuò)誤造成的影響限制在盡可能小的范圍內(nèi),因此需要錯(cuò)誤檢查處理程序。 圖2-3 編譯階段劃分示意圖 上圖描述的是各階段的邏輯關(guān)系,在我們實(shí)際編譯的過(guò)程中,可按照不同的執(zhí)行流程來(lái)組織各個(gè)部分的工作,一般把編譯過(guò)程分為前端和后端:前端通常包括詞法分析、語(yǔ)法分析和中間代碼生成,這些階段依賴(lài)于源程序語(yǔ)言,即Gerber文件的結(jié)構(gòu)和規(guī)范;后端一般不依賴(lài)于源程序語(yǔ)言,只與中間代碼有關(guān),包括目標(biāo)代碼生成(圖形和DXF文件)和出錯(cuò)處理等階段19。這在很大程度上依賴(lài)于編譯過(guò)程中對(duì)源程序掃描的遍數(shù),以及如何劃分
31、各遍數(shù)掃描所進(jìn)行的工作。 2.2.2 總體流程 在Gerber文件解析轉(zhuǎn)換程序中,我們將Gerber文件作為源程序輸入,產(chǎn)生相應(yīng)的線(xiàn)性圖形和DXF文件,這一翻譯過(guò)程同樣可以分為前端和后端。其中,程序的重點(diǎn)Gerber文件解析部分屬于前端,要涉及到編譯原理中的詞法分析、語(yǔ)法分析和語(yǔ)義分析等。后端對(duì)解析數(shù)據(jù),即中間代碼進(jìn)行處理,產(chǎn)生對(duì)應(yīng)的圖形輸出和DXF文件輸出。 9 Gerber文件解析轉(zhuǎn)換程序的總體流程如下圖2-4: 圖2-4 程序總流程圖 10 2.3 詳細(xì)設(shè)計(jì) 總體設(shè)計(jì)階段以比較概括的方式提出了解決問(wèn)題的方法,詳細(xì)設(shè)計(jì)階段的任務(wù)就是把解決方法具體化16, 19。這一階段主要完成三項(xiàng)任務(wù):
32、(1) 過(guò)程設(shè)計(jì):設(shè)計(jì)軟件體系結(jié)構(gòu)中包含的每個(gè)模塊的實(shí)現(xiàn)算法; (2) 數(shù)據(jù)設(shè)計(jì):設(shè)計(jì)軟件中需要的數(shù)據(jù)結(jié)構(gòu); (3) 接口設(shè)計(jì):設(shè)計(jì)軟件內(nèi)部各模塊之間、軟件與協(xié)作系統(tǒng)之間,以及軟件與使用者之間的通信方式。 考慮到該軟件的通用性和兼容性,在選擇開(kāi)發(fā)環(huán)境時(shí)考慮了以下幾點(diǎn)要素: (1) 采用面向?qū)ο蟮拈_(kāi)發(fā)方法,具有強(qiáng)大的開(kāi)發(fā)能力,便于后期進(jìn)行功能擴(kuò)展; (2) 與現(xiàn)在通用的編程工具(如VC+)有接口,以便于詞法、語(yǔ)法分析、代碼生成等程序可以轉(zhuǎn)換為常用的編程工具語(yǔ)言,并提高可讀性。 針對(duì)以上的要素,我們將Gerber文件解析轉(zhuǎn)換軟件的開(kāi)發(fā)環(huán)境確定為:以Windows XP為系統(tǒng)環(huán)境,采用VC+6.0為
33、編程工具,并應(yīng)用正則表達(dá)式為分析工具,對(duì)Gerber文件進(jìn)行詞法和語(yǔ)法分析。 2.4 系統(tǒng)功能設(shè)計(jì) 根據(jù)上述系統(tǒng)設(shè)計(jì),我們可以確定Gerber文件解析轉(zhuǎn)換軟件應(yīng)該具有以下的功能: (1) 優(yōu)秀的詞法、語(yǔ)法分析功能:可以快速、準(zhǔn)確的提取Gerber文件的參數(shù)和代碼; (2) 良好的語(yǔ)義分析功能:能夠根據(jù)Gerber文件規(guī)范快速、準(zhǔn)確地處理提取的參數(shù)和代碼; (3) 良好的可移植性和兼容性:具有高內(nèi)聚低相關(guān)的軟件特性15, 16,能夠便捷的與其他CAD/CAM軟件進(jìn)行聯(lián)接; (4) 良好的可擴(kuò)展性:能夠隨著用戶(hù)要求的變化對(duì)現(xiàn)有功能進(jìn)行擴(kuò)展。 2.5 本章小結(jié) 主要介紹了編譯原理的基本知識(shí)和概念,通
34、過(guò)Gerber文件解析轉(zhuǎn)換程序的需求分 11 析,闡述了程序的系統(tǒng)設(shè)計(jì)思路,完成了程序的總體設(shè)計(jì)流程,并確定了開(kāi)發(fā)環(huán)境和系統(tǒng)功能,為后續(xù)設(shè)計(jì)奠定了基礎(chǔ)。 3 基于正則表達(dá)式的Gerber文件解析方法研究 3.1 正則表達(dá)式模板類(lèi)庫(kù)概述 3.1.1 什么是正則表達(dá)式 正則表達(dá)式萌芽于1940年的神經(jīng)生理學(xué)研究,最早是由數(shù)學(xué)家Stephen Kleene提出,他在對(duì)自然語(yǔ)言的遞增研究成果的基礎(chǔ)上定義了一個(gè)代數(shù)系統(tǒng),并且引入了一種記號(hào)系統(tǒng)來(lái)描述正則集,這種記號(hào)系統(tǒng)被稱(chēng)為“正則表達(dá)式”20。UNIX系統(tǒng)的創(chuàng)造者Ken Thompson于1968年第一個(gè)把正則表達(dá)式用于計(jì)算機(jī)領(lǐng)域,并取得了巨大成功。自從
35、那時(shí)起,正則表達(dá)式經(jīng)過(guò)幾個(gè)時(shí)期的發(fā)展,現(xiàn)在的標(biāo)準(zhǔn)已經(jīng)被ISO(國(guó)際標(biāo)準(zhǔn)組織)批準(zhǔn)并被Open Group組織認(rèn)定。 正則表達(dá)式并非一門(mén)專(zhuān)用語(yǔ)言,但它可用于在一個(gè)文件或字符里查找和替代文本的一種標(biāo)準(zhǔn)。它具有兩種標(biāo)準(zhǔn):基本的正則表達(dá)式(BRE),擴(kuò)展的正則表達(dá)式(ERE)。 至今為止,正則表達(dá)式都是基于文本的編輯器和搜索工具中的一個(gè)重要部分,現(xiàn)已廣泛地應(yīng)用于字符格式、匹配、替換和轉(zhuǎn)化等方面。正則表達(dá)式不僅僅是國(guó)際標(biāo)準(zhǔn),還是跨平臺(tái)的,在Unix/Linux、Windows中均可以使用,C+、C#、JavaScript 、VBScript、Python、Perl、PHP等語(yǔ)言都支持它21。 3.1.2
36、 正則表達(dá)式的主要用途 在編寫(xiě)處理字符串的程序或網(wǎng)頁(yè)時(shí),經(jīng)常會(huì)有查找符合某些復(fù)雜規(guī)則的字符串的需要。正則表達(dá)式就是用于描述這些規(guī)則的工具。換句話(huà)說(shuō),正則表達(dá)式就是記錄文本規(guī)則的代碼。 在典型的搜索和替換操作中,必須提供要查找的確切文字。這種技術(shù)對(duì)于靜態(tài)文本中的簡(jiǎn)單搜索和替換任務(wù)可能足夠了,但是由于它缺乏靈活性,因此在搜索動(dòng)態(tài)文本時(shí)就會(huì)遇到困難,有時(shí)甚至是不可能的。而使用正則表達(dá)式,就可以: 測(cè)試字符串的某個(gè)模式。例如,可以對(duì)一個(gè)輸入字符串進(jìn)行測(cè)試,看在該字符串是 12 否存在一個(gè)電話(huà)號(hào)碼模式或一個(gè)信用卡號(hào)碼模式,這稱(chēng)為數(shù)據(jù)有效性驗(yàn)證。 (1) 替換文本:可以在文檔中使用一個(gè)正則表達(dá)式來(lái)標(biāo)識(shí)特定
37、文字,然后可以全部將其刪除,或者替換為別的文字。 (2) 根據(jù)模式匹配從字符串中提取一個(gè)子字符串:可以用來(lái)在文本或輸入字段中查找特定文字。 在本課題中,利用正則表達(dá)式作為匹配工具,在輸入的Gerber文件數(shù)據(jù)段中提取需要的數(shù)據(jù)信息。 例如,利用“s*(%)(%+)(%)”這個(gè)正則表達(dá)式可以匹配讀入行包含的Gerber文件參數(shù)信息;而“s*(GgmM?)s*(d*)s*(%*)(*)”可以匹配出讀入段中的操作碼信息。 3.1.3 支持正則表達(dá)式的常用模板類(lèi)庫(kù) 由于現(xiàn)在仍被廣泛使用的VC+6.0,并沒(méi)有提供對(duì)正則表達(dá)式的直接支持,于是第三方C+正則表達(dá)式庫(kù)就應(yīng)運(yùn)而生。常見(jiàn)的有ATL CATL Re
38、gExp類(lèi)庫(kù)、GRETA 類(lèi)庫(kù)和Boost.Regex類(lèi)庫(kù),其中以GRETA和Boost.Regex最為有名22。GRETA 是微軟研究院推出的一個(gè)正則表達(dá)式模板類(lèi)庫(kù),而B(niǎo)oost是C+ 標(biāo)準(zhǔn)委員會(huì)工作組發(fā)起的一套開(kāi)放源代碼的、可移植的、基于模版C+庫(kù)。其中的Regex正則表達(dá)式庫(kù)應(yīng)用方便靈活,很適合本課題中的解析算法。 Boost提供了boost:basic_regex來(lái)支持正則表達(dá)式23。Boost:basic_regex的設(shè)計(jì)非常類(lèi)似std:basic_string: namespace boost template<class chart, class traits = rege
39、x_trait<charT>, class Allocator = std:allocator<charT>>class basic_regex; typedef basic_regex<char>regex; typedef basic_regex<wchar_t>wregex; 13 3.2 Boost.Regex庫(kù)的主要類(lèi)和函數(shù) 由上一節(jié)中對(duì)于支持正則表達(dá)式模板類(lèi)庫(kù)的介紹可以知道,Boost.Regex庫(kù)具有高度的可移植性,并且支持各種字符類(lèi)型,適合Gerber文件的代碼匹配,能夠靈活地應(yīng)用在Gerber文件的解析中,并達(dá)到理想的匹配
40、速度。 下面是Boost.Regex庫(kù)的主要模板類(lèi): (1) basic_regex類(lèi) 該類(lèi)用來(lái)保存一個(gè)“正則表達(dá)式”的類(lèi)。其定義為: template <class charT, class traits = regex_traits<charT> > class basic_regex; 表3-1 basic_regex類(lèi)的主要構(gòu)造函數(shù)表 basic_regex re basic_regex re(str) 產(chǎn)生空的正則式 正則式為str,str可以為basic_string,也可以是0結(jié)尾的char* 字符串 basic_regex re(re2) basic_r
41、egex re(str,flag) basic_regex re(beg,end) basic_regex re(beg,end,flag) 表3-2 basic_regex類(lèi)的迭代器表 regex:iterator it re.begin( ) re.end( ) 常迭代器類(lèi)型,即const_iterator 返回的是常迭代器,const_iterator 沒(méi)有逆向迭代器 拷貝構(gòu)造 正則式為str,使用flag語(yǔ)法選項(xiàng),flag是一組常量的組合。例如:icase可以使正則式匹配忽略大小寫(xiě) 使用迭代器構(gòu)造正則式??梢允莃asic_string的迭代器,也可以是const char* 使用迭代器
42、構(gòu)造正則式,flag是語(yǔ)法選項(xiàng) (2) sub_match類(lèi) 該類(lèi)繼承于pair<Iterator,Iterator>迭代器組,用來(lái)表示匹配的一個(gè)結(jié)果,定義如下: template <class BidirectionalIterator> 14 class sub_match : public std:pair<BidirectionalIterator, BidirectionalIterator> public: typedef typename iterator_traits<BidirectionalIterator>:value_ty
43、pe value_type; bool matched; ; 這個(gè)類(lèi)表示和處理一個(gè)子串匹配結(jié)果。match成員變量指示匹配是否成功。由于這個(gè)類(lèi)是從std:pair派生的,所以它有first和second這兩個(gè)數(shù)據(jù)成員,如果匹配成功,first保存匹配字符子串的開(kāi)始位置,second保存匹配字符串的結(jié)束位置。 表3-3 sub_match類(lèi)的主要成員函數(shù)表 length( ) operator basic_string < value_type >( ) str( ) 顯式的basic_string轉(zhuǎn)換 返回長(zhǎng)度,即兩個(gè)迭代器之間的距離 隱式的basic_string轉(zhuǎn)換 (3) match_results類(lèi) 這個(gè)類(lèi)處理sub_match的std:vector集合,用來(lái)表示一次搜索或匹配算法的所有結(jié)果,類(lèi)似于vector<sub_match>。定義如下: template <class BidiIter
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于大數(shù)據(jù)的數(shù)字化農(nóng)業(yè)智能決策模型構(gòu)建
- 蘇州科技大學(xué)天平學(xué)院《新零售物流管理》2023-2024學(xué)年第一學(xué)期期末試卷
- 蘇州科技大學(xué)天平學(xué)院《統(tǒng)計(jì)學(xué)》2021-2022學(xué)年第一學(xué)期期末試卷
- 蘇州科技大學(xué)天平學(xué)院《組織行為學(xué)》2022-2023學(xué)年第一學(xué)期期末試卷
- 木材的研究和學(xué)術(shù)進(jìn)展考核試卷
- 《環(huán)保資料》課件
- 創(chuàng)新技術(shù)應(yīng)用的企業(yè)培訓(xùn)方案考核試卷
- 痛痛病鎘中毒的臨床表現(xiàn)
- 危險(xiǎn)品倉(cāng)儲(chǔ)安全培訓(xùn)與教育管理考核試卷
- 低溫倉(cāng)儲(chǔ)與食品產(chǎn)地追溯考核試卷
- 倉(cāng)庫(kù)租賃合同電子版
- 倪海廈人紀(jì)之針灸 全
- 《學(xué)前教育專(zhuān)業(yè)導(dǎo)論》課程教學(xué)大綱
- 小腿免荷支具矯形器制作流程【培訓(xùn)課件】
- DB11-T 1863-2021醫(yī)療機(jī)構(gòu)保潔服務(wù)規(guī)范
- 項(xiàng)目建設(shè)全過(guò)程管理經(jīng)典講義(PPT)
- 電梯維修維保方案
- 2022年云南省中考生物試題及答案解析
- 腦心綜合征課件
- 中國(guó)大唐集團(tuán)公司紀(jì)檢監(jiān)察部門(mén)問(wèn)題線(xiàn)索管理辦法
- AutoCAD2007簡(jiǎn)體中文版正式版(免激活版下載
評(píng)論
0/150
提交評(píng)論