601

(8 odpovědí, posláno do Dotazy a náměty k programu Layout)

Převodu desek z Eaglu, na který se objevil dotaz v sousedním tématu, se týká stránka www.formica.cz/eagle.html .  Eagle desky ukládá do binárních souborů, jejichž dešifrováním nemám vůbec v úmyslu se zabývat; z toho důvodu jsem k převodu užil ULP běžící v Eaglu, a protože generují přímo soubory PCB, byla nutná všelijaká zjednodušení (jako kupříkladu je mapování prvků na předdefinované logické typy).

Při převodu často dělají problémy čísla pinů např. ve tvaru 1-1, 1-2, 1-3, ..., 1A, 1B...  ULP na citované stránce je všechny převede na jedničku, což při čtení do Layoutu pak vede ke konfliktu.  Shodou okolností jsem se tím před pár dny zabýval -- rozpracované ULP, které v takovém případě k očíslování užije pořadí vývodů v pouzdře, si můžete stáhnout zde: www.formica.cz/files/forum/pokusy-Formica4-L.ulp .  Ještě však u toho není hotové menu a není zabudována ani možnost užít výhradně pořadí (tj. na jména pinů vůbec nehledět).

Narazíte-li snad na nějaké potíže, můžete mi také příslušné BRD soubory poslat.

602

(5 odpovědí, posláno do Dotazy a náměty k programu Layout)

P?ed více než 10 lety jsem napsal p?evodní program z formátu Gerber RS-274D.  Nebyl myslím nikdy ší?en, ale m?žete si jej stáhnout zde: www.formica.cz/files/forum/R-GERBER.ZIP .  Uživatelský komfort od n?j ne?ekejte, ale kdybyste pot?eboval, možná bych k tomu n?kde našel i zdrojové texty.

Asi neuškodí znovu p?ipomenout, že klasický formát Gerber se odvolává prost?ednictvím tzv. D-kód? na clonky clonkového kotou?e, avšak popis jejich rozm?r? neobsahuje.  Takovéto informace (kup?íkladu že D21 je ?tvere?ek o stran? 1,5 mm, apod.) je proto t?eba p?edat n?jakým paralelním kanálem.  Vedle gerberovských soubor? vystavených na internetu bývají ob?as i n?jaké textové soubory s popisem clonek (?asto tytéž soubory, které provázely ty první k výrobci -- jsou ostatn? obdobou pr?vodních soubor?, které z firmy zasíláte výrobci).  Nejsou-li dostupné, nezbyde, než gerberovské soubory prohlédnout a rozm?ry si domyslet.  U t?ch plošných cívek, které zmi?ujete, by to asi nem?l být velký problém.

Informace o clonkách je samoz?ejm? t?eba n?kudy p?edat i výšezmín?nému programu.  K tomu slouží jeho konfigura?ní soubor, jehož p?íklad zde rad?ji uvádím (v zipu totiž ?áste?n? je ješt? ?eština Kamenických):

{ KONFIGURA?NÍ SOUBOR PROGRAMU R-GERBER.EXE }
{ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ }

{ Soubor R-Gerber.Cfg je konfigura?ní soubor pro program R-Gerber.Exe, který
  p?evádí p?íkazové soubory pro fotoplottery Gerber do formátu desek systemu
  FORMICA 4.0 (*.PCB).                                                       }

