Projekt PCB przy użyciu kodu zamiast klikania myszą? [Zamknięte]

14

Właśnie zajmuję się projektowaniem płytek drukowanych i ogólnie mam problemy z nauką korzystania z GUI z menu i klikaniem myszą. Czy niektórzy inżynierowie używają czegoś więcej niż kodu do generowania płytek drukowanych?

guidoizm
źródło
7
Nie polecałbym pisania zwykłych plików gerber ...
Huisman
31
Układ płytki drukowanej jest głównie zadaniem wizualnym - przesuwanie i obracanie elementów w celu dopasowania. Robienie tego za pomocą kodu wydaje się bolesne.
JRE
3
Zwykle są klawisze skrótów dla większości (jeśli nie wszystkich) pozycji menu; większość narzędzi umożliwia wprowadzanie tekstu w celu lokalizacji i orientacji (ale jest to o wiele bardziej bolesne niż zwykłe przenoszenie rzeczy za pomocą myszy). Używam narzędzi tekstowych, aby uzyskać precyzyjne umiejscowienie takich elementów, jak przelotki i pary różnicowe.
Peter Smith
4
Niektóre pakiety CAD są bardziej klikalne niż inne. Z mojego doświadczenia wynika, że ​​Orcad Allegro jest najgorszy, jeśli chodzi o wykonywanie wielu bezsensownych działań GUI w celu wykonania najprostszych rzeczy. Diptrace jest najłatwiejszym i najbardziej płynnym doświadczeniem użytkownika. PADS to bardzo fajny zestaw narzędzi z intuicyjnym interfejsem użytkownika i wieloma zaawansowanymi funkcjami. PADS jest dla inżynierów, którzy lubią załatwiać sprawy, Orcad jest dla masochistów. : D
Wossname
2
Istnieją skróty klawiaturowe i wyjątkowe przypadki, w których sensowne jest programowe generowanie wzorów, ale układ PCB jest w większości interaktywnym zadaniem graficznym. W przeciwieństwie do sytuacji, w których logika dominuje nad fizycznym wykonaniem, takim jak FPGA i (wiele części) projektowania ASIC, zwykle są one sterowane przez języki opisu sprzętu zasilające kompilatory logiczne zasilające zautomatyzowane narzędzia miejsca i trasy. Gdybyśmy nadal budowali procesory mainframe z dużych płyt pełnych TTL, może istnieć porównywalny przepływ projektowy dla HDL do PCB ... ale na szczęście tak nie jest.
Chris Stratton

Odpowiedzi:

19

Altium ma język skryptowy, w rzeczywistości kilka różnych języków. W niektórych przypadkach sensowne może być użycie algorytmów, na przykład do tworzenia powtarzalnych układów lub części umieszczonych dokładnie w określonych pozycjach.

Na przykład widziałem, jak zwykło umieszczać części (diody LED) w kołowym wzorze, chociaż wraz z wprowadzeniem siatek przyciągania współrzędnych biegunowych jest znacznie mniej prawdopodobne, że będzie to warte kłopotów.

Użyliśmy algorytmów do tworzenia kształtów (pomyśl o antenach itp.) Bezpośrednio w formacie .dxf, które można następnie zaimportować do warstwy miedzi.

Zasadniczo kod jest nieodpowiedni do celów związanych z układem PCB, szczególnie do zadania routingu.

Spehro Pefhany
źródło
17

W EAGLE CAD wszystko, co możesz zrobić za pomocą myszy, możesz zrobić z wiersza poleceń. Ma również język użytkownika, w którym można zasadniczo programować.

Scott Seidman
źródło
2
Bardzo przydatne przy tworzeniu wzorów itp. Nawet jeśli wykonujesz 99% układu ręcznie, nadal możesz aranżować części / elementy za pomocą kodu.
Wesley Lee
1
Często piszę w Matlabie lub procesorze tekstowym, aby wyświetlać język skryptowy.
Scott Seidman
3
Tak! Robiłem to w Pythonie :)
Wesley Lee
1
To jedna z kluczowych zalet Eagle. Po uruchomieniu będziesz używać tylko wiersza polecenia.
D Duck
7

Używam kod, aby wygenerować netlist dla moich PCB. (O wiele, dużo szybciej jest napisać pętlę for, aby zbudować N-bitowy multiplekser, niż żmudnie rysować wszystkie te rzeczy na schemacie.) Na szczęście pliki netlist KiCAD to tylko tekst, w formacie nieudokumentowanym, ale dość łatwym do odwrócenia -inżynier.

