題:
使用代碼而不是單擊鼠標進行PCB設計?
guidoism
2019-07-31 18:36:05 UTC
view on stackexchange narkive permalink

我剛剛進入PCB設計,通常在學習如何通過菜單和鼠標單擊使用GUI時遇到麻煩。某些工程師是否使用更類似代碼的東西來生成PCB?

我不建議編寫普通的Gerber文件...
PCB佈局主要是視覺任務-移動和旋轉物件以使其合適。通過代碼執行聽起來很痛苦。
通常,大多數(如果不是全部)菜單項都有熱鍵。大多數工具都允許使用文本輸入來表示位置和方向(但是,這樣做不僅比用鼠標移動東西還要痛苦得多)。我使用文本工具來精確定位通孔和差分對之類的東西。
一些CAD軟件包比其他軟件包更具可疑性。以我的經驗,Orcad Allegro使您無法通過許多毫無意義的GUI操作來完成最簡單的事情是最糟糕的。Diptrace幾乎是最簡單,最流暢的用戶體驗。PADS是一個非常不錯的工具鏈,具有直觀的UI和許多高端功能。PADS適用於喜歡完成工作的工程師,Orcad適用於受虐狂。:D
在鍵盤快捷鍵和特殊情況下,以編程方式生成圖案是有意義的,但PCB佈局主要是交互式圖形任務。相反,在諸如FPGA之類的物理實施例中,邏輯占主導地位的情況通常是由硬件描述語言驅動的,而邏輯設計則由FPGA和(許多部分)ASIC設計驅動,邏輯編譯器則提供自動化的佈局和佈線工具。如果我們仍在使用裝滿TTL的大板構建大型機處理器,那麼從HDL到PCB的設計流程可能會相當……但是幸運的是我們沒有。
GUI幾乎是必不可少的。但是,如果您了解所有鍵盤快捷鍵,則可能無需鼠標或只需單擊最少即可完成很多工作。
奇怪的是,我們使用硬件描述語言進行數字芯片設計,而不使用PCB。
腳本。幾乎所有重要的東西都支持腳本或可以被劫持。有助於重複性操作,但其餘操作仍需手動完成。
@Michael:芯片沒有PCB所具有的各種機械約束。
五 答案:
Spehro Pefhany
2019-07-31 19:17:17 UTC
view on stackexchange narkive permalink

Altium實際上有一種腳本語言,幾種不同的語言。在某些情況下,使用算法可能有意義,例如創建重複的佈局或精確放置在某些位置的零件。

例如,我已經看到它曾經以圓形圖案放置零件(LED),儘管它們引入了極坐標捕捉網格,但是麻煩的可能性卻很小。

我們已經使用算法直接以.dxf格式創建形狀(例如天線等),然後可以將其導入到銅層中。

通常,代碼不太適合PCB佈局目的,尤其是對於佈線任務。

Scott Seidman
2019-07-31 18:50:01 UTC
view on stackexchange narkive permalink

在EAGLE CAD中,您可以使用鼠標從命令行執行的所有操作。它還具有一種用戶語言,您基本上可以使用該語言進行編程。

在進行圖案等操作時非常有用。即使您手動完成99%的佈局,您仍然可以使用代碼來排列零件/特徵。
通常,我使用Matlab或文本處理器進行編碼,以輸出腳本語言。
是!我曾經在Python中做過:)
這是Eagle的主要優勢之一。一旦開始,您將僅使用命令行。
MathematicalOrchid
2019-07-31 21:15:25 UTC
view on stackexchange narkive permalink

我使用代碼為PCB生成 netlist 。 (編寫一個for循環來構建一個N位多路復用器要快得多,而不是費力地在原理圖中繪製所有內容。)幸運的是,KiCAD網表文件只是文本,其格式沒有說明,但是合理的易於逆向工程。

