Specyfikacja parametrów ścieżek w kicad

Tutaj dzielimy się doświadczeniem z używania programu KiCAD.

Moderator: ZbeeGin

Awatar użytkownika
gaweł
Geek
Geek
Posty: 1259
Rejestracja: wtorek 24 sty 2017, 22:05
Lokalizacja: Białystok

Specyfikacja parametrów ścieżek w kicad

Postautor: gaweł » niedziela 15 sie 2021, 13:51

Siła przyzwyczajeń jest ogromna. W firmie używając altium można było na schemacie wyspecyfikować reguły projektowe, jak choćby szerokości ścieżek w danym połączeniu. Przykładowo
kicad30.png

W praktyce prywatnej, używając wolnego oprogramowania, chciałoby się mieć podobne możliwości. Chętnie bym poszedł na odpowiedni kurs, ale jakoś nie zauważyłem, by taki był organizowany. Pozostaje samodzielne zdobywanie wiedzy i praktyki. Bez wątpienia jest to dosyć żmudna droga do sukcesu bez wsparcia "nauczyciela". Pozostaje jedynie przyjazna społeczność skupiona wokół forum, więc moje pytanie jest następujące: czy istnieje taki myk w kicad? Takie reguły przygotowałem dla projektu, jak je "wbić" do procesu projektowego?
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

Prawdziwe słowa nie są przyjemne. Przyjemne słowa nie są prawdziwe.
Lao Tse

Awatar użytkownika
Zegar
User
User
Posty: 316
Rejestracja: wtorek 02 lip 2019, 14:42

Re: Specyfikacja parametrów ścieżek w kicad

Postautor: Zegar » niedziela 15 sie 2021, 14:23

gaweł pisze: Pozostaje samodzielne zdobywanie wiedzy i praktyki. Bez wątpienia jest to dosyć żmudna droga do sukcesu bez wsparcia "nauczyciela". Pozostaje jedynie przyjazna społeczność skupiona wokół forum, więc moje pytanie jest następujące: czy istnieje taki myk w kicad? Takie reguły przygotowałem dla projektu, jak je "wbić" do procesu projektowego?

Kolega @ZbeeGin i tak nas dużo nauczył. Baz jego wykładu na temat ustawień początkowych, nie mogłem nijak ugryźć...
Też ręcznie wszystkiego szukam. Można użyć "Trybika"
KiCAD_trybik.png
, apotem dodać klasy sieci:
KiCAD_reguly.png
. Trochę prac ręcznych, ale działa.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
"If A = success, then the formula is A = X + Y + Z.
X is work. Y is play. Z is keep your mouth shut."
A. Einstein

Awatar użytkownika
gaweł
Geek
Geek
Posty: 1259
Rejestracja: wtorek 24 sty 2017, 22:05
Lokalizacja: Białystok

Re: Specyfikacja parametrów ścieżek w kicad

Postautor: gaweł » niedziela 15 sie 2021, 16:18

Zegar pisze:Trochę prac ręcznych, ale działa.

