在电路设计这块, 目前还绕不开 gerber 文件的工程交互, 所以来了解一下.
目前官网的文档gerber-layer-format-specification-revision-2022-02_en.pdf.
gerber 文件是一个ascii码的命令文档, 格式比较简单,主要命令有下面这些
命令 | 名称 | 说明 |
---|---|---|
G04 | 注释 | 对文档生成没有影响 |
MO | 模式 | 设置单位是 毫米(mm) 还是英尺(inch) |
FS | 格式 | 指定坐标格式, 比如用10进制 |
AD | 画板定义 | 使用D命令进行绘画 |
AM | 画板宏 | 定义一个画板模板 |
Dnn(nn>=10) | 自定义会话 | 自定义会话编码 |
D01 | 绘画操作 | |
D02 | 移动点到目标位置 | |
D03 | 复制 | 复制目标到指定位置 |
G01 | 设置线型绘画模式 | |
G02 | 设置到顺时针圆弧绘画模式 | |
G03 | 设置到逆时针圆弧绘画模式 | |
G75 | G75必须在定义了一个圆弧绘制后定义 | |
LP | 极化 | |
LM | 镜像 | |
LR | 旋转 | |
LS | 缩放 | |
G36 | 语句块开始,如轮廓定义 | |
G37 | 语句块结束 | |
AB | 绘画语句块 | |
SR | 分步重复 | |
TF | 设置文件属性 | |
TA | 设置画板属性 | |
TO | 设置对象属性 | |
TD | 删除属性 | |
M02 | 结束 |
- 基本约束
-
坐标
-
角度
-
单位设置格式
MO = '%' ('MO' ('MM'|'IN')) '*%';
如:%MOMM*%
建议使用 MM, IN以后可能会不兼容. -
格式定义
FS = '%' ('FS' 'LA' 'X' coord_digits 'Y' coord_digits) '*%'; coord_digits = /[1-6][5-6]/;
如:
%FSLAX36Y36*%
下面的数字就是3+6的模式, 即X123123456表示123.123456, Y23456为0.023456.
一般都是定义 MM 和6位精度, 坐标也可以使用符合, 默认是正数, 必须要有数字, 0也不能省. -
AD 命令
AD = '%' ('AD' aperture_ident template_call) '*%'; template_call = template_name [',' parameter {'X' parameter}*];
aperture_ident 画板编号 x 在[10, 2^32-1] 之间, D00-D09用于特殊功能.
template_call 通过指定参数调用模板确定一个画板形状.如果定义大小为0, 那么该画板无效. 圆可以定义为0,
如:%ADD10C,.025*%
和%ADD10C,0.5X0.25*%
.- 标准的模板:
命令 形状 参数 C 圆 直径[,孔] R 正方形 X,Y,[,孔] O 椭圆形 X,Y[,孔] P 多边形 外径, # 边数[,旋转[,孔]] -
AM 命令
画板模板命令可以定义复杂的图形,并且重复多次调用在AD中.AM = '%' ('AM' macro_name macro_body) '%'; macro_name = name '*'; macro_body = {in_macro_block}+; in_macro_block = |primitive |variable_definition ; variable_definition = (macro_variable '=' expression) '*'; macro_variable = '$' positive_integer; primitive = primitive_code {',' par}* par = ',' (expression);
主要参数说明:
参数 说明 macro_name 模板名称 macro_body 模板体 Variable definition 变量定义 Primitive 原始形状 Primitive code 原始标识 Parameter 参数 样例:
%AMTriangle_30* 4,1,3, 1,-1, 1,1, 2,1, 1,-1, 30* %
Primitive
编码 名称 参数 0 注释 1 圆 显示,直径,CX,CY[,旋转] 20 端点直线 显示,线宽,SX,SY,EX,EY,旋转 21 中心直线 显示,线宽,线长, CX,CY,旋转 4 外接线 显示,#子点数,SX,SY,其他点…,旋转 5 多边形 显示,#边数, CX,CY,直径,旋转 7 辐射圆环弧 CX,CY,外径,内经,缺口间隙,旋转 显示 - 0 隐藏, 1 显示
旋转 - 逆时针为正
-