{ Z hlediska syntaxe tento konfigura?ní soubor obsahuje (vedle libovolných
  komentá??, uzav?ených ve složených závorkách) pouze celá ?ísla se znaménkem.
  Soubor sestává ze dvou (tri) ?ástí: první definuje transformaci sou?adnic
  z jednotek fotoplotteru do vnitrnich jednotek programu (0,001" ci 0,025 mm)
  druhá korespondenci mezi clonkami fotoplotteru a logickými typy základních
  prvk? v systému FORMICA 4.0.                                               }


{ 1. P?EVOD SOU?ADNIC }
{ ~~~~~~~~~~~~~~~~~~~ }

     1000   { hodnota Px,                                                    }
     1000   { hodnota Qx; koeficienty pro p?epo?et sou?adnic   (Qx > 0)      }
      000   { hodnota Dx; vodorovný offset, udaný v jednotkách fotoplotteru  }

     1000   { hodnota Py,                                                    }
     1000   { hodnota Qy; koeficienty pro p?epo?et sou?adnic   (Qy > 0)      }
      000   { hodnota Dy; svislý offset, udaný v jednotkách fotoplotteru     }

{ Výše definované hodnoty jsou použity k p?epo?tu sou?adnic podle vztah?

  GridX := Round (Px * Int (GerberX - Dx) / Qx)

  GridY := Round (Py * Int (GerberY - Dy) / Qy)                              }


{ 2. CISLO VRSTVY }
{ ~~~~~~~~~~~~~~~ }

      14 { cislo vrstvy, na kterou budou umisteny segmenty                }


{ 3. P?EVOD CLONEK }
{ ~~~~~~~~~~~~~~~~ }

{ P?evod kód? clonek na logické typy základních prvk? je definován tabulkou,
  obsahující libovolný po?et trojic celých ?ísel.   První ?íslo z trojice
  vždy ur?uje kód clonky na clonkovém kotu?i, druhé, resp. t?etí ?íslo udává
  logický typ spojové ?áry, resp. pájecího bodu, který bude generován,
  jestliže je clonka s tímto kódem použita pro kreslení spojové ?áry, resp.
  expozici pájecího bodu.                                                    }

{ P?ípustné rozsahy hodnot jsou 10 až 99 pro kód clonky, 0 až 15 pro logický
  typ spojové ?áry a 0 až 63 typ pájecího bodu.   Clonky, jejichž kódy se
  v tabulce nevyskytují, jsou prevedeny na (logicke typy)-10 nebo potlaceny. }

{ kód clonky   typ spojové ?áry   typ pájecího bodu                          }
     10               1                  -1
     11               3                  -1 {potlaceno}
     12               4                  -1
     13               5                  -1
     14              10                  -1
     15              11                  -1
     70              -1 {potlaceno}       3
     71              -1 {potlaceno}       3 {R 15 ???}
     20              -1 {potlaceno}       4
     21              -1 {potlaceno}      16 {R}
     22              -1 {potlaceno}       7 {???}
     23              -1 {potlaceno}       7 {R}
     24              -1 {potlaceno}       8
     25              -1 {potlaceno}       8 {R}
     26              -1 {potlaceno}      12
     30              -1 {potlaceno}       4
     31              -1 {potlaceno}      16 {R}
     32              -1 {potlaceno}       7 {???}
     33              -1 {potlaceno}       7 {R}


{ POZNAMKY                                                                   }
{ ========

  1) Program a zejmena jeho popis je ve zcela provizornim stavu.
  2) Je-li k dispozici puvodni navrhovy system, je treba mu zabranit
     v rozkreslovani pajecich bodu, samozrejme i za cenu, ze se k prevodu
     pouziji "smluvene" D-kody.   Jinak by totiz nebyl program R-Gerber
     schopen odlisit pajeci body od spojovych car.
  3) Je vhodne mit dva konfiguracni soubory, pro kazdou stranu desky jeden.
     V jednom z nich je pak mozno potlacit vrtane (vicevrstve) pajeci body,
     ktere by se jinak ve vysledne desce objevovaly na temze miste dvakrat.  }

Program je t?eba opakovan? užít na jednotlivé vrstvy (tj. gerberovské soubory) a vygenerované PCB soubory se?íst dohromady v editoru Layout.  Nebude-li Vám n?co jasné (a prostoru pro nejasnosti tu asi je víc než dost), zeptejte se nebo pošlete výchozí soubory.

Jiná v?c však jsou soubory ve formátu RS-274X, které mj. obsahují definice clonek (mezi znaky "%" -- podle toho je poznáte).  Na to jsem si provizorn? také napsal kus programu (který jsem užil nap?. k p?evodu té desky SBC6120).  Definice sice ne?te, alespo? je však zahazuje, takže lze v zásad? užít výše popsaný postup.

