徐建春
(特靈科技亞太工程技術(shù)中心,上海,200051)
我們?cè)趹?yīng)用Altium Designer進(jìn)行電子產(chǎn)品設(shè)計(jì)的過(guò)程中,經(jīng)常需要對(duì)特定對(duì)象進(jìn)行修改工作,這些特定對(duì)象往往有成百上千個(gè),如果一個(gè)個(gè)進(jìn)行手工修改,繁瑣且費(fèi)時(shí)費(fèi)力。
Altium Designer提供強(qiáng)大的Query引擎幫助我們解決上述問(wèn)題,Query 引擎采用專門(mén)的語(yǔ)言,按照一定的語(yǔ)法結(jié)構(gòu)在Query對(duì)話框中輸入后,可以幫助我們快速地找到成百上千個(gè)特定對(duì)象,并且可以結(jié)合Inspector工具進(jìn)行批量修改。Query引擎另外一個(gè)重要應(yīng)用領(lǐng)域是在Altium Designer電路設(shè)計(jì)和電路板設(shè)計(jì)中制定設(shè)計(jì)規(guī)則,一個(gè)準(zhǔn)確,有效的設(shè)計(jì)規(guī)則可以幫助設(shè)計(jì)者更快更好地進(jìn)行電子產(chǎn)品設(shè)計(jì),減少出錯(cuò)。
Altium Designer Query引擎包羅萬(wàn)象,內(nèi)容十分廣泛,實(shí)際上囊括了設(shè)計(jì)中的所有對(duì)象。本文由于篇幅有限,只能拋磚引玉,分享幾個(gè)在工作中比較常用的應(yīng)用案例。
對(duì)于一般用戶來(lái)說(shuō),Altium Designer Query引擎可以分成電路Query部分、電路板Query部分和元器件符號(hào)庫(kù)Query部分。電路Query可以分成Fields(域), Μembership(會(huì)員),Object Type(對(duì)象類型)等三個(gè)部分。電路板Query可以分成Attribute (屬性),F(xiàn)ields(域), Layer(層),Μembership(會(huì)員),Object Type(對(duì)象類型),Parameters(參數(shù))等六個(gè)部分。元器件符號(hào)庫(kù)Query部分不在本文討論范圍,所以就不多描述。實(shí)際上這些部分包括了電路設(shè)計(jì)和電路板設(shè)計(jì)中的所有對(duì)象。
2.1.1 電阻符號(hào)引腳改變長(zhǎng)度
有的元器件庫(kù)中的器件比如電阻符號(hào)引腳很長(zhǎng),這樣會(huì)導(dǎo)致電路圖繪制比較麻煩。我們可以用Query一次性把這些器件都找到,然后利用Inspector工具把這些器件長(zhǎng)引腳改短。如圖1所示是從筆者公司元器件庫(kù)中拖出來(lái)的電阻,可以看到電阻引腳很長(zhǎng)。
圖1 從庫(kù)取出電阻以及半導(dǎo)體器件
我們可以在Altium Sch Filter面板中輸入如下語(yǔ)句:
InPart('R*') && PinLength ='30'
這句語(yǔ)句的意思是要查找所有標(biāo)號(hào)是R開(kāi)頭的器件,并且引腳長(zhǎng)度是30的,實(shí)際表示長(zhǎng)度是300個(gè)密爾。
R*的意思是所有標(biāo)號(hào)是R開(kāi)頭的器件,R后面的數(shù)字不限位數(shù),可以是R1,也可以是R9999。如果在語(yǔ)句中輸入的是R?,R后面的數(shù)字只能有一位,表示R0~R9。
PinLength表示電路符號(hào)的引腳長(zhǎng)度。
點(diǎn)擊Sch Filter面板中的Apply,可以在電路圖中找到所有符合條件的電阻。
如圖2所示,符合條件的器件會(huì)高亮顯示,不符合條件的器件會(huì)變灰。
圖2 查找到的電阻
接下去是修改,我們可以應(yīng)用Sch Inspector把引腳長(zhǎng)度參數(shù)改成15,這樣可以一次性把符合條件的電阻引腳長(zhǎng)度改短,如圖3所示。
從圖3可以看出,電阻的引腳已經(jīng)被改短了,但是不符合條件的半導(dǎo)體開(kāi)關(guān)管的引腳長(zhǎng)度保持不變,因?yàn)榘雽?dǎo)體開(kāi)關(guān)管的器件標(biāo)號(hào)是Q開(kāi)頭的,不符合查詢條件。
圖3 引腳改短的電阻
2.1.2 把電路圖的版本由F改成G
在電子產(chǎn)品設(shè)計(jì)中,我們經(jīng)常需要修改電路圖的版本號(hào)。對(duì)于有很多張電路圖的設(shè)計(jì)項(xiàng)目,如果我們對(duì)每張電路圖的版本號(hào)一張張進(jìn)行手動(dòng)修改,就會(huì)十分得繁瑣。為了節(jié)省時(shí)間,這里我們可以采用Query進(jìn)行批量修改。
首先我們需要把所有需要修改版本號(hào)的電路圖都打開(kāi),并且把修改范圍限定在所有打開(kāi)的文件上。
然后我們?cè)贏ltium Sch Filter面板中輸入如下語(yǔ)句:
Font='Arial, 26'&&StringText='F'
這句話表示要查找字體是Arial, 字體大小是26,并且字符是'F'的所有文字。
查找到的版本'F', 如圖4所示。
圖4 查找版本號(hào)'F’
接下去是修改,我們可以應(yīng)用Sch Inspector把'F'改成'G'。
由圖5可見(jiàn),電路圖的版本號(hào)由'F'版本變成了'G'版本。
圖5 所有電路圖版本號(hào)一起修改成'G'
2.2.1 需要把頂層網(wǎng)絡(luò)名為R_24VAC的布線改粗
在電路板設(shè)計(jì)中,我們經(jīng)常需要把一些線路加粗,如果進(jìn)行手動(dòng)修改,那么就需要把這些布線一段段地打開(kāi)屬性對(duì)話框,然后修改每一段布線的寬度,整個(gè)操作十分繁瑣和浪費(fèi)時(shí)間。這里我們同樣可以應(yīng)用Altium Query功能進(jìn)行批量修改。
我們可以在Altium Pcb Filter面板中輸入如下語(yǔ)句:
InNet('R_24VAC') AND IsTrack AND OnTopLayer
這句話表示要查找網(wǎng)絡(luò)名為R_24VAC的布線,并且該布線位于電路板頂層。
其中InNet('R_24VAC')表示名為R_24VAC的網(wǎng)絡(luò),IsTrack表示是布線,OnTopLayer表示位于頂層,并且這3個(gè)條件是與的關(guān)系。
點(diǎn)擊APPLY就能找到位于電路板頂層的R_24VAC布線。
圖6高亮顯示的就是網(wǎng)絡(luò)名為R_24VAC的頂層布線,可以看出這些高亮布線有的粗一點(diǎn),有的細(xì)一點(diǎn),高亮顯示表示被查找到了。
圖6 找到頂層R_24VAC的布線
找到了以后就很簡(jiǎn)單,可以直接在PCB Inspector中改成80密爾。
圖7高亮顯示的是網(wǎng)絡(luò)名為R_24VAC的頂層布線改成了80密爾,這樣我們就實(shí)現(xiàn)了一次性加粗位于頂層的R_24VAC多段布線。
圖7 加粗后的布線
2.2.2 制定底層貼片元件和通孔元件距離的設(shè)計(jì)規(guī)則
Query的一個(gè)重要應(yīng)用場(chǎng)合就是PCB 設(shè)計(jì)規(guī)則的制定,下面舉一個(gè)例子來(lái)描述是如何運(yùn)用Query制定設(shè)計(jì)規(guī)則的。
我們?cè)陔p面板的設(shè)計(jì)中,經(jīng)常需要在電路板正反面都貼上元器件,這就叫雙面回流焊的工藝。為了保證雙面回流焊的生產(chǎn)制造工藝,需要對(duì)底層貼片元件制定一個(gè)設(shè)計(jì)規(guī)則:底層貼片元件和通孔元器件焊盤(pán)的距離要保證>4毫米。
那么如何保證呢?一種方法是在設(shè)計(jì)的過(guò)程中,時(shí)刻注意保持4毫米的間距。但是更好的辦法是制定一個(gè)設(shè)計(jì)規(guī)則讓Altium在線規(guī)則檢查時(shí)刻提醒設(shè)計(jì)者,有沒(méi)有保證4毫米的間距。
我們可以這樣制定這個(gè)設(shè)計(jì)規(guī)則:
第一步要找到所有的通孔焊盤(pán)。我們可以在Altium Designer 設(shè)計(jì)規(guī)則制定面板中輸入如下語(yǔ)句:
Where The First Object Μatches: IsThurPin
這句語(yǔ)句的意思是要找到所有通孔元器件焊盤(pán)。
可以用Test Queries進(jìn)行驗(yàn)證,當(dāng)點(diǎn)擊Apply, 圖8顯示示例電路板底層元件的所有通孔焊盤(pán)都找到了,因?yàn)槠渌副P(pán)都被反白隱藏。
圖8 選中所有通孔焊盤(pán)
第二步要找到所有底層元器件的貼片焊盤(pán),但是測(cè)試點(diǎn)除外,因?yàn)闇y(cè)試點(diǎn)不需要貼上元器件。
我們可以在Altium Designer 設(shè)計(jì)規(guī)則制定面板中輸入如下語(yǔ)句:
Where The Second Object Μatches:IsSΜTPin AND NOT InComponent('TP*') AND OnBottomLayer
這句語(yǔ)句的意思是要找到所有位于底層的貼片焊盤(pán),并且不屬于元器件標(biāo)號(hào)是TP開(kāi)頭的,因?yàn)門(mén)P*代表的是測(cè)試焊盤(pán),測(cè)試焊盤(pán)也是屬于貼片焊盤(pán),如果不把測(cè)試焊盤(pán)排除出我們需要定位的范圍,那么當(dāng)測(cè)試焊盤(pán)和通孔焊盤(pán)之間距離小于4毫米時(shí),就會(huì)導(dǎo)致誤報(bào)錯(cuò)。
我們可以用Test Queries進(jìn)行驗(yàn)證,當(dāng)點(diǎn)擊Apply,圖9可見(jiàn)示例電路板的底層除測(cè)試點(diǎn)以外的所有貼片焊盤(pán)都找到了,同時(shí)其他器件焊盤(pán)都被反白隱藏了。
圖9 找到底層除測(cè)試點(diǎn)以外的所有貼片焊盤(pán)
然后在規(guī)則中設(shè)置間距為4毫米即可。
規(guī)則設(shè)置好后,我們可以測(cè)試一下,打開(kāi)在線DRC,當(dāng)把一個(gè)貼片焊盤(pán)靠近通孔焊盤(pán)時(shí),這個(gè)時(shí)候只要貼片焊盤(pán)和通孔焊盤(pán)間距小于4毫米(下圖顯示間距是3.797毫米,顯然小于4毫米),Altium Designer在線設(shè)計(jì)規(guī)則檢查就會(huì)自動(dòng)變綠色報(bào)錯(cuò),并且顯示錯(cuò)誤的原因。
圖10顯示說(shuō)明設(shè)計(jì)規(guī)則已經(jīng)制定成功了。
圖10 設(shè)計(jì)規(guī)則測(cè)試
上述幾個(gè)Query應(yīng)用案例看似簡(jiǎn)單,但是十分實(shí)用,已經(jīng)在實(shí)際工作中節(jié)省了大量時(shí)間??梢?jiàn)熟練掌握Query功能,不但可以幫助我們快速進(jìn)行電路和電路板設(shè)計(jì)中的修改工作,減少重復(fù)勞動(dòng)。還可以幫助我們制定好設(shè)計(jì)規(guī)則,一個(gè)有效設(shè)計(jì)規(guī)則可以大大減少產(chǎn)品設(shè)計(jì)中的出錯(cuò)概率。
Altium Designer是一款功能強(qiáng)大的電子設(shè)計(jì)自動(dòng)化軟件,具有很多方便實(shí)用的功能,熟練掌握這些功能,可以極大地提高電子產(chǎn)品設(shè)計(jì)效率,減少不必要的重復(fù)勞動(dòng)。希望大家努力研究Altium Designer,不斷提高電子產(chǎn)品設(shè)計(jì)水平。