我寫了一個小的C#庫,可讓我輸入要連接的內容(就可重用的電路參數塊而言),它會自動彈出一個網表。現在,我可以直接將其導入KiCAD並開始構建PCB,而不必浪費一個小時左右的時間來為其繪製原理圖。 (儘管我懷疑KiCAD本身會做得更好,但該庫甚至進行了一些非常基本的檢查,以確保我的說明不是完全 虛假的。)

另一方面,

KiCAD PCB文件也是文本,但是似乎太遠了,以致無法以編程方式生成。真可惜,因為KiCAD默認將所有組件直接轉儲到彼此之上,這需要我花20多個分鐘來繁瑣地將它們再次分離出來,這樣我才能知道我在做什麼。 (KiCAD有一個討厭的習慣,它試圖移動文本而不是移動它所附加的組件,大概只是為了使PCB難於設計?)

也許有一天我會設法使初始組件佈局自動化。正如其他人所說,我懷疑實際的“ PCB設計”位將始終涉及GUI。

最好將[graphviz的](https://www.graphviz.org/)佈局引擎之一掛接到KiCAD進行初始放置。我已經使用graphviz為非常簡單的佈局製作LTspice文件,並且效果很好。
kicad中有一些工具可用於首先擴展組件,稱為“全局擴展和放置”。為了避免移動文本,通常只禁用文本圖層進行佈局。畢竟,如果需要,可以單擊以查看文本。
Voltage Spike
2019-07-31 20:26:39 UTC
view on stackexchange narkive permalink

我不推薦這樣做,但是如果您真的希望可以自己編寫PCB圖稿,而無需任何PCB程序。代碼如下:

G90 *
1個G70 *
2個G54D10 *
3 G01X0Y0D02 *
4 X450Y330D01 *
5 X455Y300D03 *
6 G54D11 *
7 Y250D03 *
8 Y200D03 *
9 Y150D03 *
10 X0Y0D02 *
11 M02 *
12

最右邊的行號不是文件的一部分。檢查這個 沒有Gerber的任何先驗知識的文件可以正確推斷 每行代表一個特定的機器命令,並且 星號(*)是命令字符的結尾。好像有 不同類型的命令:以G,D,M和 x,y坐標數據。

來源: https://www.artwork.com/gerber/appl2.htm

以下是顯示不同命令

的規範
Gerber(RS-274X)與CNC編程中使用的G代碼(RS-274)文件有關。有時候我確實會直接使用文本編輯器編寫G代碼來完成簡單的2.5D任務。
只是觀察:如果您是直接編碼gerber,那麼除了在腦海中進行可視化之外,不會進行任何設計規則檢查。我無法想像鍵入文本gerber文件,然後將其發送到fab house,而無需在GUI工具中打開文件即可查看它,除非您是某種高級專家。
我不確定格柏是否與G代碼有關,但我有所懷疑。如果需要為天線或濾波器編寫一個簡單的頂層,那麼自己編寫一些代碼可能還不錯。我只編輯了G代碼,但從未嘗試編寫它。
@mkeith有些人是視覺的,有些人則相反。我無法想像不使用Gerber圖層工具或類似工具進行檢查,但是對於某些人來說,看代碼可能會更容易。
任何人都可以使用G代碼而不是使用某種視覺工具來處理複雜的電路板,這絕對是一個傑出的人。我認為,任何可以直接使用G代碼工作並富有成效的人都必須被視為專家。
我不認識世界上所有的75億人口,但我可以自信地說,對於任何嚴肅的,多層的專業用途而言,沒有一個人能比圖形顯示更好地查看gerber代碼。板。
bandit
2019-08-02 04:03:06 UTC
view on stackexchange narkive permalink

如果您正在使用Kicad,請在Youtube上的第一個KiCon(2019)上觀看演講中的一些視頻。幾場講座明確地涉及了演示者編寫工具來生成零件的過程,也有關於連接的問題。至少有一個使用過的python,它是作為腳本語言編寫的。

您能否詳細說明並添加指向視頻和工具的鏈接。(參加會議可能是一個有價值的評論,但並不能完全解決問題。)


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 4.0許可。
Loading...