在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何實(shí)現(xiàn)PADS導(dǎo)出區(qū)分頂層和底層元器件的BOM

jf_iZR6mdqV ? 來(lái)源:PCB和原理圖設(shè)計(jì)與共享 ? 2023-09-23 09:24 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

導(dǎo)出BOM是硬件工程師在設(shè)計(jì)PCB時(shí)必備的一項(xiàng)任務(wù)。通常情況下,導(dǎo)出的BOM中并沒(méi)有區(qū)分頂層和底層的元器件,但是有時(shí)候我們需要對(duì)這兩者進(jìn)行分開(kāi),以便更好地進(jìn)行統(tǒng)計(jì)和管理。

f81f0276-59a8-11ee-939d-92fbcf53809c.jpg

f82979cc-59a8-11ee-939d-92fbcf53809c.jpg

本文將介紹如何通過(guò)編寫(xiě)PADS的BOM的導(dǎo)出腳本代碼實(shí)現(xiàn)這個(gè)功能。

首先,我們需要了解腳本中的原理。在PADS導(dǎo)出BOM的腳本中,一般會(huì)讀取元器件的相關(guān)信息,如元器件編號(hào)、名稱(chēng)、數(shù)量等。我們需要在腳本中增加元器件層信息的讀取,以及在整理元器件時(shí)對(duì)層信息進(jìn)行判斷,從而實(shí)現(xiàn)元器件分頂層和底層的歸類(lèi)統(tǒng)計(jì)。

編寫(xiě)以下代碼:

f82ecf9e-59a8-11ee-939d-92fbcf53809c.jpg

f83456da-59a8-11ee-939d-92fbcf53809c.jpg

代參考代碼:

Const Columns = Array("Item","Description","Value","PCB Decal","Ref","OPTION","Quantity","layer")

'Array of column alignment: 0 - Align Left, 1 - Align Right, 2 - Align Center.

Const Align= Array(0,0,0,0,0,0,0)

Dim fname As String

Sub Main

fname = ActiveDocument

If fname = "" Then

fname = "Untitled"

End If

tempFile = DefaultFilePath & " emp.txt"

Open tempFile For Output As #1

StatusBarText = "Generating report..."

'Output table header

For i = 0 To UBound(Columns)

OutCell Columns(i)

Next

Print #1

Dim part_Count As Integer

part_Count = 0

For Each part In ActiveDocument.Components

If part.Pins.Count > 1 Then

part_Count = part_Count + 1

End If

Next part

ReDim Parts(part_Count, 14) As String

For Each part In ActiveDocument.Components

If part.Pins.Count > 1 Then

For intJ = 1 To 8

Parts(intI,1) = ""

Parts(intI,2) = AttrVal(part, "Description")

Parts(intI,3) = AttrVal(part, "Value")

Parts(intI,4) = part.Decal

Parts(intI,5) = part.Name

Parts(intI,6) = AttrVal(part, "Option")

Parts(intI,7) = ""

Parts(intI,8) =ActiveDocument.LayerName(part.layer)

Next intJ

intI= intI + 1

End If

Next part

Dim comp_counter As Integer

Dim Species As Integer

Const flag As Integer = 10

Dim Component As String

Dim Component_tempAs String

Dim label As String

comp_counter = 0

Species = 0

For i = 1 To UBound(Parts, 1)

If Parts(i, flag) = "" Then

Component = Parts(i, 2) &Parts(i, 6)

label = Parts(i, 5)

comp_counter = 1

For j = i + 1 To UBound(Parts, 1)

Component_temp =Parts(j, 2) &Parts(j, 6)

If Component = Component_temp Then

comp_counter = comp_counter + 1

label = label & ", " &Parts(j, 5)

Parts(j, flag) = "0"

End If

Next j

Parts(i, 5) = label

Parts(i, 7) = Str(comp_counter)

Species = Species + 1

End If

Next i

Dim NO_ As Integer

ReDim SpeciesArray1(Species, 8)

ReDim SpeciesArray2(Species, 8)

NO_ = 1

For i = 1 To UBound(Parts, 1)

If Parts(i, flag) = "" And Parts(i, 8)="TOP" Then

SpeciesArray1(NO_, 1) = Parts(i, 1)