P?evod z Eaglu je zcela odlišné téma a založím tudíž pro n?j další vlákno.

603

(38 odpovědí, posláno do Testovací verze programu Layout)

Matně si vzpomínám, že před několika lety proběhla korespondence o možnosti ukládat a obnovovat nastavení grafiky.  Tehdy se diskutovalo o ukládání pod nějakým jménem (např. "Pouze horní strana" apod.).  To se mi ze systémového hlediska příliš nelíbilo, a námět jsem proto odložil.  Nyní jsem se k němu vrátil -- je to ostatně úloha složitosti přiměřené dnešní teplotě vzduchu.

Rozdíl je v tom, že nastavení grafiky ukládám do zásobníku, takže pojmenování odpadá.  ??ešení ovšem stojí na dávném principu, na němž je vystavěn celý program Layout, totiž že uživatel ví, co dělá, a naopak tento princip dále utvrzuje.  Tak mi kromě zásobníku stačilo doplnit jen tři příkazy:

Graphics | Save ukládá aktuální nastavení grafiky na vrchol zásobníku (nejstarší uložené je ztraceno, je-li zásobník zaplněn).
Graphics | Restore obnovuje nastavení z vrcholu zásobníku (aktuální nastavení je ztraceno) a překreslí obrazovku.
Graphics | Exchange vymění nastavení grafiky na vrcholu zásobníku s aktuálním a překreslí obrazovku.

Program opět je v archivu www.formica.cz/files/Layout-p98-pokusy11.zip .

Příklad užití: V menu Graphics dám Save, pak nastavím pohled na horní vrstvy, uložím pomocí příkazu Save, nastavím pohled na dolní vrstvy, a mezi oběma pohledy teď mohu přepínat příkazem Exchange, aniž bych menu Graphics vůbec opustil.  Až se mi přepínání omrzí, dám dvakrát Restore a vrátím se tak k výchozímu pohledu.

Zásobník má nyní hloubku 8 položek (do každé z nichž se ukládá nastavení všech parametrů z menu Graphics).  Za úvahu by možná stálo přidat příkaz(y) Graphics | Roll Up / Down, kterým by uživatel mohl procházet dokola skrz celý zásobník, aniž by kteroukoliv z jeho položek zahodil.  (Pak by možná bylo lépe zásobník zkrátit; cyklování by se však v každém případě omezovalo pouze na obsazené položky.)  Pro rozumné řešení asi je klíčová odpověď na otázku, mezi kolika nastaveními uživatel v praxi potřebuje přepínat.

Celý zásobník by přirozeně bylo možno ukládat do konfiguračního souboru (za cenu opětné změny jeho formátu).  Přidám jej tam, pokud se funkce osvědčí (a jakmile se délka zásobníku ustálí).  Na druhé straně současný stav automaticky řeší mazání zásobníku, což se může také někdy hodit.

604

(9 odpovědí, posláno do Testovací verze programu Layout)

Ze souboru, který jsem mezitím dostal, plyne, že problém byl shodou okolností také zp?soben kótováním segmentu, který byl p?íliš blízko okraje pracovní plochy (což sice nevedlo k nápis?m mimo ni, jak jsem psal prve, ale k segmentu kótovací šipky s jednou sou?adnicí zápornou, na které se pak jakási úklidová procedura zhroutila).  Program už jsem nahradil v archivu zmín?ném na po?átku vlákna -- te? se požaduje, aby segment ke kótování ležel uvnit? pracovní plochy alespo? o 75 vnit?ních jednotek, což by snad m?lo vždy sta?it.

Mimochodem, krátké segmenty na desce m?žete velmi efektivn? hledat pomocí p?íkazu Select | Select | Lines | Short -- ?asto se jedná o všelijaké smetí, u n?hož je vhodné se zamyslet, jak se na desku dostalo.

605

(9 odpovědí, posláno do Testovací verze programu Layout)

Nejsem si úpln? jistý, zda se v popisu dokážu zorientovat.  M?žete mi prosím pro jednoduchost poslat testovací pcb soubor a postup, jak chybu vyvolat?

