Strona 1 z 1

Specyfikacja parametrów ścieżek w kicad

: niedziela 15 sie 2021, 13:51
autor: gaweł
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?

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

: niedziela 15 sie 2021, 14:23
autor: Zegar
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.

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

: niedziela 15 sie 2021, 16:18
autor: gaweł
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ć :( .

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

: niedziela 15 sie 2021, 16:33
autor: Zegar
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ę.

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

: niedziela 15 sie 2021, 20:44
autor: ZbeeGin
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ć.

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

: niedziela 15 sie 2021, 21:01
autor: gaweł
ZbeeGin pisze:Musisz poczekać do wydania wersji 6,

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

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

: niedziela 15 sie 2021, 21:26
autor: ZbeeGin
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.

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

: niedziela 15 sie 2021, 21:49
autor: gaweł
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 ;)

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

: niedziela 12 wrz 2021, 12:38
autor: Niko72
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.

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

: niedziela 12 wrz 2021, 13:04
autor: gaweł
Czekamy z "utęskieniem" ;)