Konverze desek, knihoven a schemat z programu Eagle

Mezi návrhovými systémy je v České republice různými způsoby značně rozšířen program Eagle německé společnosti CadSoft. V souborech jeho formátu často bývají publikovány na Internetu i jednodušší schemata a desky pocházející z okolních zemí. V tomto formátu existují také knihovny, vytvořené pro české prodejce součástek. Řada uživatelů systému Formica tak může mít důvody konvertovat z Eaglu schemata, desky i knihovny. K tomu slouží dva konverzní programy, zpřístupněné na této stránce.

DownloadFormica4-L.ulp konverze desek a knihoven pouzder z verze 4.11 a vyšší 17 kB 7.2.2004
DownloadFormica4-S.ulp konverze schemat a knihoven symbolů z verze 4.11 a vyšší 28 kB 15.10.2003
DownloadFormica4-L.ulp konverze desek a knihoven pouzder z verzí starších než 4.1 14 kB 12.7.2003
DownloadFormica4-S.ulp konverze schemat a knihoven symbolů z verzí starších než 4.1 27 kB 12.7.2003

Konverzní programy může volně užívat každý. Může je ovšem libovolně upravovat dle svých potřeb, avšak v takovém případě je nesmí šířit dále. Konverzní programy byly testovány s programem Eagle verze 4.09r2. Nevztahují se však na ně žádné záruky, zejména záruka funkčnosti pod uvedenou, předchozí nebo příští verzí programu Eagle, čitelnosti vytvořených souborů v systému Formica ani správnosti převodu. (Jsou naopak známy výchozí soubory, u kterých převod vede k chybám či zcela selhává.) Autor uvítá veškeré připomínky ke konverzním programům, jejich uživatelsky upravené verze i soubory, jejichž převod případně činil obtíže. Současná podoba konverzních programů nemusí být poslední.

Skutečně, konverzní programy byly poprvé aktualizovány 15. října 2003, aby byla ošetřena změna, kterou do ULP vnesl Eagle verze 4.1. (Ten nyní oblouky popisuje jako speciální případ vodičů.) Ostatní drobné změny jsou uvedeny ve zdrojovém textu.

Jedním z nejhezčích rysů programu Eagle je ULP (user language programming), totiž interpreter jazyka, podobného zjednodušenému ANSI C, který má mj. schopnost přistupovat k jednotlivým prvkům návrhu, uloženým v databázi návrhového systému. Oba konverzní programy jsou zapsány v tomto jazyce a řešeny tak, aby generovaly přímo soubory ve formátu systému Formica 4.30. Samozřejmě odtud v první řadě plyne, že při konverzi musíte užít také program Eagle. Z jednoduchosti prostředků ULP však vyplývají také některá omezení převodu (související hlavně s tím, že ULP nedovoluje vícerozměrná pole ani uživatelem definované datové typy, včetně struktur), takže i samotné konverzní programy musely zůstat poměrně jednoduché.

Užití obou programů je zcela snadné: stačí je přidat k ostatním *.ulp souborům do jejich adresáře, otevřít v Eaglu desku, schema nebo knihovnu, které chcete konvertovat, a příkazem RUN Formica4-L pro převod desky nebo knihovny pouzder, resp. RUN Formica4-S pro převod schematu nebo knihovny symbolů spustit z příkazové řádky příslušný konverzní program. (Totéž lze ovšem udělat pomocí ikony ULP.) Pak už zbývá jen zadat jméno cílového souboru.