SpeciesArray1(NO_, 2) = Parts(i,2)

SpeciesArray1(NO_, 3) = Parts(i,3)

SpeciesArray1(NO_, 4) = Parts(i,4)

SpeciesArray1(NO_, 5) = Parts(i,5)

SpeciesArray1(NO_, 6) = Parts(i,6)

SpeciesArray1(NO_, 7) = Parts(i,7)

SpeciesArray1(NO_, 8) = Parts(i,8) NO_ = NO_ + 1

ElseIf Parts(i, flag) = "" And Parts(i, 8)="BOT" Then

SpeciesArray2(NO_, 1) = Parts(i, 1)

SpeciesArray2(NO_, 2) = Parts(i, 2)

SpeciesArray2(NO_, 3) = Parts(i,3)

SpeciesArray2(NO_, 4) = Parts(i,4)

SpeciesArray2(NO_, 5) = Parts(i, 5)

SpeciesArray2(NO_, 6) = Parts(i, 6)

SpeciesArray2(NO_, 7) = Parts(i, 7)

SpeciesArray2(NO_, 8) = Parts(i, 8)

NO_ = NO_ + 1

End If

Next i

OutCell "TOP"

Print #1

For i = 1 To UBound(SpeciesArray1, 1)

If SpeciesArray1(i, 8)="TOP" Then

For j =1 To 8

OutCell SpeciesArray1(i,j)

Next j

Print #1

End If

Next i

OutCell "BOT"

Print #1

For i = 1 To UBound(SpeciesArray2, 1)

If SpeciesArray2(i, 8)="BOT" Then

For j =1 To 8

OutCell SpeciesArray2(i,j)

Next j

Print #1

End If

Next i

Close #1

ExportToExcel

End Sub

Function AttrVal (obj As Object, nm As String)

AttrVal = IIf(obj.Attributes(nm) Is Nothing, "", obj.Attributes(nm))

End Function

Sub ExportToExcel

FillClipboard

Dim xl As Object

On Error Resume Next

Set xl =GetObject(,"Excel.Application")

On Error GoTo ExcelError' Enable error trapping.

If xl Is Nothing Then

Set xl =CreateObject("Excel.Application")

End If

xl.Visible = True

xl.Workbooks.Add

xl.ActiveSheet.Paste

xl.Range("A1:H1").Font.Bold = True

xl.Range("A1:H1").NumberFormat = "@"

xl.Range("A1:H1").AutoFilter

For i = 0 To UBound(Align)

xl.Columns(i + 1).HorizontalAlignment = Choose(Align(i)+1, -4131, -4152, -4108)

Next

xl.ActiveSheet.UsedRange.Columns.AutoFit

'Output Report Header

xl.Rows(1).Insert

xl.Rows(1).Cells(1) = Space(1) & "Part Report for " & fname & " on " & Now

xl.Rows(2).Insert

xl.Rows(1).Font.bold = True

'Output Design Totals

lastRow = xl.ActiveSheet.UsedRange.Rows.Count + 1

xl.Rows(lastRow + 1).Font.bold = True

xl.Rows(lastRow + 1).Cells(1) = Space(1) & "Design Part count: " & ActiveDocument.Components.Count

xl.Range("A1").Select

On Error GoTo 0 ' Disable error trapping.

Exit Sub

ExcelError:

MsgBox Err.Description, vbExclamation, "Error Running Excel"

On Error GoTo 0 ' Disable error trapping.

Exit Sub

End Sub

Sub OutCell (txt As String)

Print #1, txt; vbTab;

End Sub

Sub FillClipboard

StatusBarText = "Export Data To Clipboard..."

' Load whole file to string variable

tempFile = DefaultFilePath & " emp.txt"

Open tempFileFor Input As #1

L = LOF(1)

AllData$ = Input$(L,1)

Close #1

'Copy whole data to clipboard

Clipboard AllData$

Kill tempFile

StatusBarText = ""

End Sub

通過(guò)以上代碼,我們成功實(shí)現(xiàn)了在PADS導(dǎo)出BOM時(shí)區(qū)分頂層和底層元器件的功能。使用這個(gè)區(qū)分頂層和底層的BOM,工程師可以更好地進(jìn)行設(shè)計(jì)分析、成本估算以及供應(yīng)鏈管理,提高工作效率和準(zhǔn)確性。