Musím ale zopakovat, že kótování opravdu není naprogramováno nijak robustn? -- tak nap?íklad byste mohl dostat nápisy mimo pracovní plochu, takže desku by šlo uložit, ale už ne na?íst zpátky.  Podobných v?cí je tam asi více.

Pro up?esn?ní byste také mohl poslat desku, na níž jste se s popisovaným chováním setkal (a uvést logický typ padu), ale pokusím se odhadnout, na co jste z?ejm? narazil.

Rozm?ry zmín?ných pájecích bod? na vrstv? 15 asi máte vztaženy k vrstv? 8.  Pak by pro dosažení požadovaného výsledku možná sta?ilo je zv?tšit práv? na vrstv? 8 (což byl Váš první krok).  Zv?tšíte-li je pak ješt? na vrstv? 15, nastane to, co jste popsal.

Takhle je to naprogramované, je však p?irozen? otázkou, je-li toto chování žádoucí, pop?ípad? zda by se nabízelo n?jaké logi?t?jší:

* Na jedné stran? by se mohl první krok omezit výhradn? na rozm?ry na vrstv? 8, ale k tomu by program pot?eboval zrušit její vazbu na vrstvu 15.  Asi tolik nevadí, že by pak uživatel musel provést tutéž operaci ješt? s vrstvou 15.  V?tší potíž však vidím v tom, že by program nem?l žádnou možnost, jak vazbu op?t obnovit, ledaže by dedukoval, že vrstvy mají být svázány vzájemným odkazem ?ist? proto, že na nich rozm?ry zrovna jsou stejné.

* Na druhé stran? s dosavadním ?ešením nastává problém, uvážíme-li situaci, kdy v tabulce je THT pájecí bod (tj. oboustranný, s otvorem) a zárove? SMD pájecí bod na horní stran?.  Dejme tomu, že oba mají na po?átku rozm?r 3,0 mm.  Po Vašem prvním kroku budou mít rozm?ry (na vrstvách 8 / 15) 3,2 / 3,2 mm a --- / 3,0 mm, po druhém 3,2 / 3,4 mm a --- / 3,2 mm.  Ani jedno z toho asi není to, co si p?ejete.  Požadovaných rozm?r? m?žete dosáhnout prost? tím, že po?adí krok? obrátíte, avšak jedin? za tu cenu, že se tím vzájemná vazba rozm?r? zruší.

D?kuji za upozorn?ní na popsané chování.  Jelikož mne te? nenapadá chování programu, které bych zde mohl považovat za zcela náležité, pravd?pobn? se omezím na zmínku v helpu, pokud by se v diskusi neobjevil návrh lepšího ?ešení.

607

(4 odpovědí, posláno do Testovací verze programu Layout)

Jen pro upřesnění:  Nemyslel jsem to ovšem tak, že by se obecně makra přestala ovládat klávesami, ale že by si člověk mohl vytvořit (ovšem asi jen textovým editorem, nikoliv ve Formice) také jakási "anonymní" makra, která by sice jako dosud měla nějaký název či popis, ale nebyla by jim přiřazena klávesa, kterou by se dala vyvolat.  (Mělo to pouze přispět k řešení problému, o němž jste se myslím před časem zmiňoval, totiž že začíná být obtížné si vymýšlet nové a nové kombinace kláves.)

Co se týče uspořádání maker, nejjednodušší by bylo uvést je v tabulce ve stejném pořadí, v jakém jsou v souboru *.Mac (takže by bylo na uživateli si jej nějak přerovnat textovým editorem).  Asi by se hodilo též rozčlenění pomocí vodorovných čar (nebo i nějakých titulků či barev), ale čáry jsou v konfliktu s tím, že menu je vícesloupcové, zatímco naprogramovat barvy a titulky je trochu pracné.  Možná bude nejlépe počkat na první zkušenosti z užívání.

608

(4 odpovědí, posláno do Testovací verze programu Layout)