Samotná konverze však představuje netriviální úlohu. Je tomu tak již proto, že definice databáze žádného z obou systémů není podmnožinou druhé definice. Problémy, které se případně objeví, je (teoreticky vzato) možno odstraňovat zásahem do výchozího návrhu v editoru Eaglu, do konverzního programu, do vygenerovaného souboru, a konečně zásahem v editoru systému Formica. Prakticky je však podstatná právě poslední možnost, kdykoliv se soubor povede přečíst; jinak asi ta předposlední. Následující výčet upozorňuje na některé možné zdroje obtíží či odchylek:

  • Jestliže se čtení převedeného souboru v systému Formica zastaví na chybě, je vždy možno jej otevřít v nějakém textovém editoru a zkusit opravit, odstranit nebo vykomentovat řádku indikovanou chybovým hlášením (včetně okolí s ní souvisejícího).

  • Eagle vůbec neužívá konceptu logických typů prvků (takže v něm lze teoreticky mít např. desku s 10000 pájecími body, z nichž ani dva nemají stejné rozměry). Místo toho, aby se konverzní program pokoušel najít prvky se společnou hodnotou atributů a pro ně pak vytvořil logický typ, snaží se je namapovat na logické typy rozměrů, které odpovídají předdefinované tabulce v systému Formica. V důsledku toho se především mohou konverzí změnit rozměry prvků. Konverze ovšem také může dva prvky odlišných rozměrů namapovat na stejný logický typ. Jestliže však na výchozí desce byly užity např. čáry šířek 0,3 a 0,3001 mm, musí se uživatel rozhodnout sám, zda toto rozlišení bylo něčím opodstatněné, a pokud si je chce zachovat i po konverzi (v podobě odlišných typů), bude muset upravit tabulku rozměrů v konverzním programu.

  • Desky ručně navržené v Eaglu nemívají vždy spojové čáry dotažené do středu pájecích bodů, což se ve Formice při porovnání s netlistem jeví jako chybějící spoje.

  • Jsou-li na desce v Eaglu polygony, je před vyvoláním ULP nutno je vyplnit příkazem RATSNEST.

  • Poloha převedených nápisů asi nebude zcela přesná. Je to důsledkem odlišnosti jejich referenčního bodu, což je levý dolní roh v systému Eagle a střed v systému Formica.

  • Eagle umí pracovat i s vývody označenými řetězci, nejen čísly. Konverzní program takto označené vývody v součástkách očísluje 301, 302, atd. Při převodu seznamu spojů však již nedokáže najít příslušná čísla vývodů, takže z něj tyto vývody vynechá (resp. zapíše do souboru jako komentář). To se pak jeví jako zkraty na desce, které lze akceptovat příkazem Netlist | Add Tracks.

  • Označení součástek ve schematu se prozatím objevuje vždy v defaultní poloze; výchozí souřadnice nápisů (ani nastavení jejich viditelnosti) nejsou převáděny.

  • Formica užívá de Morganovy ekvivalenty (které kromě dvou podob logických členů také dovolují např. zakreslit cívku a kontakt relé jako dvě sekce jedné součástky) a skryté (typicky napájecí) vývody. Žádný z těchto dvou konceptů Eagle nezná, dovoluje však, aby se sekce součástky lišily i podobou, nejen v číslech vývodů (což ostatně případ relé ošetří lépe), a pro napájení užívá samostatné sekce. Konverzní program ale pro jednoduchost předpokládá, že jsou všechny sekce součástky stejné (až na čísla vývodů). To vede k potížím, je-li ve výchozím schematu napájecí sekce explicitně umístěna; zatím nezbývá, než je po převodu ošetřit ručně. Stejnou příčinu může mít i poněkud bizarnější problém s rámečkem výkresu (což je součástka), bylo-li jeho rohové razítko vytvořeno jako samostatná sekce téže součástky.

  • Pokud jde o schemata, všeobecně asi bude úspěšnější převod knihoven symbolů než samotných výkresů. Celkově však lze lepší výsledky vždy očekávat od převodu desek a knihoven pouzder.

Přestože se větší část textu na této stránce týká potíží, které při převodu mohou nastat, u běžných a rozumně navržených desek a knihoven velké problémy nebývají. Možnosti a meze ilustruje několik souborů, nalezených na Internetu v public domain, převedených konverzními programy a vystavených zde bez dodatečných úprav. Kdo se zajímá o složitější návrhy, může převod vyzkoušet např. na ukázkových deskách MoDsMega.brd nebo hexapod.brd, které tvoří součást instalace systému Eagle.

P.H.


3. října 2007