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
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?
Specyfikacja parametrów ścieżek w kicad
Moderator: ZbeeGin
Specyfikacja parametrów ścieżek w kicad
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
Re: Specyfikacja parametrów ścieżek w kicad
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", apotem dodać klasy sieci:. 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
X is work. Y is play. Z is keep your mouth shut."A. Einstein
Re: Specyfikacja parametrów ścieżek w kicad
Zegar pisze:Trochę prac ręcznych, ale działa.
To sam stosuję, ale mnie interesuje większa automatyzacja
Prawdziwe słowa nie są przyjemne. Przyjemne słowa nie są prawdziwe.
Lao Tse
Re: Specyfikacja parametrów ścieżek w kicad
gaweł pisze:Zegar pisze:Trochę prac ręcznych, ale działa.
To sam stosuję, ale mnie interesuje większa automatyzacja. 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
X is work. Y is play. Z is keep your mouth shut."A. Einstein
- ZbeeGin
- User

- Posty: 497
- Rejestracja: sobota 08 lip 2017, 17:16
- Lokalizacja: Śląsko-Zagłębiowska Metropolia
- Kontaktowanie:
Re: Specyfikacja parametrów ścieżek w kicad
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ładyCode: 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ówCode: 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
ZbeeGin pisze:Musisz poczekać do wydania wersji 6,
Prawdziwe słowa nie są przyjemne. Przyjemne słowa nie są prawdziwe.
Lao Tse
- ZbeeGin
- User

- Posty: 497
- Rejestracja: sobota 08 lip 2017, 17:16
- Lokalizacja: Śląsko-Zagłębiowska Metropolia
- Kontaktowanie:
Re: Specyfikacja parametrów ścieżek w kicad
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.
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
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
Re: Specyfikacja parametrów ścieżek w kicad
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.
Re: Specyfikacja parametrów ścieżek w kicad
Czekamy z "utęskieniem" 
Prawdziwe słowa nie są przyjemne. Przyjemne słowa nie są prawdziwe.
Lao Tse
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 2 gości
