- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
gerber的格式详解
Gerber Funtion Code介绍
Nn 顺序编号──这是用於盘式磁带机的档案搜寻,因为磁带机的档案搜寻是依次序搜寻的,和磁碟机作用方式不同,不过现在使用盘式磁带机的人已经很稀少了,因此略过不再加以介绍。
Gnn (genernal function code ) 一般的控制功能码:
X ± m.n X轴向的座标值──有效数值范围为 ± 0.000001 到 ± 999999.999999
Y ± m.n Y轴向的座标值──有效数值范围为 ±0.000001 到 ±999999.999999
Z ± m.n Z 轴向的座标值──有效数值范围为 ±0.000001 到 ±999999.999999
Im.n 画弧的中心座标对应平行投影於X 轴向的位置──有效数值范围为 ±0.000001 到 ±999999.999999
Jm.n 画弧的中心座标对应平行投影於Y 轴向的位置──有效数值范围为 ±0.000001 到 ±999999.999999
Km.n 画弧的中心座标对应平行投影於Z 轴向的位置──有效数值范围为 ±0.000001 到 ±999999.999999
W ± m.n 内建文字的旋转角度──有效数值范围为 -999999.999° 到 +999999.999°
◆Cm.n VAPE 作闪光打点动作的旋转角度
◆Tn 渐进线的绘图功能控制
◆Um.n 可变式光圈的长度
◆Vm.n 可变式光圈的长度
Dn 下笔绘图控制码
Mn 其它的控制码
EOB 区段结束字元码
P.S. ◆ 仅供具有 VAPE 设备之光学绘图机使用。VAPE (Variable Aperture Photo Exposure)
而在以上所提到的控制码中,读者可能已经猜到一件事
Q : 好像不是每一种控制器都可以使用所有的控制码?
A : 没错,并非任一种控制器皆能使用所有的控制码,事实上除了3200控制器,并没有其它控制器能使用所有的控制码,以下附表说明:
Code Words
Control Model N G X Y Z I J K W C T U V D M *
1600
9300
9500
9600
9700
9800
9900
GPC
Insight/2020 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
1850 ● ● ● ● ● ● ● ●
2000C ● ● ● ● ● ● ● ● ● ● ●
2600 ● ● ● ● ● ● ● ●
3X00 ● ● ● ● ● ● ● ● ● △ △ △ △ ● ● ●
4X00 ● ● ● ● ● ● ● ● ● ● ● ● ● ●
6X00 ● ● ● ● ● ●
8000-852 ● ● ● ● ● ●
8000-866 ● ● ● ● ● ● ● ● ● ● ● ●
● 控制器可以使用的控制码
△ 仅有 Model 3200 才可使用,3100 控制器并不支援此功能
X,Y,Z 座标的资料格式定义与适用数值位数范围,如下表所示:
Control INCH MM
1600/9X00 0.1 to 5.4 or 4.5 0.1 to 5.4 or 4.5
GPC and Insight / 2020 0.6 to 6.6 0.6 to 6.6
2000C 0.1 to 3.5 0.1 to 5.3
3X00 0.1 to 5.5 0.1 to 5.3
4X00 0.1 to 4.5 0.1 to 5.4
6X00 4.4 to 5.3 5.2 to 5.3
8000-852 0.6 to 6.0 0.6 to 6.0
8000-866 0.6 to 6.0 0.6 to 6.0
EOB Edn - of Block 字元,这是每一行字串的结尾符号,相对於不同的电脑系统也有不同的字元符号来表示字串的结束,而各种格式的适用码如下表示之: Data Code End of Block Parameter Flag
ASCII * ( Asterisk ) % ( Percent )
EBCDIC BCD * ( Asterisk ) or $ ( Dollar sign ) % ( Percent )
EIA CR ( Carriage return ) LC ( Low case )
ISO ASCII LF ( Line Feed ) % ( Percent )
※而其中最重要的控制码有 G code, D code 与 M code 以下分别予以介绍。
==G CODE,D CODE,M CODE==
G Code
General Function Code 通称 G Code,G code 大约有 35个之多,是用於绘图机的动作控制码,为避免读者太过吃力, 因此不列表说明,大概就几种常用的 G code 予以介绍,倘若读者希望能更进一步的了解,可以到网站http://www.barco.com/ets/data/index.htm 下载 RS-274-X des cription 的 PDF 档案,并用 Adobe Reader 去打开阅读。
常用的 G Code 及功能
G00 关闭快门
G01 1:1 的线性比例
G02, G20, G21 顺时钟方向画圆
G03 ,G30, G31 逆时钟方向画圆
G04 忽略後面所跟的字串, 一般常用於做注解用
G36 启用 area fill 的功能
G37 关闭 area fill 的功能
G54 选择工具的指令, 一般会跟随着Aperture 的代码, 如D10 , D11 ... 如 G54D10*
G74 取消用360°的画圆功能, 恢复成以1/4圆弧的绘图方式
G75 启用360°的画圆功能
D Code
D code 是绘图工具的控制码,本文也不列表说明, 大概就几种常用的 D code 予以介绍。 在这里笔者希望读者能去了解照相机的构造,因为光学绘图机的绘图动作,是综合了一般的笔式绘图机与照像机的动作而成的。
常用的 D Code 及功能
D00 回复到原来的预设的座标位置
D00, D01 属於画线指令,亦可解释为将笔下移,到绘图台面上绘图或是打开快门,让光线露出来。
D02 属於画线指令,为将笔上移, 离开绘图台面或是关闭快门,不让光线露出来。
D03 作闪光动作, 其结果是像印章般的原地打印。
D04 提起绘图笔, 并做快速移动。
D05 结束 D04 的功能。
D10 ~ 255 , Aperture 1 ~ 255
M Code
Miscellaneous Code,通称 M code 是绘图资料的叁数码,在此就几种常用的 M code 予以介绍。
常用的 M Code 及功能
M00 停止程式运作
M01 有条件的停止程式运作
M02 结束程式运作
M03 结束磁带的程式或回带
M64 设定图档的原点位於绘图机的现在位置并继续绘图
时是一个十分有效的命令。
D01、D02、D03 命令总是跟在他们对应的数据后面,正如下面的例子:
X0Y0D02*
X450Y330D01*
X455Y300D03*
这段数据将让光绘机做如下动作:关闭快门,移动桌面到原点;打开快门,移动桌面到450,330;(这样就从0,0画线到450,330。)关闭快门,移动到455,300,打开快门,关闭快门。
光圈标志——D码(D-CODE) D10-D999
不象 D01、D02、D03 ,D10到D999是数据而不是命令,它们是标注光圈或光圈轮上的位置。早期的光绘机使用的是一种有24孔/槽的光圈轮。
表1是早期的光绘机的光孔与D码的对应表。
表 1. D码(D-CODE)与光圈(APERTURE)的对应
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时光圈序号应该是23,但是D72、D73被插到D30之前。
大多数光绘、CAM软件需要您根据D码输入光圈的信息(形状、大小),少数软件是按光圈序号输入的(此时就需要根据上面的对应表重新排列)。
值得提一下的是D3到D9是一种特殊码,最早时是用来表示虚线、点画线等特殊线段,现在已经很少用到它们了,即使用到也只是某些落后的光绘机的专用代码,它们的具体含义就请查阅光绘机的说明书。
杂项命令 M-码
Gerber 文件中最常用的M码是 M00、M01、M02。
我们经常在文件末尾看到M02。M00/M01/M02都是表示Gerber 文件结束,只不过不同的机器使用不同的M码,而大多数软件是使用M02。但是要注意的是有一些软件为了确保在读入文件时不会和其它的数据混合,在文件头上加了M02等M码,而其它的软件一旦读到“M02”就认为文件已结束,从而会是数据丢失。另外一种情况是,有的软件喜欢把多个文件合并在一起,中间用“M02”区分,这些软件在处理这种文件时会自动把数据分开,但是其它软件就不一定会如此处理了。
还有一些软件会在文件头上加上M码作为文件的标识符,具体是何种M码各种软件各不相同。但现在大多数软件都会忽X,Y 坐标数据正是大量的坐标数据构成了Gerber文件,而Gerber文件中最多的就是X-Y坐标数据,只有压缩坐标数据才能达到压缩Gerber文件的目的。所以,您要手工排版Gerber文件中的坐标是非常困难的,因为在Gerber规范中已经对坐标数据作了一些处理。
在X、Y数据中省略了小数点
省略了不必要的零(前面的或后面的)
大部分软件只输出变化X或Y数据
省略小数点的规则
与其它字符相比小数点是最“不重用”的一个,特别是事先规定了它的位置时。实际上Gerber文件也的确是这样做的,在Gerber文件中您是很难看到一个小数点的。小数点的位置是人为地设置,由光绘机控制软件来定位的。新手门常犯的一个错误就是主观的用他们常用的数据格式来读新数据,甚至根本就不知道省略小数点这回事。
请看下面这段Gerber命令:
X00560Y00320D02*
X00670Y00305D01*
X00700Y00305D01*
假定这段命令是使用英寸作单位的。第一句的意思很容易理解——桌面移动到点(00560,00320)处,而不画线。可是新的问题又产生了,(00560,00320)到底表示的哪一点?是(5.6Inch,3.2Inch),还是(0.56Inch,0.32Inch),亦或是(0.056Inch,0.032Inch)?谁也不能说清楚。但是如果设计者告诉您,在小数点前有几位、小数点后面有几位,那您就能快速的确定这些数据到底代表的是多少。比如,设计师告诉您这段Gerber文件是英制2-3,那么您就能清楚地知道00560表示0.56Inch(00.560),00320是0.32Inch(00.320)。
因此:当别人给您文件时一定要问清楚数据格式;当您给别人文件时一定要告诉他文件格式。
如果您的客户也不知道数据格式,嘿嘿!您惨了。怎么办?猜吧——!仔细听好了,下面告诉您一些猜格式的技巧(这可是密笈嗷)。
方法一:根据板面大小
硬质板中很少有板面尺寸大于20Inch的,而大于20Inch X 20Inch 的是没有的。据此,如果您读出来的图形大于20Inch,那就是小数点前的位数太多了。相反,如果您读出俩的图形都堆到原点附近,那十有八九是小数点后的位数太多了(也就是说,小数点前的位数太少了)。
这里需要注意的是,小数点前的位数加上小数点后的位数一定要等于Gerber文件中最长的数的位数,上例中就是5(2+3=5)。
方法二:根据已知尺寸
如果您知道一些关于板子的尺寸,那就好办多了。您只要不停的试,大了就把小数点前的位数变小(小数点后的位数同时变大);小了就把小数点后的位数变小(小数点前的位数同时变大),如果单位没有搞错,一两次就能正确了。如果您没有任何尺寸,那您只能找板子上的器件。有一些器件,如DIP(双列直插集成电路)、PGA封装和一些插座,它们引脚的中心距离是0.1Inch(2.54mm),根据这一点您也能大概地确定数据格式。
省略前面和后面的零
在Gerber文件中还有什么东西可以省略?很自然,谁都会想到那些在数学中被称为“无效零”的玩意。可是用什么规则?
我们再回头看上面的例子中第一行X00560Y00320D02*,现在我们把00560前面的零省略变成560,那么根据客户告诉我们的数据格式是英制2-3,那么我们就可以推断出560代表的数据是什么。因为是2-3制的,我们先保证小数点后面的三位,那560就变成.560,我想您应该知道.560是什么意思,反正我是知道!
——这样处理方法就是省前零(Leading zero)。
下面我们就把上面的例子生成省前零,您能把它们试着恢复吗?。
不省零 省前零
X00560Y00320D02* X560Y230D2*
X00670Y00305D01* X670Y305D1*
X00700Y00305D01* X700Y305D1*
现在我们来数数这两种格式的字节数,不省零占用48字节,省前零占用33字节。节约了31.2%,而图形却是一样的。您瞧多好的主意,这对当时节约打孔纸带是多么有效,多么的重要。
还有一种省零的方法,省去后面的无效零。也就是保留前面的无效零而去除后面的无效零,恢复时只要保证格式前面的位数,来确定小数点的位置。下面的例子说明了省后零
(Trailing Zero)。
不省零 省后零
X00560Y00320D02* X0056Y0032D2*
X00670Y00305D01* X0067Y00305D1*
X00700Y00305D01* X007Y00305D1*
除了这两种省零的方法,还有些软件喜欢把前后零都省去,这样一来就必须保留小数点。如果您的软件不支持小数点,那您就赶快找软件去编辑它们吧,或者去书店买一本 MS-OFFICE ,我知道用MS-WORD和MS-EXCEL能把它们转换成您所需要的格式。
因此:当您把GERBER文件给别人时一定要告诉他是省前零还是省后零;当别人给您文件时一定要问清楚是省前零还是省后零。
如果您不知道是省前零,还是省后零,您也可以猜,而且这比猜格式容易多了。只要用字编辑软件打开它看一看,如果前面有零就有可能是省后零;如果后面有零就有可能是省前零。唯一要注意的是,有些软件在处理省前零时只把小数点前的零省掉,如00.050就成了050,省后零也一样;而有些软件则是把前面的零都省略,如00.050就成了50,省后零同样。这时就需要补零定小数点。
有样式(Modal)数据坐标
到现在为止,您已经知道省略小数点、省零。或许您认为您已经完全了解Gerber数据了,千万别自满。请您回顾一下光绘机的工作原理,您也许又会产生新的想法。光绘机的X-Y的移动是相互独立的,而且Gerber数据中也有许多点排在与X或Y平行的线上。说到这里,您也须明白还有一种方法可以压缩Gerber文件。
“为什么不让机器记住X、Y 的数值,与下一个点比较,只输出变化的数据?”好办法!
Gerber数据格式定义者们也想到了这一点,也采用了这种方法,这就是有样式数据。
下面就是一段无样式数据与有样式数据的比较。
所有数据 有样式数据
X560Y230D2* X560Y230D2*
X670Y305D1* X670Y305D1*
X700Y305D1* X700D1*
当机器执行完一句命令后它并没有把数据删除,再执行下一句时,它只是把有的数据填进去而生成一个新的坐标。如机器执行完第二句时,它的存储器中的数据是X-0.67,Y-0.305(假定格式是英制2-3),在读入第三句时机器把0.7填进X,Y没有就跳过,那么新的数据就是X-0.7,y-0.305。
如果您的设计软件在生成Gerber数据时有自动排序功能,那您使用这种数据格式会很有效果。同时它不象数据格式和省零方式那样必须知道,所有的光绘机及光绘处理软件都支持两种数据。
有样式命令
有样式数据是一种很好的方法,这种方法同样也适用于命令。比如说,您有一段连续的线条要画,那么在Gerber中就表现为一长串以D01*结束的块(block),为什么不能把它们省略直到下一个不同的命令出现呢?当然可以,这种处理方法就是有样式命令方式。
D1 not modal D1 modal
X560Y230D2* X560Y230D2*
X670Y305D1* X670Y305D1*
X700D1* X700*
X730D1* X730*
X760D1* X760*
Y335D1* Y335D1*
由上表看来,我们都希望所有命令都使用有样式命令。可是总有一两处不如意的地方,首先是闪烁命令D3/D03,有许多光绘机非常的执着地希望在每一个闪烁命令后能看到D3/D03。如MDA公司的FIRE9000系列,我们在CAM工作站上很清楚的看到焊盘,可是光绘出的胶片上就是没有,后来我们在一些闪烁命令后加上D03*,问题就得到了解决。所以如果您遇到这种情况,不妨试一试无样式数据(No modal)。
另外一个不安份的命令是画圆弧命令G02/G03,许多光绘机在G02/G03命令时必须使用画直线命令——G01。
Gerber Format 是電子業之間通用的資料格式,而它是被用於設計完成與上線製造PCB的中間媒介,就像土木或機械五金業常用的 Autocad 軟體所輸出的 DXF 或 HPGL 格式一般,當設計師把圖稿設計完成後所產生的與其它系統連結的工作資料檔。
這本是美國 Gerber 公司自行制定出來給該公司所生產的光學繪圖機來使用的,也因此而稱為 Gerber data,但因為該格式頗能符合電子業間的需求,也因此大家廣泛使用久而久之演變成一種業界標準的資料格式,後來因為該格式被電子業廣為接受慢慢的大家都稱為 Gerber format,其實真正的名稱應該是叫做
RS-274-D format
這是因為該格式的制定是依 EIA 的 RS-274-D 標準碼所衍生訂定 的,而其資料內容包括 word address 資料及繪圖機的參數檔與控制碼。 RS-274-D 碼被使用至今已數十年了,因電子產品的演變早已超出當初的須求,因此原用的 RS-274-D格式也慢慢的不敷使用,許多的定義都付之闕如,也因此才會再衍生出強化版的 Gerber format,稱為
RS-274-X format
即現今最常用的資料格式。 以下之介紹是以 RS-274-D 為基礎,後面才會介紹 RS-274-X ,並會比較倆者之間的不同點,以其讓讀者能了解其中的差異點。
Gerber Format 內含兩種資料:
1. 控制碼,如:極性、鏡頭資料、底片資料、比例……
2. 座標 ( 位址 )
而美國 Gerber 公司當初訂定 Gerber Format 同時也衍生出有許多種型態如 World address format, Binary format, Internet format .....來供應當時許多種不同的控制電腦及該電腦的許多不同的相容與對應格式
如下表 :
Gerber控制器的種類 World Address
(Gerber Format)
(RS-274-D) Serial 500 Binary
Format Extended Binary
Format Model 1400
Extended Binary
Format
1400 ●
1600 ●
2000C ●
3200 ● ● ● ●
4X00 ● ●
6X00 ●
8000-852 ●
8000-866 ●
9600 ●
9700 ● ● ●
9500/9800/9900
(GPC) ●
而上表所列的各種控制器中筆者所見過的也不多,僅僅只用過 1400 , 3200, 4X00 , 9700 及 9500/9800/9900 等控制器,而其中更有許多是早已消失於市場中的產品。 不過其中在臺灣尚有許多仍在使用的,據筆者所知的尚有 3200 及9500/9800/9900 等控制器。其中 3200 是Gerber 公司自行研發的控制電腦,其餘的很多是配合各大電腦系統商所供應的系統,如:
HP 的 1000 系列 與 4000 系列,該種電腦大多被用於早期的軍事用途上。
DEC 的 VAX 系統 則被選用於 Gerber 的 9700 控制器。
SUN Microsystems 的 IPC , IPX , LX 與 Sparc 系列則是被選用於 Gerber 的 95/8/9...系列的控制器。
相信對電腦略有涉獵者都知道一件事,那就是各大系統商之間的資料格式並不相容,因此 Gerber 公司更對它們所能適用的資料碼的共通性再衍出不同的資料碼,在這部份就有五種格式之多...,如下表所列是 Gerber 公司的各種控制器所能接受的各種資料格式,提供讀者作為參考:
Gerber
控制器的種類 ASCII
(EIA RS-385) EIA RS-244-B BCD EBCDIC ISO ASCII
1400
1600 ● ● ● ●
2000C ● ●
3200 ● ● ● ● ●
4X00 ● ● ● ● ●
6X00 ● ●
8000-852 ● ● ●
8000-866 ● ● ● ● ●
9600 ● ● ● ●
9700 ● ● ● ●
9500/9800/9900
(GPC and Insight/2020) ● ● ● ●
射频工程师养成培训教程套装,助您快速成为一名优秀射频工程师...
天线设计工程师培训课程套装,资深专家授课,让天线设计不再难...
上一篇:关于线宽与过孔铺铜的一点经验
下一篇:SMT基本工艺