Kika's
Blog
图片简介 | CC BY 4.0 | 换一张

立创EDA的Gerber文件特征

2024-12-16

Gerber文件是一种指示光绘机绘制的脚本文件,用于制造PCB电路板,下面介绍Gerber文件的格式,并分析嘉立创的立创EDA(EasyEDA)导出的Gerber文件格式的特征。

文件组成

一般来说,EDA输出的制造文件包含以下内容:

  • Routing(丝印层):如果是两层以上板,将分为上、下或中间走线层
  • Silkscreen(丝印层):多层板有上、下两层,如果底层没有丝印,则不用出;
  • Plane(电源、地平面层):只是针对多层板而言(以负片输出);
  • Paste Mask(SMD贴片层):主要针对PCB板上的SMD元件。如果板全部放置的是Dip(通孔)元件,这一层就不用输出Gerber文件了。在将SMD元件贴PCB板上以前,必须在每一个SMD焊盘上先涂上锡膏,在涂锡用的钢网就一定需要这个Paste Mask文件,菲林胶片才可以加工出来。Paste Mask层的Gerber输出最重要的一点要清楚,即这个层主要针对SMD元件,同时将这个层与下面即将介绍的Solder Mask作一比较,弄清两者的不同作用,因为从菲林胶片图中看这两个胶片图很相似。
  • Solder Mask(主焊层);主要用途是保证被选项(比如元件脚焊盘和某些特殊的铜皮等)在PCB板上不被绿油覆盖而直接以铜皮的形式出现在板上,凡是需要焊接与贴的对象都一定要选择,简单地讲,在设计中如果希望某对象以裸铜的形式出现在板上,那么在输出主焊层就可以把它选上。对于主焊层Gerber,输出选项Pads(焊盘)一定需要选择,但是主焊层的Pads(元件脚焊盘)跟PastMask中不一样,它包括了SMD和Dip两种焊盘,而PastMask却只包含SMD焊盘。
  • NC Drill(NC钻孔层):对于有通孔的PCB板设计,NC Drill输出文件必不可少的,没有这个文件就没法给PCB板钻孔。
  • Drill Drawing(钻孔参考图层):钻孔参考图是为钻孔提供的一个数据参考图。输出该层时要注意在进行选项设置时,有钻孔的对象一般都需要选上,因为它的输出主要就是针对钻孔对象,比如Pads(焊盘)与Vias(过孔)等。

文件扩展名

Gerber文件是一个文本文件,没有强制规定的后缀名,但是一般约定如下:

扩展名 描述
.APR 光圈文件 Aperture Data
.EXTREP 额外文件(比如中心点位置)
.REP 光圈表文件
.RUL 规则表
.GKO Keep Out Layer 禁止布线层(可做板子外形) outline
.GTO Top Overlay 顶层丝印 silkscreen
.GBO Bottom Overlay 底层丝印 silkscreen
.GPT Top Pad Master 顶层主焊盘 Parts
.GPB Bottom Pad Master 底层主焊盘 Parts
.GTS Top Solder 顶层阻焊(也叫防锡层,负片) solder mask
.GBS Bottom Solder 底层阻焊(也叫防锡层,负片) solder mask
.GTL Top Layer 顶层走线 signal
.GBL Bottom Layer 底层走线 signal
.GTP Top Paste 顶层表贴(做钢网用)
.GBP Bottom Paste 底层表贴(做钢网用)
.G1 MidLayer1 内部走线层1
.G2 MidLayer2 内部走线层2
.G3 MidLayer3 内部走线层3
.G4 MidLayer4 内部走线层4
.GP1 Internal Plane1 内平面1(负片)
.GP2 Internal Plane2 内平面2(负片)
.GM1 Mechanical1 机械层1
.GM2 Mechanical2 机械层2
.GM3 Mechanical3 机械层3
.GM4 Mechanical4 机械层4
.GD1 Drill Drawing 钻孔数据
.DRL Drill Data 钻孔数据
.TXT Drill Position 钻孔位置
.DRR Drill Tool size 钻孔尺寸
.LDP Drill Report 钻孔报告

格式特征

首先来看使用立创EDA导出的一个四层板的Gerber文件列表:

Gerber_DrillDrawingLayer.GDD
Drill_NPTH_Through.DRL
Drill_PTH_Through.DRL
Drill_PTH_Through_Via.DRL

Gerber_BoardOutlineLayer.GKO

Gerber_DocumentLayer.GDL

Gerber_TopLayer.GTL
Gerber_TopPasteMaskLayer.GTP
Gerber_TopSilkscreenLayer.GTO
Gerber_TopSolderMaskLayer.GTS

