為什么圖層錯誤之未遵守GerberX2規范
2023-09-21 16:09
1682
0
什么是GerberX2 ?
GerberX2是新一代的Gerber文件標準,它在Gerber RS274X基礎上增加了一些新的指令用于輔助指明該文件的屬性。
下面的代碼片斷展示了 GerberX2 新增的一些指令,%TF、%TA 開頭的行是 GerberX2 格式專有的。
G04 Small example Gerber X2 file* %FSLAX35Y35*% %MOMM*% %TF.FileFunction,Copper,L4,Bot,Signal*% // 表明該文件是底層線路 %TF.Part,Single*% %TA.AperFunction,Conductor*% %ADD10C,0.15000*% %TA.AperFunction,ViaPad*% %ADD11C,0.75000*% %TA.AperFunction,ComponentPad*% %ADD12C,1.60000*% %ADD13C,1.70000*% %SRX1Y1I0.00000J0.00000*% G75* %LPD*% D10* ....
Gerber X2 格式更新,解決了很多 RS274X 的痛點,現在主流EDA輸出Gerber都提供對 Gerber X2格式的支持。比較激近一些的EDA默認輸出格式可能就是GerberX2格式,以至于我們越來越多的收到客戶的原稿Gerber文件都是Gerber X2格式。適應規范勢在必行。
問題描述
如下圖所示的幾個文件,所有的Gerber 文件都被識別成了線路層。文件名是符合 https://www.jlcdfm.com/help_document/id/q3i41517.html 中的建議規則,但為什么還是會識別錯誤?
Ser_par.GBL // 按習慣是底層線路,被識別成線路層 Ser_par.GBS // 按習慣是底層阻焊,被識別成線路層 Ser_par.GKO // 按習慣是外型層,被識別成線路層 Ser_par.GTL // 按習慣是頂層線路,被識別成線路層 Ser_par.GTO // 按習慣是頂層絲印,被識別成線路層 Ser_par.GTS // 按習慣是頂層阻焊,被識別成線路層 Ser_par.XLN // 鉆孔文件
錯誤原因
該文件是GerberX2格式,按GerberX2規范,文件內置了層屬性的標準,這個時候,我們會優先遵守GerberX2規范,來確定層屬性類型,忽略【為什么圖層錯誤之層命名的不規范】 https://www.jlcdfm.com/help_document/id/q3i41517.html 中的建議規則。
我們看一下上面案例中的 GerberX2 文件內容是什么樣的。備注:被水印擋住的文字是:有沖突的情況下,我們優先遵守 GerberX2 的規范。
解決方法
有兩個,請2選1
- 繼續輸出GerberX2格式的文件,輸出文件前,先把要輸出的層的屬性定義正確。(目前各EDA軟件基本上能保證按正確的屬性輸出)
- 如果堅持要按文件名來區分層屬性,那么不要輸出GerberX2,選擇輸出格式為RS-274-X 格式,這樣我們就不會受GerberX2的格式影響,按 https://www.jlcdfm.com/help_document/id/q3i41517.html 描述的規則,也能正確的識別圖層。(例外情況,見下面的后記)
后記:兼容 GerberX2規范的 Gerber RS274X
Gerber RS274X 存在年份長,生態大,很多舊有設備只支持RS274X,不支持X2,有些EDA軟件在早期版本即要享受GerberX2的優點,又要兼容RS274X,于是生成了類似下面這樣的Gerber文件,把所有X2相關的指令以 G04 的方式輸出(G04在Gerber中表示注釋),可被RS274X兼容,本質上還是RS274X格式。
這種情況我們在做層屬性分析的時候,還是優先按照 GerberX2的規范來執行。
注意:這些特征都都是固定的,由上游EDA軟件自動生成的,千萬不償試手動去修改,手動修改容易出錯,差一個空格標點符號,都會有可能導致我們識別失敗。
G04 Small example Gerber X2 file* %FSLAX35Y35*% %MOMM*% G04 #@! TF.FileFunction,Copper,L4,Bot,Signal* // 表明該文件是底層線路 %ADD10C,0.15000*% %ADD11C,0.75000*% %ADD12C,1.60000*% %ADD13C,1.70000*% %SRX1Y1I0.00000J0.00000*% G75* %LPD*% D10* ....