色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何實現PADS導出區分頂層和底層元器件的BOM

jf_iZR6mdqV ? 來源:PCB和原理圖設計與共享 ? 2023-09-23 09:24 ? 次閱讀

導出BOM是硬件工程師在設計PCB時必備的一項任務。通常情況下,導出的BOM中并沒有區分頂層和底層的元器件,但是有時候我們需要對這兩者進行分開,以便更好地進行統計和管理。

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

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

本文將介紹如何通過編寫PADS的BOM的導出腳本代碼實現這個功能。

首先,我們需要了解腳本中的原理。在PADS導出BOM的腳本中,一般會讀取元器件的相關信息,如元器件編號、名稱、數量等。我們需要在腳本中增加元器件層信息的讀取,以及在整理元器件時對層信息進行判斷,從而實現元器件分頂層和底層的歸類統計。

編寫以下代碼:

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

通過以上代碼,我們成功實現了在PADS導出BOM時區分頂層和底層元器件的功能。使用這個區分頂層和底層的BOM,工程師可以更好地進行設計分析、成本估算以及供應鏈管理,提高工作效率和準確性。

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

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

總結起來,本文介紹了如何通過修改PADS導出BOM的腳本,實現區分頂層和底層元器件的功能。通過這樣的改進,我們可以更好地對電路板中的元器件進行分類和統計,提高設計過程的可視性和管理效果。希望這篇文章對您在設計PCB時的工作有所幫助。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 元器件
    +關注

    關注

    112

    文章

    4725

    瀏覽量

    92477
  • PADS
    +關注

    關注

    80

    文章

    808

    瀏覽量

    107829
  • BOM
    BOM
    +關注

    關注

    5

    文章

    256

    瀏覽量

    40221

原文標題:如何實現PADS導出區分頂層和底層元器件的BOM

文章出處:【微信號:電子設計聯盟,微信公眾號:電子設計聯盟】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    PADS如何快速定位元器件庫中的元器件

    PADS 如何快速定位元器件庫中的元器件 Logic軟件在庫管理器中提供了元器件搜索功能,以便用戶更快找到所需要的元器件。 執行菜單命令文件
    的頭像 發表于 03-14 10:35 ?4636次閱讀

    pads layout導出BOM出錯

    請教各位大俠,在pads layout 環境中使用腳本文件導出BOM,提示excel內存不足怎么解決?
    發表于 04-24 11:46

    PADS LAYOUT中用模板腳本導出漂亮的BOM表!

    PADS LAYOUT中用模板腳本導出漂亮的BOM表!
    發表于 06-22 22:55

    PROTEL和***器件頂層底層的問題!!

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

    PADS vx.2導出BOM

    PADS vx.2導出BOM,請各位大師指教
    發表于 03-10 11:52

    請問怎么高亮顯示頂層底層器件

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

    電路板設計中底層器件快速切換到頂層方式

    電路板設計中底層器件如何快速切換到頂層元器件實現快速的頂底切換,能更加方便高效讓我們去進行布局。單個
    發表于 07-10 08:26

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

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

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

    透明背景,當導出圖片模糊看不清可設置圖片大小。04元件清單統計元器件清單統計,分別統計頂層元件、底層元件以及元件的種類。焊盤數分別統計貼片焊盤與插件焊盤,當已焊接的元件和空貼、不焊的元
    發表于 12-23 10:59

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

    透明背景,當導出圖片模糊看不清可設置圖片大小。04元件清單統計元器件清單統計,分別統計頂層元件、底層元件以及元件的種類。焊盤數分別統計貼片焊盤與插件焊盤,當已焊接的元件和空貼、不焊的元
    發表于 12-23 11:16

    如何從PADS-LAYOUT中導出BOM清單方法

    如何從PADS-LAYOUT中導出BOM清單方法最近很多朋友問我關于如何如何從PADS-LAYOUT中出BOM清單。今把方法寫下來好讓有需要
    發表于 09-19 08:18 ?0次下載

    常用元器件封裝匯總

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

    pcb頂層底層互換

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

    PADS導出坐標和BOM腳本文件資料免費下載

    本文檔的主要內容詳細介紹的是PADS導出坐標和BOM腳本文件資料免費下載。
    發表于 08-23 08:00 ?0次下載
    <b class='flag-5'>PADS</b><b class='flag-5'>導出</b>坐標和<b class='flag-5'>BOM</b>腳本文件資料免費下載

    電子元器件芯片的型號如何區分

    一般來說完整的芯片器件型號都是由三部分組成的,分別是主體型號、前綴、后綴。那么電子元器件芯片的型號如何區分呢? 1、區分有鉛和無鉛。 2、可區分
    的頭像 發表于 01-02 15:39 ?1.3w次閱讀
    主站蜘蛛池模板: 色欲人妻无码AV精品一区二区| 无限资源在线观看8| 亚洲伊人久久精品| 国模丽丽啪啪一区二区| 国产精品禁18久久久夂久| 手机看片国产免费久久网| 中文字幕不卡在线高清| 国产乱人偷精品视频A人人澡| 欧美video巨大粗暴18| YY6080A旧里番在线观看| 麻豆COMCN| 一个色夫导航| 欧美巨大xxxx做受高清| 国产成人免费片在线视频观看| 亚洲免费国产| 回复术士勇者免费观看全集| 日韩亚洲欧美中文高清| 91免费精品国自产拍在线可以看| 欧美成 人 网 站 免费| 国产精品色无码AV在线观看| 在教室做啊好大用力| 欧美写真视频一区| 国产主播AV福利精品一区| 99re1久久热在线播放| 久久国产精品二区99| 达达兔午夜一级毛片| 亚洲色欲色欲WWW在线丝| 品色堂主页| 近亲乱中文字幕| 大桥未久电影在线观看| 中文字幕爆乳JULIA女教师| 少妇无码吹潮久久精品AV| 亚欧视频在线观看| 久久青草影院| 国产精品你懂得| 99热国产这里只有精品6| 欧美一区二区三区播放| 国产亚洲精品黑人粗大精选| 亚洲精品九色在线网站| 青青青视频在线| 久久免费精品国产72精品剧情|