請詳細(xì)解釋CAM350中D碼的意思
補(bǔ)充說明:我是新學(xué)CAM350,看到D碼,誰能幫我詳細(xì)解釋CAM350中D碼的意思,新手,請不要見怪,謝謝
給你做一個非常詳經(jīng)細(xì)的說明吧!
光圈(D-CODE)、繪圖文件(Gerber)介紹
不管你的設(shè)計軟件如何強(qiáng)大,你都必須最終創(chuàng)建Gerber格式的光繪文件才能光繪膠片。很好地理解可以減少您對它的厭惡感。 錯誤地理解光繪文件的內(nèi)容,PCB 設(shè)計系統(tǒng)和光繪系統(tǒng)的關(guān)系是這個行業(yè)中產(chǎn)生廢膠片的最大的原因。
光繪機(jī)的簡單描述在詳細(xì)介紹光繪文件之前,簡單的討論一下光繪機(jī)會使下面的材料更容易理解。
早期的光繪機(jī)是由精確的伺服系統(tǒng)及受它控制的用來裝高對比度膠片的 X-Y 桌面組成的。一個很亮的光源直透過快門,透過光圈,聚焦在膠片上。控制系統(tǒng)把 Gerber 命令成適當(dāng)?shù)淖烂嬉苿?、輪子的轉(zhuǎn)動和快門的開閉。
圖 1 . 光繪機(jī)原理
當(dāng)快門打開,光柱透過光圈把光圈的影像暴光在膠片上。當(dāng)快門打開、桌面同步移動時,線條或條紋被影像到膠片上。使用正確的命令控制桌面的移動、光圈的選擇和快門的操作,光繪機(jī)就能在膠片上生成任何需要的影像。
Gerber Scientific (現(xiàn)在的 Gerber 系統(tǒng))開始通過生產(chǎn)精密的機(jī)器來控制光繪機(jī)工業(yè)?!癎erber”這個詞在光繪業(yè)已經(jīng)名不副實,從現(xiàn)在開始我仍將延用 “Gerber” 文件這種說法來說明 RS274D 光繪命令。
Figure 2. .光繪機(jī)操作
簡潔: 一把雙刃刀Gerber 數(shù)據(jù)最漂亮的地方就在于它的簡潔,它只有四個基本的命令加上對應(yīng)的數(shù)據(jù)。數(shù)據(jù)庫不得不定義得簡單和緊湊是因為第一臺機(jī)器是由打孔紙帶驅(qū)動的。這就需要把盡可能多的信息壓縮到盡可能少的字節(jié)以說明許多“問題”,當(dāng)時我們并沒有預(yù)料到存儲空間是用數(shù)以百計的兆字節(jié)代替數(shù)以百計的字節(jié)來計量的今天。
但是,簡潔也有它自己的代價。Gerber文件缺乏驅(qū)動光繪機(jī)必需的基本信息。這些丟失的信息是由設(shè)計者另外交給光繪操作員的,這正是錯誤的源泉。實際上,定義一種非標(biāo)準(zhǔn)的擴(kuò)展命令的誘惑是無法抗拒的。每個光繪機(jī)生產(chǎn)商都支持在基本GERBER命令上加上一些他們認(rèn)為區(qū)分他們的光繪機(jī)所必須的信息。這樣造成的后果就是一家廠家的特性而另一家卻不支持。
Gerber 文件介紹 下面簡單的舉例說明GERBER格式的內(nèi)容和結(jié)構(gòu):
G90* 1G70* 2G54D10* 3G01X0Y0D02* 4X450Y330D01* 5X455Y300D03* 6G54D11* 7Y250D03* 8Y200D03* 9Y150D03* 10X0Y0D02* 11M02* 12(在右邊的行號不是文件的內(nèi)容。)即使是一個對GERBER文件一竅不通的人也能正確推斷出這里每一行表示一個特殊的機(jī)器命令,而且星號(*)是命令的結(jié)束符。這在有些軟件和教材中被稱為塊(Block),大多數(shù)機(jī)器和軟件只是按塊處理Gerber命令,而不理會行。這里可以看出不同命令的相同之處:使用 G、D、M等命令和X、Y對應(yīng)的數(shù)據(jù)。
G-Codes: 設(shè)置初始條件
Gerber 調(diào)用Gxx命令作為初始碼。大多數(shù)情況下,這些碼被用來配置機(jī)器在繪圖之前的狀態(tài)。有一些G碼對認(rèn)識Gerber文件是很重要的:
G90/G91 相對/絕對坐標(biāo) 在第一行的G90命令告訴機(jī)器數(shù)據(jù)坐標(biāo)是絕對的,每一個坐標(biāo)的設(shè)置都是相對于桌面的原點(0,0)。絕對的反面就是相對,也就是所有的坐標(biāo)都是相對與前一坐標(biāo)增加的。相對坐標(biāo)就是通過G91 命令設(shè)置的。
現(xiàn)在您也許很少看到 G90 ,因為許多軟件把絕對坐標(biāo)作為默認(rèn)的設(shè)置,并且不再標(biāo)注 G90。這就產(chǎn)生了一個問題--許多后來產(chǎn)生的數(shù)據(jù)格式也不再費(fèi)心于 G91 命令。如果您在您的CAM工作站上看到象圖3那樣的一團(tuán)“爆炸圖”,那就有可能是您試圖用絕對坐標(biāo)方式來讀用相對坐標(biāo)方式生成的文件;當(dāng)然,也有可能是您使用相對坐標(biāo)方式來讀絕對坐標(biāo)方式的文件。
圖 3. 用絕對方式顯示相對方式文件。G70/G71
G70/G71 英寸/毫米 :第二行的G70表示下面的數(shù)據(jù)是使用英寸(INCH)作單位的,這也是一個在GERBER文件中很少出現(xiàn)但很重要的G碼。在美國和歐洲大部地區(qū)習(xí)慣使用英寸,而在世界大部分地區(qū)卻習(xí)慣使用毫米(millimeters)做單位,或者兩者都使用。G71就是表明單位是公制。 1英寸等于25.4毫米。
G54. D碼選擇 :在第三行的G54是用來表明光圈轉(zhuǎn)換的,它是最常用的G碼,是用來指示光繪機(jī)把光孔輪轉(zhuǎn)到適當(dāng)?shù)奈恢?,這個位置是由緊跟在G54后面的Dxx來指示的?,F(xiàn)在G54常常被省略,只是靠D碼(除D01、D02、D03)來指示光繪機(jī)變換光圈。
G04:注解命令 大多數(shù)的光繪機(jī)都會忽略G04后面的內(nèi)容。G04就好象MS-DOS批處理文件中的“REM”命令一樣,它后面的內(nèi)容只是為了幫助人們更容易理解文件.
G01:畫直線命令 在一些光繪機(jī)中要求圓弧命令必須用G01配合,G01只是表示光繪機(jī)桌面的移動是直線的。
畫圓弧命令:G02/G03 和 G74/G75
如果有必要而且Gerber文件里有相應(yīng)的命令,Gerber 光繪機(jī)也能畫圓弧。
在很早的時候,圓弧是很少用到PCB(print circuit board,印刷電路板)設(shè)計中。后來,為了平衡板材的張力、還有一些是為了減小高速電路的高頻發(fā)射,在PCB設(shè)計中開始使用圓弧。并且使Gerber命令有了相應(yīng)的發(fā)展。
基本的圓弧命令語法:
G##X#####Y#####I#####J#####D##*
實例: G02X40Y30150J0D01*
G##代表GO2、G03。G02是指示光繪機(jī)順時針畫弧,G03是指示光繪機(jī)逆時針畫弧。I,J表示圓弧的另一個重要的點--圓心。這些命令最好是不要省略。
下面我們將花費(fèi)一點時間來詳細(xì)討論畫圓命令。早期的光繪機(jī)只能畫弧度不超過90度的圓弧,現(xiàn)在的光繪機(jī)已經(jīng)能畫360度的圓弧。這就留下一個問題:360度的弧的數(shù)據(jù)格式也同90度一樣,只是在文件頭上用G74、G75標(biāo)出,當(dāng)光繪機(jī)讀到G74時,它就開始以90度方式處理下面的數(shù)據(jù);當(dāng)它發(fā)現(xiàn)G75時就以360度的方式處理下面的數(shù)據(jù)。如果您的數(shù)據(jù)沒有錯,而且您的CAM軟件能正確處理圓弧,那么在您處理90度文件時,您的工作站的顯示器上就不應(yīng)該出弧度大于1/4圓的弧;相反并不成立,處理360度文件時,有可能看到弧度很小的弧,這是因為大多數(shù)“新”光繪機(jī)在設(shè)計時就考慮到兼容性問題。
現(xiàn)在我們來研究一下光繪機(jī)是如何處理圓命令的,剛剛了解Gerber文件的人大多數(shù)會認(rèn)為G##X#####Y#####I#####J#####D##*會包含一個圓弧的所有內(nèi)容,其實不然,它前面的一個點也是很重要的,這個點就是圓弧的起點,而G##后面的點是圓弧的終點,I,J是圓心相對與起點的相對坐標(biāo)。所以大多數(shù)軟件生成的圓弧命令是這樣的:G01X#####Y#####D02*G##X#####Y#####I#####J#####D01*
順便提一下,您選購您的CAM軟件時一定要試一試它處理圓弧的能力。
畫線和畫點命令 D01、D02、D03
D碼,簡單講就是第一位字符是“D”。Gerber 文件中有三個D碼是用來控制桌面沿著X-Y移動的。
D01 (D1): 打開快門,同時移動桌面到對應(yīng)的X-Y坐標(biāo)。D02 (D2): 關(guān)閉快門,同時移動桌面到對應(yīng)的X-Y坐標(biāo)。D03 (D3): 打開快門,同時移動桌面到對應(yīng)的X-Y坐標(biāo)。然后快速地打開、關(guān)閉快門, 這樣就形成一個曝光點。
D01 是一個畫線的命令;D02 是一個只移動桌面而不曝光膠片的命令。 打個比方,D01、 D02 就好象筆式光繪儀中的落筆畫線和提筆移動筆架。
D03 是“閃爍”命令,桌面移動時快門是關(guān)閉的,當(dāng)桌面移動到對應(yīng)的坐標(biāo)時快門打開一下又馬上關(guān)閉--這樣就會在膠片上留下光圈的影像。 D03在畫印刷電路板上的焊盤時是一個十分有效的命令。
D01、D02、D03 命令總是跟在他們對應(yīng)的數(shù)據(jù)后面,正如下面的例子:
X0Y0D02*X450Y330D01*X455Y300D03*這段數(shù)據(jù)將讓光繪機(jī)做如下動作:關(guān)閉快門,移動桌面到原點;打開快門,移動桌面到450,330;(這樣就從0,0畫線到450,330。)關(guān)閉快門,移動到455,300,打開快門,關(guān)閉快門。
光圈標(biāo)志--D碼(D-CODE) D10-D999不象 D01、D02、D03 ,D10到D999是數(shù)據(jù)而不是命令,它們是標(biāo)注光圈或光圈輪上的位置。早期的光繪機(jī)使用的是一種有24孔/槽的光圈輪。
表1是早期的光繪機(jī)的光孔與D碼的對應(yīng)表。
表 1. D碼(D-CODE)與光圈(APERTURE)的對應(yīng)
D碼 光圈序號 D碼 光圈序號 10 1 20 13 11 2 21 14 12 3 22 15 13 4 23 16 14 5 24 17 15 6 25 18 16 7 26 19 17 8 27 20 18 9 28 21 19 10 29 22 70 11 72 23 71 12 73 24可以看出從D10到D19是按正常順序排列的,緊跟在后面就是D70、D71,而D20被排到第13位。從D20到D29依次順延。到D30時光圈序號應(yīng)該是23,但是D72、D73被插到D30之前。大多數(shù)光繪、CAM軟件需要您根據(jù)D碼輸入光圈的信息(形狀、大小),少數(shù)軟件是按光圈序號輸入的(此時就需要根據(jù)上面的對應(yīng)表重新排列)。
值得提一下的是D3到D9是一種特殊碼,最早時是用來表示虛線、點畫線等特殊線段,現(xiàn)在已經(jīng)很少用到它們了,即使用到也只是某些落后的光繪機(jī)的專用代碼,它們的具體含義就請查閱光繪機(jī)的說明書。
雜項命令 M-碼Gerber 文件中最常用的M碼是 M00、M01、M02。
我們經(jīng)常在文件末尾看到M02。M00/M01/M02都是表示Gerber 文件結(jié)束,只不過不同的機(jī)器使用不同的M碼,而大多數(shù)軟件是使用M02。但是要注意的是有一些軟件為了確保在讀入文件時不會和其它的數(shù)據(jù)混合,在文件頭上加了M02等M碼,而其它的軟件一旦讀到“M02”就認(rèn)為文件已結(jié)束,從而會是數(shù)據(jù)丟失。另外一種情況是,有的軟件喜歡把多個文件合并在一起,中間用“M02”區(qū)分,這些軟件在處理這種文件時會自動把數(shù)據(jù)分開,但是其它軟件就不一定會如此處理了。
還有一些軟件會在文件頭上加上M碼作為文件的標(biāo)識符,具體是何種M碼各種軟件各不相同。但現(xiàn)在大多數(shù)軟件都會忽
X,Y 坐標(biāo)數(shù)據(jù) 正是大量的坐標(biāo)數(shù)據(jù)構(gòu)成了Gerber文件,而Gerber文件中最多的就是X-Y坐標(biāo)數(shù)據(jù),只有壓縮坐標(biāo)數(shù)據(jù)才能達(dá)到壓縮Gerber文件的目的。所以,您要手工排版Gerber文件中的坐標(biāo)是非常困難的,因為在Gerber規(guī)范中已經(jīng)對坐標(biāo)數(shù)據(jù)作了一些處理。
在X、Y數(shù)據(jù)中省略了小數(shù)點
省略了不必要的零(前面的或后面的)
大部分軟件只輸出變化X或Y數(shù)據(jù)
省略小數(shù)點的規(guī)則
與其它字符相比小數(shù)點是最“不重用”的一個,特別是事先規(guī)定了它的位置時。實際上Gerber文件也的確是這樣做的,在Gerber文件中您是很難看到一個小數(shù)點的。小數(shù)點的位置是人為地設(shè)置,由光繪機(jī)控制軟件來定位的。新手門常犯的一個錯誤就是主觀的用他們常用的數(shù)據(jù)格式來讀新數(shù)據(jù),甚至根本就不知道省略小數(shù)點這回事。
請看下面這段Gerber命令:
X00560Y00320D02*X00670Y00305D01*X00700Y00305D01*假定這段命令是使用英寸作單位的。第一句的意思很容易理解--桌面移動到點(00560,00320)處,而不畫線??墒切碌膯栴}又產(chǎn)生了,(00560,00320)到底表示的哪一點?是(5.6Inch,3.2Inch),還是(0.56Inch,0.32Inch),亦或是(0.056Inch,0.032Inch)?誰也不能說清楚。但是如果設(shè)計者告訴您,在小數(shù)點前有幾位、小數(shù)點后面有幾位,那您就能快速的確定這些數(shù)據(jù)到底代表的是多少。比如,設(shè)計師告訴您這段Gerber文件是英制2-3,那么您就能清楚地知道00560表示0.56Inch(00.560),00320是0.32Inch(00.320)。
因此:當(dāng)別人給您文件時一定要問清楚數(shù)據(jù)格式;當(dāng)您給別人文件時一定要告訴他文件格式。如果您的客戶也不知道數(shù)據(jù)格式,嘿嘿!您慘了。怎么辦?猜吧--!仔細(xì)聽好了,下面告訴您一些猜格式的技巧(這可是密笈嗷)。
方法一:根據(jù)板面大小
硬質(zhì)板中很少有板面尺寸大于20Inch的,而大于20Inch X 20Inch 的是沒有的。據(jù)此,如果您讀出來的圖形大于20Inch,那就是小數(shù)點前的位數(shù)太多了。相反,如果您讀出倆的圖形都堆到原點附近,那十有八九是小數(shù)點后的位數(shù)太多了(也就是說,小數(shù)點前的位數(shù)太少了)。
這里需要注意的是,小數(shù)點前的位數(shù)加上小數(shù)點后的位數(shù)一定要等于Gerber文件中最長的數(shù)的位數(shù),上例中就是5(2+3=5)。
方法二:根據(jù)已知尺寸
如果您知道一些關(guān)于板子的尺寸,那就好辦多了。您只要不停的試,大了就把小數(shù)點前的位數(shù)變小(小數(shù)點后的位數(shù)同時變大);小了就把小數(shù)點后的位數(shù)變小(小數(shù)點前的位數(shù)同時變大),如果單位沒有搞錯,一兩次就能正確了。如果您沒有任何尺寸,那您只能找板子上的器件。有一些器件,如DIP(雙列直插集成電路)、PGA封裝和一些插座,它們引腳的中心距離是0.1Inch(2.54mm),根據(jù)這一點您也能大概地確定數(shù)據(jù)格式。
省略前面和后面的零在Gerber文件中還有什么東西可以省略?很自然,誰都會想到那些在數(shù)學(xué)中被稱為“無效零”的玩意??墒怯檬裁匆?guī)則?
我們再回頭看上面的例子中第一行X00560Y00320D02*,現(xiàn)在我們把00560前面的零省略變成560,那么根據(jù)客戶告訴我們的數(shù)據(jù)格式是英制2-3,那么我們就可以推斷出560代表的數(shù)據(jù)是什么。因為是2-3制的,我們先保證小數(shù)點后面的三位,那560就變成.560,我想您應(yīng)該知道.560是什么意思,反正我是知道!
--這樣處理方法就是省前零(Leading zero)。
下面我們就把上面的例子生成省前零,您能把它們試著恢復(fù)嗎?。
不省零 省前零 X00560Y00320D02* X560Y230D2*X00670Y00305D01* X670Y305D1*X00700Y00305D01* X700Y305D1* 現(xiàn)在我們來數(shù)數(shù)這兩種格式的字節(jié)數(shù),不省零占用48字節(jié),省前零占用33字節(jié)。節(jié)約了31.2%,而圖形卻是一樣的。您瞧多好的主意,這對當(dāng)時節(jié)約打孔紙帶是多么有效,多么的重要。
還有一種省零的方法,省去后面的無效零。也就是保留前面的無效零而去除后面的無效零,恢復(fù)時只要保證格式前面的位數(shù),來確定小數(shù)點的位置。下面的例子說明了省后零(Trailing Zero)。
不省零 省后零 X00560Y00320D02* X0056Y0032D2*X00670Y00305D01* X0067Y00305D1*X00700Y00305D01* X007Y00305D1* 除了這兩種省零的方法,還有些軟件喜歡把前后零都省去,這樣一來就必須保留小數(shù)點。如果您的軟件不支持小數(shù)點,那您就趕快找軟件去編輯它們吧,或者去書店買一本 MS-OFFICE ,我知道用MS-WORD和MS-EXCEL能把它們轉(zhuǎn)換成您所需要的格式。
因此:當(dāng)您把GERBER文件給別人時一定要告訴他是省前零還是省后零;當(dāng)別人給您文件時一定要問清楚是省前零還是省后零。如果您不知道是省前零,還是省后零,您也可以猜,而且這比猜格式容易多了。只要用字編輯軟件打開它看一看,如果前面有零就有可能是省后零;如果后面有零就有可能是省前零。唯一要注意的是,有些軟件在處理省前零時只把小數(shù)點前的零省掉,如00.050就成了050,省后零也一樣;而有些軟件則是把前面的零都省略,如00.050就成了50,省后零同樣。這時就需要補(bǔ)零定小數(shù)點。
有樣式(Modal)數(shù)據(jù)坐標(biāo)到現(xiàn)在為止,您已經(jīng)知道省略小數(shù)點、省零?;蛟S您認(rèn)為您已經(jīng)完全了解Gerber數(shù)據(jù)了,千萬別自滿。請您回顧一下光繪機(jī)的工作原理,您也許又會產(chǎn)生新的想法。光繪機(jī)的X-Y的移動是相互獨立的,而且Gerber數(shù)據(jù)中也有許多點排在與X或Y平行的線上。說到這里,您也須明白還有一種方法可以壓縮Gerber文件。
“為什么不讓機(jī)器記住X、Y 的數(shù)值,與下一個點比較,只輸出變化的數(shù)據(jù)?”好辦法!Gerber數(shù)據(jù)格式定義者們也想到了這一點,也采用了這種方法,這就是有樣式數(shù)據(jù)。
下面就是一段無樣式數(shù)據(jù)與有樣式數(shù)據(jù)的比較。
所有數(shù)據(jù) 有樣式數(shù)據(jù) X560Y230D2* X560Y230D2*X670Y305D1* X670Y305D1*X700Y305D1* X700D1* 當(dāng)機(jī)器執(zhí)行完一句命令后它并沒有把數(shù)據(jù)刪除,再執(zhí)行下一句時,它只是把有的數(shù)據(jù)填進(jìn)去而生成一個新的坐標(biāo)。如機(jī)器執(zhí)行完第二句時,它的存儲器中的數(shù)據(jù)是X-0.67,Y-0.305(假定格式是英制2-3),在讀入第三句時機(jī)器把0.7填進(jìn)X,Y沒有就跳過,那么新的數(shù)據(jù)就是X-0.7,y-0.305。
如果您的設(shè)計軟件在生成Gerber數(shù)據(jù)時有自動排序功能,那您使用這種數(shù)據(jù)格式會很有效果。同時它不象數(shù)據(jù)格式和省零方式那樣必須知道,所有的光繪機(jī)及光繪處理軟件都支持兩種數(shù)據(jù)。
有樣式命令
有樣式數(shù)據(jù)是一種很好的方法,這種方法同樣也適用于命令。比如說,您有一段連續(xù)的線條要畫,那么在Gerber中就表現(xiàn)為一長串以D01*結(jié)束的塊(block),為什么不能把它們省略直到下一個不同的命令出現(xiàn)呢?當(dāng)然可以,這種處理方法就是有樣式命令方式。
D1 not modal
D1 modal
X560Y230D2*
X560Y230D2*
X670Y305D1*
X670Y305D1*
X700D1*
X700*
X730D1*
X730*
X760D1*
X760*
Y335D1*
Y335D1*
由上表看來,我們都希望所有命令都使用有樣式命令。可是總有一兩處不如意的地方,首先是閃爍命令D3/D03,有許多光繪機(jī)非常的執(zhí)著地希望在每一個閃爍命令后能看到D3/D03。如MDA公司的FIRE9000系列,我們在CAM工作站上很清楚的看到焊盤,可是光繪出的膠片上就是沒有,后來我們在一些閃爍命令后加上D03*,問題就得到了解決。所以如果您遇到這種情況,不妨試一試無樣式數(shù)據(jù)(No modal)。
另外一個不安份的命令是畫圓弧命令G02/G03,許多光繪機(jī)在G02/G03命令時必須使用畫直線命令--G01。
說得太多,希望能對你有用!請加入印刷電路板群:41959238 一起進(jìn)步!
呵呵
光圈(D-CODE)、繪圖文件(Gerber)介紹
不管你的設(shè)計軟件如何強(qiáng)大,你都必須最終創(chuàng)建Gerber格式的光繪文件才能光繪膠片。很好地理解可以減少您對它的厭惡感。 錯誤地理解光繪文件的內(nèi)容,PCB 設(shè)計系統(tǒng)和光繪系統(tǒng)的關(guān)系是這個行業(yè)中產(chǎn)生廢膠片的最大的原因。
光繪機(jī)的簡單描述在詳細(xì)介紹光繪文件之前,簡單的討論一下光繪機(jī)會使下面的材料更容易理解。
早期的光繪機(jī)是由精確的伺服系統(tǒng)及受它控制的用來裝高對比度膠片的 X-Y 桌面組成的。一個很亮的光源直透過快門,透過光圈,聚焦在膠片上。控制系統(tǒng)把 Gerber 命令成適當(dāng)?shù)淖烂嬉苿?、輪子的轉(zhuǎn)動和快門的開閉。
圖 1 . 光繪機(jī)原理
當(dāng)快門打開,光柱透過光圈把光圈的影像暴光在膠片上。當(dāng)快門打開、桌面同步移動時,線條或條紋被影像到膠片上。使用正確的命令控制桌面的移動、光圈的選擇和快門的操作,光繪機(jī)就能在膠片上生成任何需要的影像。
Gerber Scientific (現(xiàn)在的 Gerber 系統(tǒng))開始通過生產(chǎn)精密的機(jī)器來控制光繪機(jī)工業(yè)?!癎erber”這個詞在光繪業(yè)已經(jīng)名不副實,從現(xiàn)在開始我仍將延用 “Gerber” 文件這種說法來說明 RS274D 光繪命令。
Figure 2. .光繪機(jī)操作
簡潔: 一把雙刃刀Gerber 數(shù)據(jù)最漂亮的地方就在于它的簡潔,它只有四個基本的命令加上對應(yīng)的數(shù)據(jù)。數(shù)據(jù)庫不得不定義得簡單和緊湊是因為第一臺機(jī)器是由打孔紙帶驅(qū)動的。這就需要把盡可能多的信息壓縮到盡可能少的字節(jié)以說明許多“問題”,當(dāng)時我們并沒有預(yù)料到存儲空間是用數(shù)以百計的兆字節(jié)代替數(shù)以百計的字節(jié)來計量的今天。
但是,簡潔也有它自己的代價。Gerber文件缺乏驅(qū)動光繪機(jī)必需的基本信息。這些丟失的信息是由設(shè)計者另外交給光繪操作員的,這正是錯誤的源泉。實際上,定義一種非標(biāo)準(zhǔn)的擴(kuò)展命令的誘惑是無法抗拒的。每個光繪機(jī)生產(chǎn)商都支持在基本GERBER命令上加上一些他們認(rèn)為區(qū)分他們的光繪機(jī)所必須的信息。這樣造成的后果就是一家廠家的特性而另一家卻不支持。
Gerber 文件介紹 下面簡單的舉例說明GERBER格式的內(nèi)容和結(jié)構(gòu):
G90* 1G70* 2G54D10* 3G01X0Y0D02* 4X450Y330D01* 5X455Y300D03* 6G54D11* 7Y250D03* 8Y200D03* 9Y150D03* 10X0Y0D02* 11M02* 12(在右邊的行號不是文件的內(nèi)容。)即使是一個對GERBER文件一竅不通的人也能正確推斷出這里每一行表示一個特殊的機(jī)器命令,而且星號(*)是命令的結(jié)束符。這在有些軟件和教材中被稱為塊(Block),大多數(shù)機(jī)器和軟件只是按塊處理Gerber命令,而不理會行。這里可以看出不同命令的相同之處:使用 G、D、M等命令和X、Y對應(yīng)的數(shù)據(jù)。
G-Codes: 設(shè)置初始條件
Gerber 調(diào)用Gxx命令作為初始碼。大多數(shù)情況下,這些碼被用來配置機(jī)器在繪圖之前的狀態(tài)。有一些G碼對認(rèn)識Gerber文件是很重要的:
G90/G91 相對/絕對坐標(biāo) 在第一行的G90命令告訴機(jī)器數(shù)據(jù)坐標(biāo)是絕對的,每一個坐標(biāo)的設(shè)置都是相對于桌面的原點(0,0)。絕對的反面就是相對,也就是所有的坐標(biāo)都是相對與前一坐標(biāo)增加的。相對坐標(biāo)就是通過G91 命令設(shè)置的。
現(xiàn)在您也許很少看到 G90 ,因為許多軟件把絕對坐標(biāo)作為默認(rèn)的設(shè)置,并且不再標(biāo)注 G90。這就產(chǎn)生了一個問題--許多后來產(chǎn)生的數(shù)據(jù)格式也不再費(fèi)心于 G91 命令。如果您在您的CAM工作站上看到象圖3那樣的一團(tuán)“爆炸圖”,那就有可能是您試圖用絕對坐標(biāo)方式來讀用相對坐標(biāo)方式生成的文件;當(dāng)然,也有可能是您使用相對坐標(biāo)方式來讀絕對坐標(biāo)方式的文件。
圖 3. 用絕對方式顯示相對方式文件。G70/G71
G70/G71 英寸/毫米 :第二行的G70表示下面的數(shù)據(jù)是使用英寸(INCH)作單位的,這也是一個在GERBER文件中很少出現(xiàn)但很重要的G碼。在美國和歐洲大部地區(qū)習(xí)慣使用英寸,而在世界大部分地區(qū)卻習(xí)慣使用毫米(millimeters)做單位,或者兩者都使用。G71就是表明單位是公制。 1英寸等于25.4毫米。
G54. D碼選擇 :在第三行的G54是用來表明光圈轉(zhuǎn)換的,它是最常用的G碼,是用來指示光繪機(jī)把光孔輪轉(zhuǎn)到適當(dāng)?shù)奈恢?,這個位置是由緊跟在G54后面的Dxx來指示的?,F(xiàn)在G54常常被省略,只是靠D碼(除D01、D02、D03)來指示光繪機(jī)變換光圈。
G04:注解命令 大多數(shù)的光繪機(jī)都會忽略G04后面的內(nèi)容。G04就好象MS-DOS批處理文件中的“REM”命令一樣,它后面的內(nèi)容只是為了幫助人們更容易理解文件.
G01:畫直線命令 在一些光繪機(jī)中要求圓弧命令必須用G01配合,G01只是表示光繪機(jī)桌面的移動是直線的。
畫圓弧命令:G02/G03 和 G74/G75
如果有必要而且Gerber文件里有相應(yīng)的命令,Gerber 光繪機(jī)也能畫圓弧。
在很早的時候,圓弧是很少用到PCB(print circuit board,印刷電路板)設(shè)計中。后來,為了平衡板材的張力、還有一些是為了減小高速電路的高頻發(fā)射,在PCB設(shè)計中開始使用圓弧。并且使Gerber命令有了相應(yīng)的發(fā)展。
基本的圓弧命令語法:
G##X#####Y#####I#####J#####D##*
實例: G02X40Y30150J0D01*
G##代表GO2、G03。G02是指示光繪機(jī)順時針畫弧,G03是指示光繪機(jī)逆時針畫弧。I,J表示圓弧的另一個重要的點--圓心。這些命令最好是不要省略。
下面我們將花費(fèi)一點時間來詳細(xì)討論畫圓命令。早期的光繪機(jī)只能畫弧度不超過90度的圓弧,現(xiàn)在的光繪機(jī)已經(jīng)能畫360度的圓弧。這就留下一個問題:360度的弧的數(shù)據(jù)格式也同90度一樣,只是在文件頭上用G74、G75標(biāo)出,當(dāng)光繪機(jī)讀到G74時,它就開始以90度方式處理下面的數(shù)據(jù);當(dāng)它發(fā)現(xiàn)G75時就以360度的方式處理下面的數(shù)據(jù)。如果您的數(shù)據(jù)沒有錯,而且您的CAM軟件能正確處理圓弧,那么在您處理90度文件時,您的工作站的顯示器上就不應(yīng)該出弧度大于1/4圓的弧;相反并不成立,處理360度文件時,有可能看到弧度很小的弧,這是因為大多數(shù)“新”光繪機(jī)在設(shè)計時就考慮到兼容性問題。
現(xiàn)在我們來研究一下光繪機(jī)是如何處理圓命令的,剛剛了解Gerber文件的人大多數(shù)會認(rèn)為G##X#####Y#####I#####J#####D##*會包含一個圓弧的所有內(nèi)容,其實不然,它前面的一個點也是很重要的,這個點就是圓弧的起點,而G##后面的點是圓弧的終點,I,J是圓心相對與起點的相對坐標(biāo)。所以大多數(shù)軟件生成的圓弧命令是這樣的:G01X#####Y#####D02*G##X#####Y#####I#####J#####D01*
順便提一下,您選購您的CAM軟件時一定要試一試它處理圓弧的能力。
畫線和畫點命令 D01、D02、D03
D碼,簡單講就是第一位字符是“D”。Gerber 文件中有三個D碼是用來控制桌面沿著X-Y移動的。
D01 (D1): 打開快門,同時移動桌面到對應(yīng)的X-Y坐標(biāo)。D02 (D2): 關(guān)閉快門,同時移動桌面到對應(yīng)的X-Y坐標(biāo)。D03 (D3): 打開快門,同時移動桌面到對應(yīng)的X-Y坐標(biāo)。然后快速地打開、關(guān)閉快門, 這樣就形成一個曝光點。
D01 是一個畫線的命令;D02 是一個只移動桌面而不曝光膠片的命令。 打個比方,D01、 D02 就好象筆式光繪儀中的落筆畫線和提筆移動筆架。
D03 是“閃爍”命令,桌面移動時快門是關(guān)閉的,當(dāng)桌面移動到對應(yīng)的坐標(biāo)時快門打開一下又馬上關(guān)閉--這樣就會在膠片上留下光圈的影像。 D03在畫印刷電路板上的焊盤時是一個十分有效的命令。
D01、D02、D03 命令總是跟在他們對應(yīng)的數(shù)據(jù)后面,正如下面的例子:
X0Y0D02*X450Y330D01*X455Y300D03*這段數(shù)據(jù)將讓光繪機(jī)做如下動作:關(guān)閉快門,移動桌面到原點;打開快門,移動桌面到450,330;(這樣就從0,0畫線到450,330。)關(guān)閉快門,移動到455,300,打開快門,關(guān)閉快門。
光圈標(biāo)志--D碼(D-CODE) D10-D999不象 D01、D02、D03 ,D10到D999是數(shù)據(jù)而不是命令,它們是標(biāo)注光圈或光圈輪上的位置。早期的光繪機(jī)使用的是一種有24孔/槽的光圈輪。
表1是早期的光繪機(jī)的光孔與D碼的對應(yīng)表。
表 1. D碼(D-CODE)與光圈(APERTURE)的對應(yīng)
D碼 光圈序號 D碼 光圈序號 10 1 20 13 11 2 21 14 12 3 22 15 13 4 23 16 14 5 24 17 15 6 25 18 16 7 26 19 17 8 27 20 18 9 28 21 19 10 29 22 70 11 72 23 71 12 73 24可以看出從D10到D19是按正常順序排列的,緊跟在后面就是D70、D71,而D20被排到第13位。從D20到D29依次順延。到D30時光圈序號應(yīng)該是23,但是D72、D73被插到D30之前。大多數(shù)光繪、CAM軟件需要您根據(jù)D碼輸入光圈的信息(形狀、大小),少數(shù)軟件是按光圈序號輸入的(此時就需要根據(jù)上面的對應(yīng)表重新排列)。
值得提一下的是D3到D9是一種特殊碼,最早時是用來表示虛線、點畫線等特殊線段,現(xiàn)在已經(jīng)很少用到它們了,即使用到也只是某些落后的光繪機(jī)的專用代碼,它們的具體含義就請查閱光繪機(jī)的說明書。
雜項命令 M-碼Gerber 文件中最常用的M碼是 M00、M01、M02。
我們經(jīng)常在文件末尾看到M02。M00/M01/M02都是表示Gerber 文件結(jié)束,只不過不同的機(jī)器使用不同的M碼,而大多數(shù)軟件是使用M02。但是要注意的是有一些軟件為了確保在讀入文件時不會和其它的數(shù)據(jù)混合,在文件頭上加了M02等M碼,而其它的軟件一旦讀到“M02”就認(rèn)為文件已結(jié)束,從而會是數(shù)據(jù)丟失。另外一種情況是,有的軟件喜歡把多個文件合并在一起,中間用“M02”區(qū)分,這些軟件在處理這種文件時會自動把數(shù)據(jù)分開,但是其它軟件就不一定會如此處理了。
還有一些軟件會在文件頭上加上M碼作為文件的標(biāo)識符,具體是何種M碼各種軟件各不相同。但現(xiàn)在大多數(shù)軟件都會忽
X,Y 坐標(biāo)數(shù)據(jù) 正是大量的坐標(biāo)數(shù)據(jù)構(gòu)成了Gerber文件,而Gerber文件中最多的就是X-Y坐標(biāo)數(shù)據(jù),只有壓縮坐標(biāo)數(shù)據(jù)才能達(dá)到壓縮Gerber文件的目的。所以,您要手工排版Gerber文件中的坐標(biāo)是非常困難的,因為在Gerber規(guī)范中已經(jīng)對坐標(biāo)數(shù)據(jù)作了一些處理。
在X、Y數(shù)據(jù)中省略了小數(shù)點
省略了不必要的零(前面的或后面的)
大部分軟件只輸出變化X或Y數(shù)據(jù)
省略小數(shù)點的規(guī)則
與其它字符相比小數(shù)點是最“不重用”的一個,特別是事先規(guī)定了它的位置時。實際上Gerber文件也的確是這樣做的,在Gerber文件中您是很難看到一個小數(shù)點的。小數(shù)點的位置是人為地設(shè)置,由光繪機(jī)控制軟件來定位的。新手門常犯的一個錯誤就是主觀的用他們常用的數(shù)據(jù)格式來讀新數(shù)據(jù),甚至根本就不知道省略小數(shù)點這回事。
請看下面這段Gerber命令:
X00560Y00320D02*X00670Y00305D01*X00700Y00305D01*假定這段命令是使用英寸作單位的。第一句的意思很容易理解--桌面移動到點(00560,00320)處,而不畫線??墒切碌膯栴}又產(chǎn)生了,(00560,00320)到底表示的哪一點?是(5.6Inch,3.2Inch),還是(0.56Inch,0.32Inch),亦或是(0.056Inch,0.032Inch)?誰也不能說清楚。但是如果設(shè)計者告訴您,在小數(shù)點前有幾位、小數(shù)點后面有幾位,那您就能快速的確定這些數(shù)據(jù)到底代表的是多少。比如,設(shè)計師告訴您這段Gerber文件是英制2-3,那么您就能清楚地知道00560表示0.56Inch(00.560),00320是0.32Inch(00.320)。
因此:當(dāng)別人給您文件時一定要問清楚數(shù)據(jù)格式;當(dāng)您給別人文件時一定要告訴他文件格式。如果您的客戶也不知道數(shù)據(jù)格式,嘿嘿!您慘了。怎么辦?猜吧--!仔細(xì)聽好了,下面告訴您一些猜格式的技巧(這可是密笈嗷)。
方法一:根據(jù)板面大小
硬質(zhì)板中很少有板面尺寸大于20Inch的,而大于20Inch X 20Inch 的是沒有的。據(jù)此,如果您讀出來的圖形大于20Inch,那就是小數(shù)點前的位數(shù)太多了。相反,如果您讀出倆的圖形都堆到原點附近,那十有八九是小數(shù)點后的位數(shù)太多了(也就是說,小數(shù)點前的位數(shù)太少了)。
這里需要注意的是,小數(shù)點前的位數(shù)加上小數(shù)點后的位數(shù)一定要等于Gerber文件中最長的數(shù)的位數(shù),上例中就是5(2+3=5)。
方法二:根據(jù)已知尺寸
如果您知道一些關(guān)于板子的尺寸,那就好辦多了。您只要不停的試,大了就把小數(shù)點前的位數(shù)變小(小數(shù)點后的位數(shù)同時變大);小了就把小數(shù)點后的位數(shù)變小(小數(shù)點前的位數(shù)同時變大),如果單位沒有搞錯,一兩次就能正確了。如果您沒有任何尺寸,那您只能找板子上的器件。有一些器件,如DIP(雙列直插集成電路)、PGA封裝和一些插座,它們引腳的中心距離是0.1Inch(2.54mm),根據(jù)這一點您也能大概地確定數(shù)據(jù)格式。
省略前面和后面的零在Gerber文件中還有什么東西可以省略?很自然,誰都會想到那些在數(shù)學(xué)中被稱為“無效零”的玩意??墒怯檬裁匆?guī)則?
我們再回頭看上面的例子中第一行X00560Y00320D02*,現(xiàn)在我們把00560前面的零省略變成560,那么根據(jù)客戶告訴我們的數(shù)據(jù)格式是英制2-3,那么我們就可以推斷出560代表的數(shù)據(jù)是什么。因為是2-3制的,我們先保證小數(shù)點后面的三位,那560就變成.560,我想您應(yīng)該知道.560是什么意思,反正我是知道!
--這樣處理方法就是省前零(Leading zero)。
下面我們就把上面的例子生成省前零,您能把它們試著恢復(fù)嗎?。
不省零 省前零 X00560Y00320D02* X560Y230D2*X00670Y00305D01* X670Y305D1*X00700Y00305D01* X700Y305D1* 現(xiàn)在我們來數(shù)數(shù)這兩種格式的字節(jié)數(shù),不省零占用48字節(jié),省前零占用33字節(jié)。節(jié)約了31.2%,而圖形卻是一樣的。您瞧多好的主意,這對當(dāng)時節(jié)約打孔紙帶是多么有效,多么的重要。
還有一種省零的方法,省去后面的無效零。也就是保留前面的無效零而去除后面的無效零,恢復(fù)時只要保證格式前面的位數(shù),來確定小數(shù)點的位置。下面的例子說明了省后零(Trailing Zero)。
不省零 省后零 X00560Y00320D02* X0056Y0032D2*X00670Y00305D01* X0067Y00305D1*X00700Y00305D01* X007Y00305D1* 除了這兩種省零的方法,還有些軟件喜歡把前后零都省去,這樣一來就必須保留小數(shù)點。如果您的軟件不支持小數(shù)點,那您就趕快找軟件去編輯它們吧,或者去書店買一本 MS-OFFICE ,我知道用MS-WORD和MS-EXCEL能把它們轉(zhuǎn)換成您所需要的格式。
因此:當(dāng)您把GERBER文件給別人時一定要告訴他是省前零還是省后零;當(dāng)別人給您文件時一定要問清楚是省前零還是省后零。如果您不知道是省前零,還是省后零,您也可以猜,而且這比猜格式容易多了。只要用字編輯軟件打開它看一看,如果前面有零就有可能是省后零;如果后面有零就有可能是省前零。唯一要注意的是,有些軟件在處理省前零時只把小數(shù)點前的零省掉,如00.050就成了050,省后零也一樣;而有些軟件則是把前面的零都省略,如00.050就成了50,省后零同樣。這時就需要補(bǔ)零定小數(shù)點。
有樣式(Modal)數(shù)據(jù)坐標(biāo)到現(xiàn)在為止,您已經(jīng)知道省略小數(shù)點、省零?;蛟S您認(rèn)為您已經(jīng)完全了解Gerber數(shù)據(jù)了,千萬別自滿。請您回顧一下光繪機(jī)的工作原理,您也許又會產(chǎn)生新的想法。光繪機(jī)的X-Y的移動是相互獨立的,而且Gerber數(shù)據(jù)中也有許多點排在與X或Y平行的線上。說到這里,您也須明白還有一種方法可以壓縮Gerber文件。
“為什么不讓機(jī)器記住X、Y 的數(shù)值,與下一個點比較,只輸出變化的數(shù)據(jù)?”好辦法!Gerber數(shù)據(jù)格式定義者們也想到了這一點,也采用了這種方法,這就是有樣式數(shù)據(jù)。
下面就是一段無樣式數(shù)據(jù)與有樣式數(shù)據(jù)的比較。
所有數(shù)據(jù) 有樣式數(shù)據(jù) X560Y230D2* X560Y230D2*X670Y305D1* X670Y305D1*X700Y305D1* X700D1* 當(dāng)機(jī)器執(zhí)行完一句命令后它并沒有把數(shù)據(jù)刪除,再執(zhí)行下一句時,它只是把有的數(shù)據(jù)填進(jìn)去而生成一個新的坐標(biāo)。如機(jī)器執(zhí)行完第二句時,它的存儲器中的數(shù)據(jù)是X-0.67,Y-0.305(假定格式是英制2-3),在讀入第三句時機(jī)器把0.7填進(jìn)X,Y沒有就跳過,那么新的數(shù)據(jù)就是X-0.7,y-0.305。
如果您的設(shè)計軟件在生成Gerber數(shù)據(jù)時有自動排序功能,那您使用這種數(shù)據(jù)格式會很有效果。同時它不象數(shù)據(jù)格式和省零方式那樣必須知道,所有的光繪機(jī)及光繪處理軟件都支持兩種數(shù)據(jù)。
有樣式命令
有樣式數(shù)據(jù)是一種很好的方法,這種方法同樣也適用于命令。比如說,您有一段連續(xù)的線條要畫,那么在Gerber中就表現(xiàn)為一長串以D01*結(jié)束的塊(block),為什么不能把它們省略直到下一個不同的命令出現(xiàn)呢?當(dāng)然可以,這種處理方法就是有樣式命令方式。
D1 not modal
D1 modal
X560Y230D2*
X560Y230D2*
X670Y305D1*
X670Y305D1*
X700D1*
X700*
X730D1*
X730*
X760D1*
X760*
Y335D1*
Y335D1*
由上表看來,我們都希望所有命令都使用有樣式命令。可是總有一兩處不如意的地方,首先是閃爍命令D3/D03,有許多光繪機(jī)非常的執(zhí)著地希望在每一個閃爍命令后能看到D3/D03。如MDA公司的FIRE9000系列,我們在CAM工作站上很清楚的看到焊盤,可是光繪出的膠片上就是沒有,后來我們在一些閃爍命令后加上D03*,問題就得到了解決。所以如果您遇到這種情況,不妨試一試無樣式數(shù)據(jù)(No modal)。
另外一個不安份的命令是畫圓弧命令G02/G03,許多光繪機(jī)在G02/G03命令時必須使用畫直線命令--G01。
說得太多,希望能對你有用!請加入印刷電路板群:41959238 一起進(jìn)步!
呵呵

相關(guān)推薦
熱門搜索
- 2018-07-318月8號成都出發(fā)去色達(dá),自駕游,有2個位置可以結(jié)伴
- 2018-07-31這地方熱嗎?莫干山不錯的,下渚湖怎樣熱不熱
- 2018-07-31兒童超過120m要買票嗎
- 2018-07-31準(zhǔn)備去大理旅游三天,從昆明出發(fā) 求大神推薦路線
- 2018-07-31從廈大學(xué)生公寓到南普陀寺怎么走,要多長時間到?
- 2018-07-31問一哈從宜賓到濟(jì)南,怎么走最劃算