To sam stosuję, ale mnie interesuje większa automatyzacja :D . Widzisz, dla każdego połączenia staje się koniecznością 'wbicie' parametrów. Znaczy większość jest jako default, ale tych pozostałych jest całkiem sporo. Chcę to ogarnąć w całości z jakimś automatem. Parametry dowiązane są do połączenia a to ma w swojej nazwie symbol elementu. Jak pracowicie wypełnisz wszystko i masz poczucie, że już koniec, to często przychodzi zimny prysznic. Może zajść potrzeba korekty schematu: dochodzą nowe elementy, giną stare. To wpływa na nową sieć połączeń i... znowu wszystko wklepać :( .

Prawdziwe słowa nie są przyjemne. Przyjemne słowa nie są prawdziwe.
Lao Tse

Awatar użytkownika
Zegar
User
User
Posty: 316
Rejestracja: wtorek 02 lip 2019, 14:42

Re: Specyfikacja parametrów ścieżek w kicad

Postautor: Zegar » niedziela 15 sie 2021, 16:33

gaweł pisze:
Zegar pisze:Trochę prac ręcznych, ale działa.

To sam stosuję, ale mnie interesuje większa automatyzacja :D . Widzisz, dla każdego połączenia staje się koniecznością 'wbicie' parametrów. Znaczy większość jest jako default, ale tych pozostałych jest całkiem sporo. Chcę to ogarnąć w całości z jakimś automatem. Parametry dowiązane są do połączenia a to ma w swojej nazwie symbol elementu. Jak pracowicie wypełnisz wszystko i masz poczucie, że już koniec, to często przychodzi zimny prysznic. Może zajść potrzeba korekty schematu: dochodzą nowe elementy, giną stare. To wpływa na nową sieć połączeń i... znowu wszystko wklepać :( .

Niestety o automacie niczego nie znalazłem. Jednak można sobie ułatwić pracę:
https://forum.kicad.info/t/how-to-quick ... ts/21395/3
Jeszcze tego nie testowałem, ale spróbuję.
"If A = success, then the formula is A = X + Y + Z.
X is work. Y is play. Z is keep your mouth shut."
A. Einstein

Awatar użytkownika
ZbeeGin
User
User
Posty: 492
Rejestracja: sobota 08 lip 2017, 17:16
Lokalizacja: Śląsko-Zagłębiowska Metropolia
Kontaktowanie:

Re: Specyfikacja parametrów ścieżek w kicad

Postautor: ZbeeGin » niedziela 15 sie 2021, 20:44

gaweł pisze:Chcę to ogarnąć w całości z jakimś automatem. Parametry dowiązane są do połączenia a to ma w swojej nazwie symbol elementu.

Musisz poczekać do wydania wersji 6, gdzie reguły można tworzyć opisując je korzystając z prostej do opanowania składni. Obecnie parser rozpoznaje to co w dostępnym opisie.

Klauzule najwyższego poziomu
(version <numer>)
(rule <nazwa_reguły> <warunek_reguły> ...)


Klauzule warunkowe
(constraint <typ_ograniczenia> ...)
(condition "<wyrażenie>")
(layer "<nazwa_warstwy>")


Typy ograniczeń
  • annular_width
  • clearance
  • courtyard_clearance
  • diff_pair_gap
  • diff_pair_uncoupled
  • disallow
  • edge_clearance
  • length
  • hole
  • hole_clearance
  • silk_clearance
  • skew
  • track_width
  • via_count

Typy elementów
  • buried_via
  • graphic
  • hole
  • micro_via
  • pad
  • text
  • track
  • via
  • zone

Przykłady

Code: Select all

(version 1)
(rule HV
(constraint clearance (min 1.5mm))
(condition "A.NetClass == 'HV'"))
(rule HV
(layer outer)
(constraint clearance (min 1.5mm))
(condition "A.NetClass == 'HV'"))
(rule HV_HV
# szerszy prześwit pomiędzy ścieżkami HV
(constraint clearance (min "1.5mm + 2.0mm"))
(condition "A.NetClass == 'HV' && B.NetClass == 'HV'"))
(rule HV_unshielded
(constraint clearance (min 2mm))
(condition "A.NetClass == 'HV' && !A.insideArea('Shield*')"))


Uwagi
Klauzula wersji musi być pierwszą klauzulą. Oznacza ona wersję składni zastosowanej w pliku, wobec czego przyszłe parsery będą mogły przeprowadzać automatyczne aktualizacje. Obecnie powinna być ustawiona na "1".
Reguły powinny być uporządkowane według szczegółowości. Dalsze reguły mają pierwszeństwo nad regułami wcześniejszymi; jak tylko odnaleziona będzie pasująca reguła dalsze reguły nie będą sprawdzane.
Użyj Ctrl+/ by zakomentować lub odkomentować linię.

Funkcje wyrażeniowe
Wszystkie parametry funkcji obsługują proste symbole wieloznaczne (* oraz ?).

A.insideCourtyard('<oznaczenie_footprintu>')

Prawdziwe jeśli dowolna część A leży wewnątrz obszaru zajętości podanego footprintu.

A.insideFrontCourtyard('<oznaczenie_footprintu>')

Prawdziwe jeśli dowolna część A leży wewnątrz obszaru zajętości podanego footprintu na stronie górnej.

A.insideBackCourtyard('<oznaczenie_footprintu>')

Prawdziwe jeśli dowolna część A leży wewnątrz obszaru zajętości podanego footprintu na stronie dolnej.

A.insideArea('<nazwa_strefy>')

Prawdziwe jeśli dowolna część A leży w obrysie podanej strefy.

A.isPlated()

Prawdziwe jeśli A posiada otwór, który jest metalizowany.

A.inDiffPair('<nazwa_sieci>')

Prawdziwe jeśli A posiada sieć, która jest składnikiem pary różnicowej. <nazwa_sieci> to nazwa bazowa pary różnicowej. Na przykład inDiffPair('CLK') odnosi się do sieci zarówno CLK_P jak i CLK_N.

AB.isCoupledDiffPair()

Prawdziwe jeśli A i B są członkami tej samej pary różnicowej.

A.memberOf('<nazwa_groupy>')

Prawdziwe jeśli A jest członkiem podanej grupy. Nawet zagnieżdżonej w innej grupie.

A.existsOnLayer('<nazwa_warstwy>')

Prawdziwe jeśli A istnieje na określonej warstwie. Nazwa warstwy może być zarówno nazwą przypisaną w oknie dialogowym Ustawienia Płytki > Ustawienia warstw jak też jej nazwą kanoniczną (na przykład: F.Cu).
UWAGA: Zwraca prawdę, jeśli A znajduje się na danej warstwie, niezależnie czy reguła jest oceniana dla tej warstwy. W tym ostatnim przypadku użyj w regule klauzuli (layer "nazwa_warstwy").

Więcej przykładów

Code: Select all

(rule "blokada strefy"
(constraint disallow track via zone)
(condition "A.insideArea('zone3')"))
(rule "BGA neckdown"
(constraint track_width (min 0.2mm) (opt 0.25mm))
(constraint clearance (min 0.05mm) (opt 0.08mm))
(condition "A.insideCourtyard('U3')"))
# zapobiega opisowi na przelotkach
(rule silk_over_via
(constraint silk_clearance (min 0.2mm))
(condition "A.Type == '*Text' && B.Type == 'Via'"))
(rule "Odległość między przelotkami różnych sieci"
(constraint hole_to_hole (min 0.254mm))
(condition "A.Type =='Via' && B.Type =='Via' && A.Net != B.Net"))
(rule "Prześwit między polami różnych sieci"
(constraint clearance (min 3.0mm))
(condition "A.Type =='Pad' && B.Type =='Pad' && A.Net != B.Net"))
(rule "Prześwit między otworem a ścieżką"
(constraint hole_clearance (min 0.254mm))
(condition "A.Type =='Via' && B.Type =='Track'"))
(rule "Prześwit między polem a ścieżką"
(constraint clearance (min 0.2mm))
(condition "A.Type =='Pad' && B.Type =='Track'"))
(rule "clearance-to-1mm-cutout"
(constraint clearance (min 0.8mm))
(condition "A.Layer=='Edge.Cuts' && A.Thickness == 1.0mm"))
(rule "Maksymalny rozmiar otworu mechanicznego"
(constraint hole (max 6.3mm))
(condition "A.Pad_Type == 'NPTH, mechanical'"))
(rule "Maksymalny rozmiar otworu przewlekanego"
(constraint hole (max 6.35mm))
(condition "A.Pad_Type == 'Through-hole'"))
# Określa optymalną przerwę dla konkretnej pary różnicowej
(rule "prześwit dp dla lini zegarowej"
(constraint diff_pair_gap (opt "0.8mm"))
(condition "A.inDiffPair('CLK') && AB.isCoupledDiffPair()"))
# Określa większy prześwit wokół dowolnej pary różnicowej
(rule "prześwit dp"
(constraint clearance (min "1.5mm"))
(condition "A.inDiffPair('*') && !AB.isCoupledDiffPair()"))


Do tego jeszcze należy dorzucić tzw. Action Scripts, gdzie za pomocą języka Python można tworzyć różne dodatki. Niestety dokumentacja całej struktury obiektów jest dość mizerna i na razie tylko wtajemniczeni potrafią z tego sensownie skorzystać.

Awatar użytkownika
gaweł
Geek
Geek
Posty: 1259
Rejestracja: wtorek 24 sty 2017, 22:05
Lokalizacja: Białystok

Re: Specyfikacja parametrów ścieżek w kicad

Postautor: gaweł » niedziela 15 sie 2021, 21:01

ZbeeGin pisze:Musisz poczekać do wydania wersji 6,

:( Oby to nie była wieczność.

Prawdziwe słowa nie są przyjemne. Przyjemne słowa nie są prawdziwe.
Lao Tse

Awatar użytkownika
ZbeeGin
User
User
Posty: 492
Rejestracja: sobota 08 lip 2017, 17:16
Lokalizacja: Śląsko-Zagłębiowska Metropolia
Kontaktowanie:

Re: Specyfikacja parametrów ścieżek w kicad

Postautor: ZbeeGin » niedziela 15 sie 2021, 21:26

Aby była jednak jasność. To są reguły sprawdzające. Nie wiem czy czasem nie chodziło Ci o założenia reguł projektowych, które program sam powinien stosować podczas procesu projektowania. Te nadal są ograniczone do tego co pojawia się oknie klas sieci. Historia tego okna jest ściśle powiązana z autorouterem FreeRouting i raczej na razie ta kompatybilność nie będzie naruszana.

Przygotowanie reguł częściowo można ogarnąć poprzez szablony projektowe z gotowymi już regułami. Wtedy je sobie ustawiasz raz i potem stosujesz tworząc na podstawie tego szablonu nowe projekty.

Awatar użytkownika
gaweł
Geek
Geek
Posty: 1259
Rejestracja: wtorek 24 sty 2017, 22:05
Lokalizacja: Białystok

Re: Specyfikacja parametrów ścieżek w kicad

Postautor: gaweł » niedziela 15 sie 2021, 21:49

ZbeeGin pisze:Wtedy je sobie ustawiasz raz i potem stosujesz tworząc na podstawie tego szablonu nowe projekty.

No tak, wszystkiego trzeba spróbować samemu ;)

Prawdziwe słowa nie są przyjemne. Przyjemne słowa nie są prawdziwe.
Lao Tse

Niko72
Posty: 9
Rejestracja: sobota 20 lut 2021, 14:45

Re: Specyfikacja parametrów ścieżek w kicad

Postautor: Niko72 » niedziela 12 wrz 2021, 12:38

Reguły projektowe w Eeschema dostępne są w mającym się pojawić KiCad 6. Niestety w chwili obecnej mają one zastosowanie jedynie do atrybutów graficznych schematu. Widać to na zrzucie ekranu poniżej z KiCad - Eeschema 5.99. Po lewej stronie okna dialogowego widać część sieci połączeń, która zmieniła grubość linii i ich kolor na czerwony. W chwili obecnej nie ma możliwości przypisania sieciom określonej grubości ścieżek, ich prześwitu i innych parametrów.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

Awatar użytkownika
gaweł
Geek
Geek
Posty: 1259
Rejestracja: wtorek 24 sty 2017, 22:05
Lokalizacja: Białystok

Re: Specyfikacja parametrów ścieżek w kicad

Postautor: gaweł » niedziela 12 wrz 2021, 13:04

Czekamy z "utęskieniem" ;)

Prawdziwe słowa nie są przyjemne. Przyjemne słowa nie są prawdziwe.
Lao Tse


Wróć do „KiCAD”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 2 gości