f83c0650-59a8-11ee-939d-92fbcf53809c.jpg

f845802c-59a8-11ee-939d-92fbcf53809c.jpg

總結(jié)起來(lái),本文介紹了如何通過(guò)修改PADS導(dǎo)出BOM的腳本,實(shí)現(xiàn)區(qū)分頂層和底層元器件的功能。通過(guò)這樣的改進(jìn),我們可以更好地對(duì)電路板中的元器件進(jìn)行分類(lèi)和統(tǒng)計(jì),提高設(shè)計(jì)過(guò)程的可視性和管理效果。希望這篇文章對(duì)您在設(shè)計(jì)PCB時(shí)的工作有所幫助。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 元器件
    +關(guān)注

    關(guān)注

    113

    文章

    4833

    瀏覽量

    95021
  • PADS
    +關(guān)注

    關(guān)注

    81

    文章

    819

    瀏覽量

    109127
  • BOM
    BOM
    +關(guān)注

    關(guān)注

    5

    文章

    267

    瀏覽量

    41301

原文標(biāo)題:如何實(shí)現(xiàn)PADS導(dǎo)出區(qū)分頂層和底層元器件的BOM

文章出處:【微信號(hào):電子設(shè)計(jì)聯(lián)盟,微信公眾號(hào):電子設(shè)計(jì)聯(lián)盟】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    pads layout導(dǎo)出BOM出錯(cuò)

    請(qǐng)教各位大俠,在pads layout 環(huán)境中使用腳本文件導(dǎo)出BOM,提示excel內(nèi)存不足怎么解決?
    發(fā)表于 04-24 11:46

    PADS LAYOUT中用模板腳本導(dǎo)出漂亮的BOM表!

    PADS LAYOUT中用模板腳本導(dǎo)出漂亮的BOM表!
    發(fā)表于 06-22 22:55

    PROTEL和***器件頂層底層的問(wèn)題!!

    請(qǐng)問(wèn)各位大神,如圖這兩顆器件明明在底層,但是雙擊顯示的確是頂層。當(dāng)我把他改成底層后,又顯示在頂層了。請(qǐng)問(wèn)怎么回事?怎么改?
    發(fā)表于 08-31 20:11

    PADS vx.2導(dǎo)出BOM

    PADS vx.2導(dǎo)出BOM,請(qǐng)各位大師指教
    發(fā)表于 03-10 11:52

    請(qǐng)問(wèn)怎么高亮顯示頂層底層器件

    在AD布線的時(shí)候,怎么讓頂層或者底層元器件高亮顯示?
    發(fā)表于 06-10 03:53

    電路板設(shè)計(jì)中底層器件快速切換到頂層方式

    電路板設(shè)計(jì)中底層器件如何快速切換到頂層元器件實(shí)現(xiàn)快速的頂?shù)浊袚Q,能更加方便高效讓我們?nèi)ミM(jìn)行布局。單個(gè)
    發(fā)表于 07-10 08:26

    AD中怎么刪除頂層或者底層

    AD中怎么刪除頂層或者底層,只保留底層或者頂層的絲印。導(dǎo)出PDF便于焊接元器件
    發(fā)表于 09-30 16:20

    華秋DFM可視化BOM交互焊接工具——SMT工廠、PCB工程師的福音來(lái)了!

    透明背景,當(dāng)導(dǎo)出圖片模糊看不清可設(shè)置圖片大小。04元件清單統(tǒng)計(jì)元器件清單統(tǒng)計(jì),分別統(tǒng)計(jì)頂層元件、底層元件以及元件的種類(lèi)。焊盤(pán)數(shù)分別統(tǒng)計(jì)貼片焊盤(pán)與插件焊盤(pán),當(dāng)已焊接的元件和空貼、不焊的元
    發(fā)表于 12-23 10:59

    華秋DFM推出可視化BOM交互焊接工具,助力SMT工廠提升效率

    透明背景,當(dāng)導(dǎo)出圖片模糊看不清可設(shè)置圖片大小。04元件清單統(tǒng)計(jì)元器件清單統(tǒng)計(jì),分別統(tǒng)計(jì)頂層元件、底層元件以及元件的種類(lèi)。焊盤(pán)數(shù)分別統(tǒng)計(jì)貼片焊盤(pán)與插件焊盤(pán),當(dāng)已焊接的元件和空貼、不焊的元
    發(fā)表于 12-23 11:16

    如何從PADS-LAYOUT中導(dǎo)出BOM清單方法

    如何從PADS-LAYOUT中導(dǎo)出BOM清單方法最近很多朋友問(wèn)我關(guān)于如何如何從PADS-LAYOUT中出BOM清單。今把方法寫(xiě)下來(lái)好讓有需要
    發(fā)表于 09-19 08:18 ?0次下載

    常用元器件封裝匯總

    直插式元器件封裝的焊盤(pán)一般貫穿整個(gè)電路板,從頂層穿下,在底層進(jìn)行元器件的引腳焊接。
    的頭像 發(fā)表于 04-24 11:34 ?3.8w次閱讀
    常用<b class='flag-5'>元器件</b>封裝匯總

    pcb頂層底層互換

    本文主要詳細(xì)介紹了pcb頂層底層互換,把PCB切換到頂層,然后Edit/select/allonlayer選擇頂層
    發(fā)表于 04-26 15:47 ?1.7w次閱讀
    pcb<b class='flag-5'>頂層</b>和<b class='flag-5'>底層</b>互換

    PADS導(dǎo)出坐標(biāo)和BOM腳本文件資料免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是PADS導(dǎo)出坐標(biāo)和BOM腳本文件資料免費(fèi)下載。
    發(fā)表于 08-23 08:00 ?0次下載
    <b class='flag-5'>PADS</b><b class='flag-5'>導(dǎo)出</b>坐標(biāo)和<b class='flag-5'>BOM</b>腳本文件資料免費(fèi)下載

    電子元器件芯片的型號(hào)如何區(qū)分

    一般來(lái)說(shuō)完整的芯片器件型號(hào)都是由三部分組成的,分別是主體型號(hào)、前綴、后綴。那么電子元器件芯片的型號(hào)如何區(qū)分呢? 1、區(qū)分有鉛和無(wú)鉛。 2、可區(qū)分
    的頭像 發(fā)表于 01-02 15:39 ?1.3w次閱讀

    PCB元器件封裝知識(shí)

    通常來(lái)說(shuō),元器件封裝主要分為DIP雙列直播和SMD貼片封裝兩種,前者封裝的焊盤(pán)一般貫穿整個(gè)電路板,從頂層穿下,在底層進(jìn)行元器件的引腳焊接;后者是指其焊盤(pán)只附著在電路板的
    的頭像 發(fā)表于 02-01 10:34 ?4729次閱讀
    主站蜘蛛池模板: 久久精品亚洲一区二区三区浴池 | 偷偷要色偷偷 | 亚洲视频在线播放 | 日本免费人成黄页在线观看视频 | 色爽视频 | 性欧美人与zooz | 美女被日出白浆 | 亚洲国产精品自在现线让你爽 | 九九精品影院 | 十三以下岁女子毛片免费播放 | 成人午夜性视频欧美成人 | 小屁孩cao大人免费网站 | 午夜免费视频福利集合100 | 成人在线视频网址 | 天堂网www在线 | 国产人免费人成免费视频 | 狠狠色欧美亚洲狠狠色www | 操的好爽| 亚洲黄色天堂 | 狠狠色伊人亚洲综合第8页 狠狠色依依成人婷婷九月 狠狠色影院 | 美女视频很黄很暴黄是免费的 | 久久精品国产6699国产精 | 国产亚洲综合精品一区二区三区 | 精品国产第一国产综合精品gif | 你懂的在线视频网站 | 激情文学综合 | 婷婷毛片 | 香蕉视频在线观看黄 | 色婷婷中文字幕 | 三级在线观看视频 | 天堂资源在线中文 | 老司机午夜永久在线观看 | 亚洲欧洲国产精品你懂的 | 成人在线视频网址 | 亚洲天堂伦理 | 夭天干天天做天天免费看 | 国产天天色 | 嫩草影院国产 | 欧美jizzhd精品欧美4k | 亚洲狠狠网站色噜噜 | 国产精品一区二区三区免费视频 |