出指南:22.11版本后如何正確設(shè)置)
1. 先搞清楚鏡像層到底在鏡像什么1.1 為什么需要鏡像層PCB 出 Gerber 時鏡像這個詞幾乎是每個畫板子的人都會碰到的但真正把它講清楚的人不多。最常見的一個場景就是底層絲印。你在 Bottom Overlay 上放一個 GND 標(biāo)記正面看它是反的只有翻到背面看才是正著的。如果你的產(chǎn)品底面正好朝外或者需要在背面露出字符標(biāo)識工廠在絲印工序里就需要一張“從背面看可讀”的底層字符圖。Gerber 文件本身并不知道哪一面是正面它存的只是坐標(biāo)集合。想讓底層字符在視覺上正過來就必須在導(dǎo)出時對底層做一次坐標(biāo)反射也就是我們說的鏡像。第二個常見場景是陰陽板。某些低成本小板子為了節(jié)省板材會在一張板卡里同時排布正面朝上和背面朝上的兩個子板。背面朝上的那個子板其全部底層圖形都需要以鏡像形式輸出否則拼板后方向就反了。這種事情通常在 Layout 階段會處理但如果布局已經(jīng)凍結(jié)、改動成本高就會要求在導(dǎo)出環(huán)節(jié)用鏡像解決。第三個容易被忽略的是對齊一致性。鏡像并不只是“把某個圖層左右顛倒”那么簡單。如果一塊六層板的 Gerber 里五層是正向輸出只有底層絲印單獨做了鏡像那工廠在 CAM 階段把各層疊在一起對孔位時大概率會出現(xiàn)坐標(biāo)對不上的報警。原因是底層絲印的坐標(biāo)經(jīng)過反射后和鉆孔層、底層銅層之間不再共享同一套坐標(biāo)關(guān)系。所以真正實操中“整組配套層一起鏡像”比“單獨鏡像某一層”要常見得多。1.2 鏡像和翻轉(zhuǎn)不是一回事新手經(jīng)常把“翻轉(zhuǎn)板子”和“鏡像圖形”混為一談。翻轉(zhuǎn)是視角變化你把板子從桌子拿起來翻到背面看左右關(guān)系反了但板子本身的幾何坐標(biāo)一點沒變。鏡像則是把圖形上的所有坐標(biāo)按照某個軸做反射變換。前者是你看板子的方式變了后者是文件數(shù)據(jù)本身變了。我習(xí)慣用一個透明卡片的例子來解釋。你在一張透明片上從左到右寫下 A、B、C正面讀就是 ABC。把透明片反過來從背面看你看到的是 C、B、A這就是翻轉(zhuǎn)視角。如果你想得到一張膠片讓它放在燈光下從正面看就能直接讀出 CBA那你就需要把原來的圖形做一次鏡像變換把所有點沿中軸翻過去生成一份新的坐標(biāo)。Gerber 的鏡像層級操作做的就是后面這件事。在 Altium 里這兩者對應(yīng)兩個完全不同的入口PCB 編輯器里的 VB 快捷鍵只是讓你從底面觀察板子不影響任何輸出文件而真正改變 Gerber 文件坐標(biāo)的是 Gerber Setup 對話框里層列表中的 Mirror 選項。很多人搞反就是因為先按了 VB發(fā)現(xiàn)屏幕上字符都正了就以為導(dǎo)出的文件也會是正的。實際不是屏幕顯示和文件坐標(biāo)是兩套系統(tǒng)。2. 22.11 版本后 Gerber 輸出到底變了什么2.1 早期版本怎么操作鏡像Altium 22.11 之前的版本比如 AD20、AD21 時代Gerber Setup 的 Layers 頁里有一個非常顯眼的 Mirror 選項。我當(dāng)時學(xué)這個功能流程大概是打開 Gerber Files 對話框選擇 Layers 標(biāo)簽頁在需要鏡像的層前點開下拉選項或者直接勾選 Mirror點確認(rèn)生成。界面比較直白找得到就不是大問題。那個年代還有個特點Gerber 輸出配置跟隨著 PCB 文檔走版本之間差異也不大。只要項目模板里配好了一次鏡像設(shè)置后續(xù)同系列板子基本都能繼承。公司內(nèi)部做標(biāo)準(zhǔn)化 Output Job 后鏡像這件事更像是一次性的配置工作不太需要每次重設(shè)。老版本的風(fēng)險反而是誤觸。有些人只是臨時預(yù)覽不小心把某一個底層文件勾上了鏡像結(jié)果整批 Gerber 里就那一層是反的CAM 檢查時很難發(fā)現(xiàn)到產(chǎn)線對位時才會暴露。2.2 22.11 之后哪里容易踩坑22.11 版本開始Altium 對 Gerber 輸出引擎做了一輪重構(gòu)順帶把界面里很多列的顯示方式改成默認(rèn)精簡模式。最直觀的變化是打開 Gerber Setup 的 Layers 頁層列表只顯示層名和 Plot 這類核心列Mirror 列直接藏了起來。第一次看見這個界面的工程師十有八九覺得新版把鏡像功能刪了。另一個容易踩坑的是 Gerber X2 格式成了默認(rèn)選項。Gerber X2 在文件頭會寫入更多層屬性信息但它本身并沒有一個標(biāo)準(zhǔn)的“鏡像”字段。舊工程里保存的鏡像狀態(tài)通過舊 Output Job 遷移到新版本時映射并不可靠。我實測過的結(jié)果是有些層勾過的鏡像在新版本里被靜默忽略有些層干脆丟失了輸出屬性。如果你公司里的模板沒有同步更新同一個人、同一個板子在不同版本電腦上出的 Gerber 甚至方向都可能不一致。坐標(biāo)格式的默認(rèn)值也變過。22.11 之后Advanced 頁里的默認(rèn)單位、前導(dǎo)零/后導(dǎo)零、精度設(shè)置跟老版本默認(rèn)值不完全一樣。鏡像計算依賴精確坐標(biāo)一旦精度低一位底層孔位和頂層孔位在 CAM 里可能就差出幾個 mil。這種問題在正常層上不明顯因為大家坐標(biāo)都是正向但鏡像層經(jīng)過反射后輕微誤差會被放大更容易在鉆孔對齊時暴露。2.3 先給結(jié)論功能并沒有刪雖然界面變了、默認(rèn)格式變了但逐層鏡像的功能還在。入口只是被收進列設(shè)置里需要手動把 Mirror 列調(diào)出來。具體做法是在 Layers 頁的層列表表頭右鍵在彈出菜單里勾選 Mirror 列。勾出來之后每個輸出層旁邊都會出現(xiàn)一個可勾選的格子。如果你做完這一步發(fā)現(xiàn)還是沒有或者這個工程是從老版本遷移來的最穩(wěn)妥的辦法是把 Output Job 刪掉重建。不要試圖在舊配置上打補丁。新版對舊輸出配置的兼容性并不是百分之百重建之后重新設(shè)置一遍反而能避免很多隱藏問題。我處理過好幾個“鏡像莫名失效”的案例最后都是重建 Output Job 解決的。3. 鏡像層導(dǎo)出的 4 個可行方案3.1 方案一Gerber Setup 層列表直接勾鏡像首選這是最正規(guī)、最可控的方法也是我現(xiàn)在最常用的方式。第一步在 PCB 編輯器里打開 File - Fabrication Outputs - Gerber Files。第二步切到 Layers 頁在層列表的表頭區(qū)域右鍵把 Mirror 列顯示出來。如果你是 22.11 之后的默認(rèn)界面這步是必須做的不做就看不到任何鏡像入口。第三步在需要鏡像的層行勾選 Mirror。這里需要特別強調(diào)不要只勾一層。如果你想讓整套底層都以“從底面看圖”的方式輸出那么 Bottom Copper、Bottom Solder、Bottom Overlay、Bottom Paste 這幾層應(yīng)該一起勾選。如果只勾了 Bottom Overlay到底勾不勾 Bottom Copper取決于你和工廠怎么約定但至少要把配套的阻焊和字符同時處理掉。第四步確認(rèn)坐標(biāo)原點和格式。我建議在 Advanced 頁把 Format 設(shè)置成 2:5單位按公司規(guī)范選毫米或英制。不要用默認(rèn)最小化設(shè)置里的 2:3精度不夠鏡像翻轉(zhuǎn)后小焊盤很容易偏位。第五步生成文件。生成后不要急著發(fā)先打開 CAM 工具或者 Altium 自帶的 Gerber 查看器把鏡像過的層和鉆孔層疊在一起選幾個特征位置量一下坐標(biāo)確認(rèn)沒有單層錯位。這里有個我自己的習(xí)慣凡是做過鏡像的層文件名一定加上后綴。Altium 默認(rèn)會用層名作為文件名一部分但你可以通過 Output Job 的 Naming 設(shè)置改成自定義格式比如底層絲印寫成 OVL_BOT_M別人拿到文件一看就知道這層是鏡像過的。這能省下大量溝通成本。3.2 方案二先用底部視圖確認(rèn)方向再出鏡像這個方案不算真正改動 Gerber 輸出但能幫你避免方向搞反。適合那種“我完全不記得底面字符當(dāng)前方向?qū)Σ粚Α钡那闆r。在 PCB 編輯器里按 VBAltium 會從底面顯示板子。這個時候你再看 Bottom Overlay 上的字符就是板子真正從背面看到的樣子。如果文字顯示是反的說明當(dāng)前底層在正向坐標(biāo)系里是反的導(dǎo)出時大概率需要鏡像如果文字已經(jīng)是正的說明你屏幕上看到的就是“從背面正確閱讀”的結(jié)果是否還要鏡像就得看工廠接收習(xí)慣。你還可以順手測量一些參考坐標(biāo)。比如記錄一個角落定位孔在底面視圖里的坐標(biāo)然后回到 Gerber 設(shè)置里勾選對應(yīng)層鏡像后再生成然后檢查生成的 Gerber 里這個孔位的坐標(biāo)是否和你眼睛看到的方向一致。這個方法能幫你建立“視圖方向”和“文件坐標(biāo)”之間的對應(yīng)直覺用幾次之后就不會再搞反。之前在論壇看到一個朋友的案例他把 VB 之后看到的字符方向當(dāng)成了 Gerber 文件的最終方向結(jié)果樣板回來后字符全部反了。原因就是 Altium 的底面視圖會自動幫你把文本按可讀方向渲染但導(dǎo)出的 Gerber 是純坐標(biāo)不會自動做這個處理。所以這個方案更多是定位問題用不是替代方案一。3.3 方案三用 CAM 工具做二次鏡像有些場景下問題不出在 Altium而是工廠 CAM 環(huán)節(jié)。比如你從外部拿到一個別人的 PCB 源文件源工程已經(jīng)丟失只剩一份 Gerber這時候想在 Altium 里改設(shè)置根本沒有對象只能在文件層面補救。操作大概是把導(dǎo)出的底層文件導(dǎo)入 CAM 工具比如 Altium 自帶的 CAMtastic或者免費的一些 Gerber 查看器都可以。選擇該文件執(zhí)行編輯-鏡像-按 X 軸或 Y 軸翻轉(zhuǎn)再另存為一個新文件。注意鏡像軸的選擇要看你和工廠的約定一般以左下角原點做水平翻轉(zhuǎn)比較常見。這個方案的優(yōu)勢是不動 PCB 源文件只對交付文件做后期加工。劣勢也很明顯容易漏層。底層銅鏡像了、底層阻焊忘了結(jié)果交貨時坐標(biāo)對不上。而且一旦出廠的是舊版 Gerber這個操作是不可逆的你只能另存副本不能覆蓋原文件。所以我只在極特殊情況下用這個方法比如某個文件是別人給的、源工程找不到只能在 Gerber 層面補救。3.4 方案四用腳本 / Output Job 做批量鏡像如果你管理的是一整套輸出規(guī)范比如公司所有板子都要出兩套 Gerber一套正向、一套鏡像備查那就不要每次手工點。把 Output Job 配置好配合腳本可以做到一鍵出兩套。Output Job 可以添加兩個 Gerber 輸出通道分別指向不同的輸出目錄。每個通道對應(yīng)一份 Gerber Setup 設(shè)置其中一個通道把 Mirror 列全部勾上另一個通道保持正向。這套配置保存到工程模板里之后打開任何一個新工程按一下 Process Outputs 就能同時生成兩套文件。如果項目多到連 Output Job 都不想手工改可以考慮寫一個很小的 DelphiScript 批處理腳本。大致邏輯是遍歷某個文件夾下的所有 PCB 文檔逐個打開修改 Gerber Setup 里的層鏡像屬性再執(zhí)行輸出。Altium 的腳本接口里Gerber 設(shè)置是通過 IOutputJob 和 IOutput 等對象操作底層接口在不同版本間有些變化這里不展開完整代碼。穩(wěn)妥的做法是先在你自己的環(huán)境里錄制一次手工操作生成腳本再改循環(huán)部分這樣能避開很多接口不兼容的坑。4. 實操記錄與參數(shù)驗證4.1 一次完整的鏡像導(dǎo)出過程我在一個模擬項目 X 上完整走一遍給大家參考。板子是四層板頂層、內(nèi)層 2、內(nèi)層 3、底層客戶要求出底面鏡像的一套文件用于反面字符工藝。我的操作順序是先打開 Gerber Files 對話框在 Layers 頁顯示 Mirror 列然后勾選 Bottom Copper、Bottom Solder、Bottom Overlay、Bottom Paste 這四層同時把鉆孔文件里的 Drill Drawing 和 Drill Guide 也打開。為什么鉆孔也要一起出因為在 CAM 里驗證鏡像層時必須拿鉆孔層和底層銅互相對坐標(biāo)否則你看不出鏡像是否真的生效。勾完之后我在 Advanced 頁把單位選成毫米格式選 2:5尾零填充選擇 Suppress trailing zeroes輸出目錄單獨建了 out_dir_gerber_mirror。生成完成后我打開 CAM 查看器導(dǎo)入各個光繪文件把 Bottom Copper 的鏡像層和 Drill 文件疊在一起在某一塊 BGA 區(qū)域選了一個孔查看它在兩個文件里的坐標(biāo)是否一致。正常情況下應(yīng)該是一致的因為 Altium 在鏡像底層的同時會保持鏡像層和非鏡像鉆孔層的相對位置。結(jié)果一致就可以放心發(fā)出去如果發(fā)現(xiàn)某層沒勾或者坐標(biāo)差了一個奇數(shù)倍格點馬上回去重出。4.2 驗證鏡像正確性的三個手段第一個手段是文本方向檢查。在 CAM 工具里把鏡像過的底層絲印放大看字符串是否左右反了。假如設(shè)計里你本來寫的是 AB出圖后是 BA那說明鏡像生效如果出圖后還是 AB你就得考慮是不是該層沒勾上或者這個文件本來就是從舊工程里帶出來的非鏡像備份。第二個手段是對齊檢查。把鏡像層和非鏡像層的同一條板邊對比看它們是否都沿著原點對齊。正常情況下板邊、定位孔、工藝邊都應(yīng)在同一坐標(biāo)范圍內(nèi)。如果你看到某個文件整體跑了半個板子那基本是鏡像軸選錯或者原點設(shè)置不一致導(dǎo)致的。第三個手段是回讀檢查。Altium 也可以把生成的 Gerber 文件導(dǎo)入回 PCB Editor作為一個臨時板子來看。操作是 File - Import - Gerber導(dǎo)入鏡像過的文件后選中某個參考點觀察它相對原點是否處于預(yù)期位置。這個方法能把最終文件結(jié)果直接疊加到原設(shè)計上比在 CAM 里純看坐標(biāo)更直觀也更容易發(fā)現(xiàn)問題。我在這一步上的經(jīng)驗是驗證不要偷懶。誤差在屏幕上肉眼很難看出來但 CAM 里的坐標(biāo)顯示是精確到小數(shù)點后四位的。每次出完 Gerber我至少會抽查三組關(guān)鍵坐標(biāo)包括一個板角、一個定位孔、一個靠近中心的器件焊盤。相對誤差超過 0.02mm 的都會重新排查絕不往下游發(fā)。5. 常見問題與排查實錄為了讓這部分可以直接查閱我整理了一個常見問題表。問題現(xiàn)象可能原因優(yōu)先排查方法22.11 之后找不到鏡像勾選項Mirror 列默認(rèn)被隱藏在層列表表頭右鍵顯示 Mirror 列勾了鏡像但疊加后層錯位只勾了部分層沒有做整套鏡像將底層銅、阻焊、字符、鉆孔配套一起鏡像出圖后字符方向仍然反的鏡像軸選擇不對或看的是非鏡像備份文件先 VB 查看背面確認(rèn)期望方向再重出從舊工程打開后鏡像丟失新舊輸出引擎不兼容重建 Output Job按新版重新設(shè)置底層孔位和頂層孔位 CAM 里對不上坐標(biāo)格式精度太低或不同層用了不同格式統(tǒng)一 Advanced 頁格式為 2:4 或 2:5鏡像后的絲印文字可讀但銅箔圖形反了鏡像的是整個層而不僅僅是文字明確需求是“只鏡像字符”還是“整套層鏡像”第二條是個非常高發(fā)的問題。很多項目里底層字符在 PCB 界面上看是正的用戶就覺得“我已經(jīng)處理好了”出 Gerber 時只勾了底層絲印鏡像沒管底層銅和鉆孔。結(jié)果工廠 CAM 一疊層發(fā)現(xiàn)底層絲印和底層銅錯位最終成品字符壓到了焊盤上。字符壓焊盤不是絕對不行但如果事先沒溝通很容易被當(dāng)成設(shè)計失誤來回扯皮。再說一個我遇到過多次的坑多人協(xié)作時的版本混亂。A 同事在 22.11 工程里生成了一份鏡像 GerberB 同事拿到手后覺得不對直接在文件夾里改了后綴復(fù)制了一份完全沒重新生成。最后送到板廠的文件名和內(nèi)容完全對不上。我的建議是鏡像文件作為交付物時最好在文件名里帶上工程項目名稱、板卡版本、版本號和增量號并且由一個人統(tǒng)一發(fā)出不要用共享文件夾裸奔。最后是坐標(biāo)原點的坑。鏡像時如果 PCB 原點設(shè)置不在板框左下角鏡像后的板框可能會跑到負(fù)象限。大多數(shù) CAM 工具對負(fù)坐標(biāo)也能處理但部分工廠的下游設(shè)備或拼板腳本對負(fù)值敏感會導(dǎo)致拼板時整體偏差。我通常會在出 Gerber 前把原點重新放到板框左下角或者在 Advanced 頁里勾選 Keep PCB origin保證所有輸出文件的起始坐標(biāo)一致。結(jié)尾收個經(jīng)驗這些年和鏡像層打交道我最大的體會是版本更新不可怕真正費時間的是舊經(jīng)驗失效后不得不重新踩坑。22.11 之后 Altium 的界面更干凈代價是很多原來一眼可見的選項被藏了起來。只要記得去層列表表頭右鍵調(diào)出 Mirror 列再按“底層配套層整套鏡像”的原則操作大方向就不會錯。如果你正在做的板子恰好需要兩類 Gerber 同時交付不妨提前把 Output Job 存成模板一正一反兩個通道都配好以后每次只要改板名和版本號就行。這一步前期花二十分鐘后面能省下幾十次重復(fù)勞動。鏡像這件事說穿了就是坐標(biāo)變換理解了它后面再遇到類似“某一層方向不對”的制造問題你都能很快推回去。