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 . 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
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: 492
- 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,
Oby to nie była wieczność.
Prawdziwe słowa nie są przyjemne. Przyjemne słowa nie są prawdziwe.
Lao Tse
- ZbeeGin
- 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
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 1 gość