Gerber_InnerLayer1.GP1

Gerber_InnerLayer2.G2

Gerber_BottomLayer.GBL
Gerber_BottomSilkscreenLayer.GBO
Gerber_BottomSolderMaskLayer.GBS

FlyingProbeTesting.json
How-to-order-PCB.txt

使用KiCad中的JLC-Plugin导出的zip文件列表:

ProjectName-NPTH.drl
ProjectName-NPTH-drl_map.gbr
ProjectName-PTH.drl
ProjectName-PTH-drl_map.gbr

ProjectName-Edge_Cuts.gm1

ProjectName-F_Cu.gtl
ProjectName-F_Mask.gts
ProjectName-F_Paste.gtp
ProjectName-F_Silkscreen.gto

ProjectName-GND_Cu.g2

ProjectName-POWER_Cu.g3

ProjectName-B_Cu.gbl
ProjectName-B_Mask.gbs
ProjectName-B_Paste.gbp
ProjectName-B_Silkscreen.gbo

可以看到基本是可以对上的:

  • 钻孔文件需要NPTH(非镀通孔,不可导电的机械通孔)和PTH(镀通孔)两类,实践证明只需要DRL文件就行了
  • 板子外形文件,立创EDA导出的是GKO而非gm1(机械层1),实践证明使用gm1文件也可以
  • 底层最少都需要GBL(底层走线),GBO(底层丝印),GBS(底层阻焊)文件,立创EDA导出的文件中少了用于制造钢网的GBP文件,顶层文件夹类似
  • 中间铜层需要Gx或者GPx(其中x为第x层,GP为负片);

文件名而言,立创EDA的文件名皆以Gerber_或者Drill_开头,满足以下正则表达式替换规则:

# 钻孔
[".*\-NPTH\.drl"]="s/.*\-NPTH\.drl$/Drill_NPTH_Through.DRL/"
[".*\-PTH\.drl"]="s/.*\-PTH\.drl$/Drill_PTH_Through.DRL/"
# 机械层
[".*\.gm([0-9]+)$"]="s/.*\.gm([0-9]+)$/Gerber_MechanicalLayer\1.GM\1/"
# 顶层
[".*\.gtl"]="s/.*\.gtl$/Gerber_TopLayer.GTL/"
[".*\.gtp"]="s/.*\.gtp$/Gerber_TopPasteMaskLayer.GTP/"
[".*\.gto"]="s/.*\.gto$/Gerber_TopSilkscreenLayer.GTO/"
[".*\.gts"]="s/.*\.gts$/Gerber_TopSolderMaskLayer.GTS/"
# 中间层
[".*\.gp([0-9]+)$"]="s/.*\.gp([0-9]+)$/Gerber_InnerLayer\1.GP\1/"
[".*\.g([0-9]+)$"]="s/.*\.g([0-9]+)$/Gerber_InnerLayer\1.G\1/"
# 底层
[".*\.gbl"]="s/.*\.gbl$/Gerber_BottomLayer.GBL/"
[".*\.gbo"]="s/.*\.gbo$/Gerber_BottomSilkscreenLayer.GBO/"
[".*\.gbs"]="s/.*\.gbs$/Gerber_BottomSolderMaskLayer.GBS/"

内容而言,KiCad和立创EDA的文件头不一样,分为Gerber类型的文件头和Drill钻孔类型两种特征的文件头。

立创EDA的Gerber类型的文件头特征形如:

G04 Layer: BottomLayer*
G04 EasyEDA Pro v2.2.32.3, 2024-12-16 11:18:35*
G04 Gerber Generator version 0.3*
G04 Scale: 100 percent, Rotated: No, Reflected: No*
G04 Dimensions in millimeters*
G04 Leading zeros omitted, absolute positions, 3 integers and 5 decimals*

其中需要关注的是Layer字段,值与文件名中的层名相同,如Gerber_BottomLayer.GBLLayer字段为BottomLayer

立创EDA的Drill类型的文件头特征形如:

;TYPE=PLATED
;Layer: PTH_Through
;EasyEDA Pro v2.2.32.3, 2024-12-16 11:18:35
;Gerber Generator version 0.3

其中需要关注的是TYPELayer字段,其中TYPEPLATED(植锡)和NON_PLATED(不植锡)两种,分别对应了PTH(镀通孔)和NPTH(非镀通孔),Layer字段同上。

我写了一个Bash脚本KiCad2EasyEDAGerbe,可以自动修改KiCad导出的Gerber文件,使其模仿EasyEDA导出的Gerber文件特征。

参考