設(shè)計(jì)原理圖時(shí),常常會(huì)遇到這樣的問(wèn)題。就是很多元器件的位號(hào)不是按順序編號(hào)的,中間空了很多號(hào)沒(méi)有用,有時(shí)候編號(hào)跨度很大。
比如上面的一個(gè)原理圖,從中我們可以看到電阻的位號(hào)從R385一下子跨到了R4000,電阻只有300多個(gè),但編號(hào)卻編到了4000多。雖然位號(hào)對(duì)設(shè)計(jì)結(jié)果沒(méi)有任何影響,但是查看原理圖或者整理BOM時(shí),會(huì)覺(jué)很亂,還有出貼片圖時(shí),編號(hào)數(shù)過(guò)大,元器件的外框放不下,有些數(shù)字會(huì)被絲印框擋住,看不清楚,或者被誤讀,給生產(chǎn)帶來(lái)不便和風(fēng)險(xiǎn)。在PADS軟件里嘗試一個(gè)一個(gè)改過(guò)來(lái),但是不好改,因?yàn)槿绻韴D頁(yè)碼多,元器件成百上千時(shí),那真是無(wú)從下手了。所以,以前遇到這種事,都是保持現(xiàn)狀。不過(guò)后來(lái)我學(xué)會(huì)了利用腳本的方法,編寫好一個(gè)腳本,運(yùn)行一下,一眨眼的功夫就把元器件的編號(hào)重新編排好了,而且是按順序,中間沒(méi)有斷層。
下面詳細(xì)講解這個(gè)方法。
第一步,可以先寫一個(gè)腳本查看一下原理圖里哪些號(hào)是用上的,哪些號(hào)是沒(méi)有用上的。打開腳本編輯器編寫以下腳本并運(yùn)行腳本,就可以彈出文檔顯示哪些號(hào)有用上,哪些號(hào)沒(méi)有用上。
第二步,再打開腳本編輯器,編寫以下代碼。
參考代碼:
Sub Main
Dim Rcount As Integer
Dim Ccount As Integer
Dim Lcount As Integer
Dim Dcount As Integer
Dim Qcount As Integer
Dim Jcount As Integer
Dim Ucount As Integer
Dim part_name As String
Dim sheets_count As Integer
sheets_count= ActiveDocument.Sheets.Count
'MsgBox sheets_count
'Set objs = ActiveDocument.GetObjects(,,True)
For Sheet_num = 1 To sheets_count
ActiveDocument.Sheets(Sheet_num).Activate
Set comps = ActiveDocument.ActiveSheet.Components
For i = 1 To comps.Count Step 1
part_name = comps.Item(i).Name
new_ref_num = Trim(Str(Val(Mid(part_name,2,4))+9000))
new_name = Mid(part_name,1,1) & new_ref_num
pre = UCase(Mid(part_name,1,1))
If pre = "R" Or pre = "C" Or pre = "L" Or pre = "D" Or pre = "Q" Or pre = "J" Or pre = "U" Then
If Val(Mid(part_name,2,5)) < 9000 Then
Let comps.Item(i).Name = new_name
End If
End If
Next i
Next Sheet_num
For Sheet_num = 1 To sheets_count
ActiveDocument.Sheets(Sheet_num).Activate
Set comps = ActiveDocument.ActiveSheet.Components
For i = 1 To comps.Count Step 1
part_name = comps.Item(i).Name
Select Case UCase((Mid(part_name,1,1)))
Case "R"
Rcount = Rcount +1
new_name = Mid(part_name,1,1) & Rcount
Let comps.Item(i).Name = new_name
Case "C"
Ccount = Ccount + 1
new_name = Mid(part_name,1,1) & Ccount
Let comps.Item(i).Name = new_name
Case "L"
Lcount = Lcount + 1
new_name = Mid(part_name,1,1) & Lcount
Let comps.Item(i).Name = new_name
Case "D"
Dcount = Dcount + 1
new_name = Mid(part_name,1,1) & Dcount
Let comps.Item(i).Name = new_name
Case "Q"
Qcount = Qcount + 1
new_name = Mid(part_name,1,1) & Qcount
Let comps.Item(i).Name = new_name
Case "J"
jcount = jcount + 1
new_name = Mid(part_name,1,1) & jcount
Let comps.Item(i).Name = new_name
Case "U"
Ucount = Ucount + 1
new_name = Mid(part_name,1,1) & Ucount
Let comps.Item(i).Name = new_name
End Select
Next i
Next Sheet_num
End Sub
第三步,運(yùn)行代碼,就可以看到頁(yè)面在不斷地閃動(dòng),元器件的編號(hào)在不斷地變化,幾秒鐘的時(shí)間就完成了元器件編號(hào)的重新編碼。如下圖所示,剛才電阻編號(hào)為4000多的沒(méi)有了,取而代之是300多了。
第四步,運(yùn)用剛才檢測(cè)元器件編號(hào)使用情況的腳本,驗(yàn)證一下編號(hào)有沒(méi)有重新按順序編排,結(jié)果如下。
從上圖可以看出,元器件編號(hào)已經(jīng)按順序重新編排了。
感興趣的朋友,可以按照上面的方法編寫代碼測(cè)試,也可以到群里下載現(xiàn)成的腳本測(cè)試。
編輯:hfy
-
元器件
+關(guān)注
關(guān)注
112文章
4745瀏覽量
92698 -
PCB設(shè)計(jì)
+關(guān)注
關(guān)注
394文章
4697瀏覽量
86087
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論