Před časem se diskutovalo o možnosti ovládat Formicu i z nějaké pomocné klávesnice, na kterou by si uživatel instaloval tlačítka pro nejčastěji užívaná makra.  Taková klávesnice by ovšem nemusela být realizována hardwarově; mohla by být i v okně na obrazovce.  Je otázka, zda by v praxi ovládání opravdu usnadnila, ale za pokus to třeba stojí.

Proto jsem teď do testovací verze (opět www.formica.cz/files/Layout-p98-pokusy11.zip ) přidal v menu Macros příkaz Execute, který zobrazí menu definovaných maker a dovolí si z něj některé vybrat k provedení.  První otázka je, zda se to takhle může osvědčit alespoň v principu; pokud ano, lze začít uvažovat o tom, jak menu případně uspořádat a rozčlenit.  Nakonec by bylo možné vytvořit třeba i "makra bez klávesy", tj. položky v souboru Layout.Mac, které by nešlo vyvolat žádnou klávesou, ale pouze z tohoto menu.

609

(8 odpovědí, posláno do Dotazy a náměty ke schematickému editoru)

Formica je od po?átku koncipována tak, že pokud ji uživatel ovládá klávesami, p?edpokládá se, že ví, co d?lá, a že si p?ípadn? do bufferu klávesnice p?ipraví n?kolik kláves dop?edu d?íve, než je systém sta?í provést.  P?íklad: jsem v rastru 0,635 mm a vím, že pot?ebuji p?enést celou oblast o 2,54 mm vpravo.  Zvednu ji, pak 4x stisknu pravou šipku (aniž bych se staral, co b?hem toho vidím na obrazovce), Enter, a po?kám si na výsledek.  Takovéhle chování je v zásad? tradi?ní už od ?as? MS-DOSu.

Když zjistím, že mi nap?. autorepeat klávesnice naplnil buffer n??ím, co tam již nechci, mohu jej (v Layoutu) smazat klávesou Ctrl-Alt-C.  (Jestlipak ji mám n?kde zdokumentovanou?)  Dosud nezpracované klávesy se tím prost? zahodí.

Jiná v?c je, že visuální odezva programu by se asi dala zefektivnit r?znými triky -- kreslení by se nap?. nezahajovalo (p?ípadn? nedokon?ovalo), pokud by z pohledu na klávesy umíst?né v bufferu program usoudil, že výsledek už by nebyl aktuální.  Existují zp?soby, jak toho dosáhnout: od naprogramování více vláken až po explicitní testování obsahu bufferu b?hem kreslení tzv. seznamu ukazatele.  V sou?asné verzi se však už do toho asi nebudu poušt?t.

610

(14 odpovědí, posláno do Dotazy a náměty k programu Layout)

Bez dalšího softwaru to skutečně řešitelné není.  Ostatně snad až teprve před pár týdny Adobe uvolnil popis formátu PDF, jinak by se člověk musel opírat o nějaký neoficiální.

Protože se toto vlákno po déle než roce opět posunulo nahoru v seznamu témat, je asi vhodné zmínit, co se od té doby změnilo:  Z programu Layout je výstup do PDF nyní možný i přímo, pomocí nově vytvořeného driveru.  Více se dozvíte např. ve vlákně www.formica.cz/forum/viewtopic.php?id=134