Napisałem małą bibliotekę C #, która pozwala mi wpisywać to, co chcę połączyć z czym (pod względem bloków parametrycznych wielokrotnego użytku), i automatycznie wyrzuca listę sieci. Teraz mogę po prostu zaimportować to prosto do KiCADa i zacząć budować płytkę drukowaną, bez marnowania godziny, a więc bezużytecznego rysowania jej schematu. (Biblioteka przeprowadza nawet kilka bardzo podstawowych kontroli, aby upewnić się, że moje instrukcje nie są całkowicie fałszywe, chociaż podejrzewam, że sam KiCAD wykonałby to zadanie lepiej.)

Pliki PCB KiCad, z drugiej strony, są też tekst, ale wydają się być zdecydowanie zbyt skomplikowane, aby wygenerować programowo. Szkoda, ponieważ KiCAD domyślnie zrzuca wszystkie komponenty bezpośrednio jeden na drugim, co wymaga ode mnie spędzenia ponad 20 minut żmudnego ich oddzielania, aby zobaczyć, co u diabła robię. (KiCAD ma nieprzyjemny zwyczaj przesuwania tekstu, a nie komponentu, do którego jest dołączony , prawdopodobnie po to, aby utrudnić projektowanie płytek drukowanych?)

Być może kiedyś uda mi się zautomatyzować początkowy układ komponentów; Podejrzewam, jak powiedzieli inni, że rzeczywisty bit „projektowania PCB” zawsze będzie dotyczył GUI.

MathematicalOrchid
źródło
Byłoby miło podłączyć jeden z silników układu graphviz do KiCADa do początkowego umieszczenia. Użyłem graphviz do tworzenia plików LTspice dla bardzo prostych układów i działało to całkiem dobrze.
rura
3
W Kicadzie jest kilka narzędzi do początkowego rozkładania komponentów, nazywa się to „Globalny spread i miejsce”. Aby uniknąć przenoszenia tekstu, zwykle wyłączam warstwy tekstu dla układu. W końcu można zobaczyć tekst, klikając w razie potrzeby.
jpa
4

Nie poleciłbym tego, ale jeśli naprawdę chcesz, możesz samodzielnie napisać grafikę na płytce drukowanej, bez żadnego programu na płytce drukowanej. Kod wygląda następująco:

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

Numery linii po prawej stronie nie są częścią pliku. Analizując ten plik bez uprzedniej wiedzy Gerbera, należałoby poprawnie wywnioskować, że każda linia reprezentuje określone polecenie maszyny, a gwiazdka (*) jest końcem znaku polecenia. Wydaje się, że istnieją różne rodzaje poleceń: instrukcje zaczynające się od danych współrzędnych G, D, M i x, y.

Źródło: https://www.artwork.com/gerber/appl2.htm

Oto specyfikacja pokazująca różne polecenia

Skok napięcia
źródło
2
Gerber (RS-274X) jest powiązany z plikami kodu G (RS-274) używanymi w programowaniu CNC. Czasami piszę kod G bezpośrednio za pomocą edytora tekstu do prostych zadań 2.5D.
Spehro Pefhany
5
Tylko spostrzeżenie: jeśli bezpośrednio kodujesz gerber, to nie odbywa się żadna kontrola reguł projektowych poza wizualizacją w głowie. Nie wyobrażam sobie wpisywania pliku gerber tekstowego, wysyłania go do fab house bez otwierania go w narzędziu GUI, aby tylko na niego patrzeć, chyba że jesteś jakimś znawcą na wyższym poziomie.
mkeith
1
Nie byłem pewien, czy Gerber był powiązany z G-code, ale miałem podejrzenia. Jeśli trzeba napisać prostą górną warstwę dla anteny lub filtra, może nie być tak źle napisać coś samodzielnie. Ja tylko edytowałem kod G, ale nigdy nie próbowałem go napisać.
Skok napięcia
6
Każdy, kto może lepiej pracować z kodem G niż jakimś narzędziem wizualnym do złożonej planszy, z pewnością byłby wyjątkową osobą. Myślę, że każdy, kto może pracować bezpośrednio w kodzie G i być produktywny, powinien być uważany za rozsądnego.
mkeith
1
Nie znam wszystkich 7,5 miliarda ludzi na świecie, ale mogę śmiało powiedzieć, że nie istnieje jedna osoba, która wykonałaby lepszą robotę patrząc na kod gerber niż na wyświetlacz graficzny do jakiegokolwiek poważnego, wielowarstwowego profesjonalnego zastosowania tablice.
whatsisname
1

Jeśli używasz Kicad, zobacz niektóre filmy z rozmów podczas pierwszego KiCon (2019) na Youtube. Kilka rozmów dotyczyło bezpośrednio prezenterów piszących narzędzia do generowania części, jedna dotyczyła również połączeń. Co najmniej jeden używał pytona, który jest wypiekany jako język skryptowy.

bandyta
źródło
1
Czy mógłbyś opracować i dodać linki do filmów i narzędzi. (Machanie w kierunku konferencji może być cennym komentarzem, ale nie do końca kwalifikuje się jako odpowiedź.)
Nick Alexeev