Schematický editor (prostřednictvím zmíněného PDF.dll) spolupracuje s programem GhostScript, který si lze stáhnout z adresy ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/GPL/gs856/ (bližší popis lze najít na http://pages.cs.wisc.edu/~ghost/ ).  Po jeho instalaci byste v menu měl vidět PDF.dll jako vybratelnou položku.  (Přiznám se, že s tím GhostScriptem z letošního března jsem to zatím nezkoušel, ale možná to zrovna vyzkouším někdy teď.) 

GPL Vám myslím dovoluje GhostScript užívat zdarma pro v podstatě libovolné účely.  Export do PDF skrz GhostScript běžně užívají i další autoři profesionálního softwaru.

PDF.dll dělá v zásadě to, že vyexportuje schema v PostScriptu a na ten pak zavolá GhostScript, který jej konvertuje do PDF.  V Layoutu je to trochu složitější, užívá se driver PostScriptu a na jeho výstup je nutno GhostScript zavolat ručně.  K tomu užívám takovouto dávku:

@ echo off
cd c:\progra~1\gstools\gs5.50
c:
call ps2pdf d:%1.ps
d:

Samozřejmě cestu je nutno si tam upravit dle skutečnosti (a navíc to předpokládá, že soubor v PostScriptu je na jiném disku, než je GhostScript).

Stejný způsob jsem užíval i pro generování těch PDF, co jsou v galerii (přičemž jsem do PostScriptu občas zasáhl ručně, např. abych doplnil otvory nebo změnil pořadí vrstev na lépe vypadající).  Pro podobné účely jsem si také napsal trochu rozšířený driver PostScrY.dll (možná jsem jej před časem poslal panu Fürbachovi), který např. umí nastavovat další pěkné barvy.  S barvami ze schematu byste asi neměl mít žádné problémy.

611

(0 odpovědí, posláno do Testovací verze programu Layout)

Dobrý den,

debata o automatickém kótování měla za vedlejší důsledek i to, že jsem (na podnět Ing. Jakimova) v pokusné verzi do druhé řádky okna doplnil údaj o délce detekovaného segmentu.

http://www.formica.cz/files/forum/detect_length.png

Délka segmentu tak má v této řádce obdobné postavení, jako doposud měl poloměr detekovaného kruhového oblouku.  Co všechno vypisovat (a co raději nevypisovat) může přirozeně být předmětem diskuse.  Pravděpodobně se však časem pokusím tuto řádku nějak typograficky rozčlenit, aby se stala trochu méně nepřehledná.

612

(9 odpovědí, posláno do Testovací verze programu Layout)

Pokusil jsem se dojít op?t o kousek dál s tím automatickým kótováním, jako obvykle cestou kompromisu.  P?ikreslit automaticky kótovací ?áry nelze (jak ukazuje ten chlíve?ek u pravé strany ukázkové desky), ale mohu k nim krom? kót alespo? automaticky p?ikreslovat šipky.  Kótování navíc je omezeno na vodorovné a svislé segmenty.

Pro kótování jsou v zásad? vyhrazeny logické typy 27 (nápisy), 28 (šipky a p?ípadn? i vynášecí ?áry) a (p?inejmenším v zaslané ukázce) 29 pro kótovací ?áry.  Postup práce m?že být takovýto:

1. Na libovolné vrstv?, zvolené dle svého uvážení, p?ikreslíme kótovací ?áry (v ukázce typ 29) a (chceme-li) odlišným typem také vynášecí ?áry (v ukázce 28).
2. Ozna?íme všechny prvky typu kótovací ?áry (tj. 29).
3. P?íkazem Tools | Dimensioning p?ikreslíme šipky a nápisy.

Je-li pozd?ji t?eba kótování aktualizovat, sta?í smazat všechny prvky typu 27 a postupovat od kroku 1.  V podstat? by sta?ilo na kótování mít jediné makro, které za?ne práv? tímto smazáním a pak provede kroky 2 a 3.


--------------------------------------------------------------------------------


Pochopiteln? m?že být nám?tem k diskusi, co vše má být nastavitelné, p?ípadn? co by m?lo být nastaveno sice pevn?, ale jinak.  Asi by mohlo jít o tyto položky:

* formát ?ísel
* velikost a poloha nápis?
* velikost šipek
* logický typ šipek
* logický typ nápis?
* (vrstvu již p?ebírám od kótovací ?áry)

P?ikládám dva ukázkové soubory (p?ed okótováním a po n?m).  Layout s popsaným p?íkazem je op?t v archivu www.formica.cz/files/Layout-p98-pokusy11.zip .  P?ipomínky jsou vítány, je však t?eba mít na pam?ti, že automatické kótování je zcela improvizovaná a okrajová záležitost (do které jsem se te? pustil ?ist? z nutnosti si okótovat n?jaké úpln? neelektrické výkresy).