426

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

kolin napsal:

... kurzor se presune nad plochu programu i v pripade, ze okno programu neni prave aktivni.

Nijak nechci tvrdit, že takhle je to naprogramované úmyslně, ale na posuv cursoru po ukončení operace Layoutu jsem se díval jako na vedlejší efekt, který může uživateli ukázat, že v jeho (mezitím popřípadě skrytém) okně již skončila dosud běžící operace, třeba autorouter.  Chování programu by se asi změnit dalo, ovšem s tím, že by cursor na příslušné souřadnice musel skočit v okamžiku, kdy se okno aktivním opět stane.  V této verzi bych je však už nerad nějak měnil.

kolin napsal:

Zaroven jsem se jeste chtel zeptat, jestli je v soucasnosti moznost zabranit Layout i Schematu, aby mi jakkoliv hybal s pozici kurzoru ... cekam, az se dokonci jedna operace, a mezitim si kurzor chci pripravit na dalsi misto.

Tohle je trochu horší, protože ačkoliv uznávám, že jde o nedostatek, jeho odstranění by pravděpodobně vyžadovalo individuálně ošetřit desítky případů.  Celkem snadno by se dalo zařídit, aby práce v systému menu vůbec neovlivňovala polohu myši.  Horší je to s operacemi v hlavní smyčce.  Tam by totiž bylo třeba u všech příkazů zjistit jednotlivě, zda mají za účel pohnout cursorem.  Zhruba řečeno, takové příkazy samozřejmě musejí přebít polohu myši, kterou uživatel mezitím případně posunul; na druhé straně však obvykle trvají jen okamžik, a pokud uživatel ví, co dělá, nastavení nové polohy myši tím příkazem bylo jeho cílem.  Potíž je s příkazy, které trvají déle (např. autorouter, rozlévání mědi, operace s blokem) a zároveň jejich primárním účelem není posouvat cursor.  Jde totiž o to, že v dosavadní logice programu i tyto příkazy mohou vyvolat posun cursoru -- například tím, že v okolí výchozí polohy cursoru vygenerovaly prvek, k němuž by měl cursor následně přiskočit, anebo jej naopak smazaly, takže by se cursor měl vrátit do rastru.

Z těch důvodů si nějaké principiální řešení nechávám až do dalších verzí.  Možná by se dalo uvažovat o jakémsi provisoriu (např. pokud se během provádění příkazu zapnuly "přesýpací hodiny", vzít v úvahu polohu myši nastavenou uživatelem), ale všechno je to poměrně složité s rizikem vnesení nežádoucích vedlejších účinků -- těmi ostatně může být již to, že se změní chování, na něž jsou uživatelé zvyklí.

427

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

V rychlosti jsem teď program v archivu www.formica.cz/files/Layout-p99-test1103.zip (který je nezávislý na poslední testovací verzi) změnil tak, že se každá součástka bez dalšího posune směrem do kreslicí plochy o tolik, o kolik její hranice po editaci překračovala.  Jistě by to chtělo nějaký čítač chyb (pro hromadnou editaci součástek ve stejném pouzdře, kde může hranice překročit jedno či několik z nich) a chybové hlášení na konci příkazu, ale to asi není prvořadé.

Prosím vyzkoušejte si, zda to skutečně funguje tak, jak byste očekával.  (Nemusím asi zdůrazňovat, že změnit program může být jednodušší než ověřit jeho funkci.)  Předpokládám, že se k tomu brzy ještě vrátím.

428

(0 odpovědí, posláno do Formica na FEL ČVUT)

Jako ukázku pěkných DPS vytvořených v minulém semestru předmětu X13KEO (2007/2008) sem s potěšením zařazuji práci Jana Nápravníka (jedná se o zdroj pro LED Luxeon, obsahující mj. procesor PIC12F675).  Samotné desky si můžete prohlédnout v souboru PDF.

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

429

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

stefan.dubecky napsal:

Vrstva vyššího čísla přepisuje vrstvy nižších čísel.

Přesněji řečeno, od změny P92/16 je to tak, že se vrstvy generují "zevnitř desky ven".  Základní úvaha, která za tím stála, je, že pokud je potisk přítomen, spojový obrazec je zobrazován spíše jen pro orientaci, takže nevadí, je-li někde něčím překryt.  Máte-li tam však více vrstev s funkcí podobnou potisku (což myslím právě je Váš případ), může ovšem být problém je vhodně seřadit.

stefan.dubecky napsal:

...přímý výstup na tiskárnu při stejném nastavení nemá problém...

Výstup pro tiskárnu má k těmto účelům přepínač Options | Opaque Colors = Off, který však na řadě tiskáren bohužel nefunguje.  Jedním z cílů, pro které jsem letos vytvářel generátor PDF, je právě transparence, kterou novější verze PDF formátu umožňují.  Ale ještě jsem se nedostal k tomu ji naprogramovat.

Nakonec ocituji ještě sám sebe (z jednoho e-mailu):  Přemýšlím již hezkou dobu o nějakém zásadnějším řešení; dosud totiž nemůžete např.
  * tisknout horní stranu desky na první stránce a dolní až na druhé;
  * vytisknout více stránek než dvě, ačkoliv by se to velmi hodilo třeba u 4-vrstvých desek;
  * opakovat tisk jedné vrstvy na více stránkách (natož s jinými parametry).

K tomu, co požadujete Vy, by stačilo, abych kupříkladu do menu Artwork | Sides & Extensions doplnil další sloupec, do něhož byste zapsal pořadí tisku.  Ale zajímavých požadavků může být více, a nejlépe by jim možná vyhověl nějaký jednoduchý skriptovací jazyk.

430

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

Napište prosím jména souborů.  Nemám totiž nikde poznamenáno, v kterých (uživatelských) knihovnách jsou nějaké SMD prvky (a také se mi nechce převádět všechno).  Jinak právě SMD často vedly k potřebě doplnit počet typů pájecích bodů, takže pouzdra s těmi novými nemusejí být čitelná.

431

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

Dobrý den, příčina je patrně v tom, že knihovny pouzder, které jste si stáhl, jsou určeny pro verzi 4.40, kde hodnoty popisující pouzdra obecně mají větší rozsahy.  Přitom však verze 4.30 (na rozdíl od současné) nečte knihovnu jako celek (nýbrž si při jejím připojení příkazem Librarian | Add File to Library namapuje, kde je v ní které pouzdro, a ta pak přebírá jednotlivě).

Z poslední závorky plyne, že i když knihovna využívá taková rozšíření verze 4.40, jako jsou např. dvojnásobný počet typů pájecích bodů nebo zvýšený počet prvků na desce, běžná pouzdra mohou být zpětně využitelná ve verzi 4.30, pokud není rozsah hodnot překročen přímo v nich.  Bohužel však toto nastane téměř automaticky, protože běžné pouzdro mívá obrys kreslen na dvou vrstvách s nejvyššími čísly, což jsou ve verzi 4.40 čísla 22 a 23, a ta verze 4.30 nepřečte.  Ve verzi 4.40 je ale možné knihovnu vyexportovat zpět do formátu 4.30, což sice nezaručí, že tam z ní budou všechna (ani jen některá) pouzdra použitelná, eliminuje to však alespoň minulou větu.

Celé to ovšem zní složitě, ale shrnu to jednoduše:  Napište mi, o kterou knihovnu máte zájem, a já Vám ji pošlu vyexportovanou zpět do formátu 4.30.

432

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

Myslím, že jde o dvě dost nesouměřitelné věci.  Rats' Nest, a již jedno- či vícebarevný, by měl poskytovat nějakou globální představu o desce.  Oproti tomu informace o objektu detekovaném ukazatelem jsou ze své podstaty lokální a lokální by tedy bylo i jejich případné rozšíření.

To ale nemění nic na tom, že máte zcela pravdu ohledně užitečnosti dalších lokálních informací.  S jejich rozšířením počítám pro příští zásah do formátu *.pcb souborů (protože se někam musejí ukládat -- asi by se Vám nelíbilo, kdybyste je po každém otevření desky musel znovu načítat třeba z *.pnl souboru).  V zásadě by se mohlo jednat o čtyři věci (nikoliv nutně v tomto pořadí důležitosti):
  1) jména pinů (ve schematu zelená);
  2) "návěští" pinů (ve schematu červená);
  3) jména netů u pinů;
  4) jména netů u ostatních prvků.

Body 3 a 4 jsem odlišil z toho důvodu, že pro piny jsou nety identifikovány jednoznačně už teď (a Layout pouze nepřebírá jejich jména), zatímco u zbývajících prvků to (v souvislosti s dynamickou konektivitou) není tak jasné.  (Co když vodič tvoří oproti netlistu zkrat?)  V každém případě by těch peněz zas tak málo nebylo.

433

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

Barvení netlistu je funkce zabudovaná zatím jen do testovací verze, kam se často dostávají takové funkce, které z různých důvodů nelze do editoru plně integrovat.  Přesněji řečeno, je jen ad hoc využitím uživatelských vlajek, které navíc samy nejsou dosud plně integrovány -- ukládat je do *.pcb souborů by totiž vyžadovalo změnu jejich formátu.

Přesto si myslím, že pomocí dvou maker zmíněných výše v tomto vlákně lze nety obarvit velmi snadno -- hlavní práce asi je ukázat na patřičný pin, pak už stačí se strefit do správné klávesové kombinace.  Pro pohodlí čtenáře zde makra zopakuji a doplním ještě další dvě, jimiž lze nety přidávat k červeným či modrým, anebo od nich ubírat:

Macros (
  <Shift-Ctrl-1> "označ net červeně"  (
    <Ctrl-U> <Ctrl-T> <Ctrl-Enter> <Alt-T> <f> <c> <c> <Alt-N> <r> <Ctrl-Home>)
  <Alt-Shift-1> "překlop červený net"  (
    <Ctrl-U> <Ctrl-T> <Ctrl-Enter> <Alt-T> <f> <c> <x> <Ctrl-U>)
  <Shift-Ctrl-2> "označ net modře"  (
    <Ctrl-U> <Ctrl-T> <Ctrl-Enter> <Alt-T> <f> <d> <c> <Alt-N> <r> <Ctrl-Home>)
  <Alt-Shift-2> "překlop modrý net"  (
    <Ctrl-U> <Ctrl-T> <Ctrl-Enter> <Alt-T> <f> <d> <x> <Ctrl-U>)
)

Omlouvám se za málo výstižné pojmenování překlop červený (modrý) net -- makro ve skutečnosti vždy pracuje s netem pod ukazatelem, přičemž z červeného udělá "zelený" a naopak.  Makra si také můžete stáhnout v souboru www.formica.cz/files/forum/Layout-color_nets.mac a příkazem Macros | Add, resp. Macros | Replace přidat ke standardním.

Mimochodem, dostal jsem také náměty na volbu barvy netů -- pak by mj. šlo nastavit např. obvyklou zelenou, takže by nevadilo, je-li vlajka užita pro něco jiného (ostatně pro něco jiného byly původně také míněny) a barvy by tedy mohly být nastavitelné pro všechny uživatelské vlajky, anebo černou, čímž by se příslušný net dal zneviditelnit (kupříkladu na čtyřvrstvé desce mohou v určitém stadiu návrhu být napájecí nety irelevantní, a naopak by zbytečně zastiňovaly signálové).  Nastavení barev se ovšem nabízí celkem přirozeně; dojde na něj řada, jakmile se zas bude měnit formát konfiguračního souboru.

434

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

Oba výše uvedené archivy jsem opět aktualizoval; v testovací verzi přibyly tyto změny:

14) AboutBox lze při startu programu zavřít jen tlačítkem OK (Layout.dpr,
    About.dfm)
15) doplněno podmenu Tools|Window (Tools.pas)
16) vytvořen driver pro přímé generování PDF (PDF.pas)
17) intenzita šedi se u černých a bílých pájecích bodů nemění (PostScrX.pas)
18) doplněna možnost ořezávat vektorový výstup okénkem (DrvTypes.pas,
    AWDriver.pas, DrawPCB.pas, Artwork.pas, PostScrX.pas, PDF.pas)
19) doplněna možnost kreslit otvory skutečných průměrů (DrvTypes.pas,
    AWDriver.pas, DrawPCB.pas, Artwork.pas, PostScrX.pas, PDF.pas)
20) funkce IsCircularPad rozšířena o plošky typu A a T (Dimens.pas)

Z toho všeho je asi nejdůležitější (a programátorsky bylo jistě nejrozsáhlejší) generování PDF souborů.

Archivy tentokrát obsahují i ty DLL knihovny, do nichž jsem podstatněji zasahoval.

435

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

Možná jednou přidám nějaký rychlokurs generování výstupů pro neuživatele (pomocí volně dostupné technologické verze).  Uživatelům by se dle mého názoru spíše hodil přehled možností -- anebo postup krok za krokem -- jak zkontrolovat desku, než ji do výroby pustí.

Zatím jsem jen doplnil pár animací do tohoto vlákna.

436

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

Dovolíte-li, odpověděl bych Vám k verzi 4.40, ale ve 4.30 to asi je skoro stejné až na jméno příkazu (Read File Items místo Read File Sections).

Nejpřirozenější způsob patrně je vytvořit si pracovní *.pcb soubor, jenž zahrne všechny desky, které si přejete dostat na jeden film.  Podobná úloha se řeší ve vlákně http://www.formica.cz/forum/viewtopic.php?id=117 .  Váš případ se liší mj. v tom, že pravděpodobně nebudete nikdy potřebovat tento soubor rozložit zpět na původní desky.  Proto můžete konflikt v názvech součástek vyřešit tím, že před přičtením nového souboru necháte součástky rozpadnout na jednotlivé prvky.  K tomu (po označení všech součástek příkazem Select | Select | Components | All) poslouží příkaz Edit | Change | Explode.  (Tím též dostanete do potisku skutečná jména součástek, nikoliv ta, která by vznikla přejmenováním.)

Samozřejmě to předpokládá, že desky např. mají společnou tabulku rozměrů a že se do editoru vůbec dohromady vejdou.  V konkrétní situaci mohou existovat i další podmínky, ale teď mne žádné nenapadají.  Narazíte-li tedy na něco, prosím napište.

Ještě malá poznámka z praxe:  Doporučuje se ponechat výrobci šanci desky od sebe oddělit -- jednak s ním konsultovat minimální potřebnou šířku mezery, jednak (pokud se desky nebudou frézovat, ale stříhat) počítat s tím, že nůžky nemohou stříhat "za roh".

Informace o aktuálním umístění knihovny musí někudy probublat do příslušného souboru Layout.Cnf.  Prosím přesvědčte se, že máte na správném místě (tj. u schematického editoru) jeho správnou verzi.  Nějaké podrobnosti k tomu byste také našel ve vlákně http://www.formica.cz/forum/viewtopic.php?id=75 .

438

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

kolin napsal:
Petr Horský napsal:

Na druhé straně tak ovšem člověk mohl hezkou dobu pracovat třeba v editoru součástky, aniž by jakýkoliv backup proběhl.

A toto me docela vadi, ze kdyz edituji soucastku delsi dobu, ze musim cas od casu proste editaci prerusit, ulozit desku a zase pokracovat v editaci - proste behem editace neni nejaka moznost ulozit desku i s rozpracovanou soucastkou: "rozdelanou soucastku v procesu na pozadi vloz do schematu tak jak je (nemelo by to nicemu vadit, vzdyt rucne to mohu udelat take) a desku uloz". tato funkce by navic mela byt totozna s funkci File | Save..., aby slo pouzit stejne makro (vtipne je, ze ho instinktivne mackam i v editaci symbolu, kde se misto toho nyni provede funkce Store.)

Ve schematickém editoru by se možná schema z editoru součástky ukládalo v principu snáze, protože vytvářenou součástku lze přidat k předlohám (nemusí mít instanci), ale v Layoutu by program musel pouzdro umístit někam na desku a stejně tak by si musel domyslet i jméno.  Prakticky by to ovšem bylo v obou případech dost složité (ukládání na disk by vyžadovalo přepnutí celého kontextu editorů).  Z programátorského hlediska by se možná dalo podobného efektu dosáhnout snáze tím, že by editor uměl otvírat více editačních oken, což by zřejmě přineslo i další výhody.  Dohromady to ale znamená, že ve verzi 4.x se do něčeho takového asi nebudeme pouštět.

kolin napsal:
Petr Horský napsal:

Mechanismus spouštěný (až) editačním zásahem tam zase byl proto, aby se uživateli nepřepsaly všechny úrovně backupových souborů stejným obsahem, zatímco byl na obědě. Chtěl jsem to tehdy celé ještě nějak provázat také s těmi backupy, které se vytvářejí v okamžiku explicitního ukládání desky (klávesou F2) -- i těch by totiž mohlo být několik úrovní (spíše než dosavadní jediná) --, ale místo toho jsem vše prozatím odložil k ledu.

Otazkou je, zda by toto nemelo byt spise jen u rucniho ukladani, protoze u automat.ukladani jde o to, neprijit o dlouho neulozenou praci, a nikoliv mit k dispozici jednotlive faze kresleni (kterych lze docilit funkci Undo). Dale, jestli by uzivatele ocenili moznost hlubsi historie za cenu hromadky souboru v adresari navic.

Samozřejmě jsem to nemyslel tak, že by se automaticky a explicitně vytvářené backupy dostávaly do stejné posloupnosti souborů, ale že by tam mohly být společné mechanismy pro udržování takových posloupností.  Mám-li např. schema <schema>.sch, automaticky by mi vznikala řada souborů <schema>.a01.sc$, <schema>.a02.sc$<schema>.aM.sc$ a explicitně (tj. po F2) <schema>.b01.sc$<schema>.bN.sc$, kde M a N by byly parametry, kterými by se to celé ovládalo (popřípadě vypínalo).

Jinak při dostatečné hloubce undo bufferu v něm sice opravdu všechno je, ale nespoléhal bych na to, že je tak jednoduché z něj s jistotou dostat právě ten předchozí stav, který mám na mysli.  Spíše souhlasím s tím, co napsal pan Löffler, a sám při práci postupuji stejně.  Samočinně vytvářenou posloupnost backupů si ovšem dosud nahrazuji kopírováním naposled uložené verze do stejného adresáře pomocí Windows Exploreru.

439

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

Něco takového mimochodem loni krátce prošlo testovací verzí Layoutu, ale nevzbudilo větší odezvu.

Automatický backup (by) byl řízen dvěma parametry, intervalem a počtem úrovní souborů (ten ale ve skutečnosti nebyl implementován).  Fungovalo to takhle:

1) Editačním zásahem do desky (při vynulované vlajce) se naplánoval čas backupu (= aktuální čas + interval) a nastavila vlajka bránící tomu, aby byl dalšími zásahy čas backupu přepisován.

2) Kdykoliv systém procházel hlavní smyčkou v nějakém neutrálním režimu ukazatele, zkontroloval se okamžitý čas.  Pokud byl vyšší než naplánovaný čas backupu, deska se zapsala do souboru a shodila vlajka.

Podmínka s hlavní smyčkou a neutrálním režimem byla nezbytná z toho důvodu, že jinak by se deska mohla uložit v nekonsistentním stavu.  Na druhé straně tak ovšem člověk mohl hezkou dobu pracovat třeba v editoru součástky, aniž by jakýkoliv backup proběhl.  Mechanismus spouštěný (až) editačním zásahem tam zase byl proto, aby se uživateli nepřepsaly všechny úrovně backupových souborů stejným obsahem, zatímco byl na obědě.

Chtěl jsem to tehdy celé ještě nějak provázat také s těmi backupy, které se vytvářejí v okamžiku explicitního ukládání desky (klávesou F2) -- i těch by totiž mohlo být několik úrovní (spíše než dosavadní jediná) --, ale místo toho jsem vše prozatím odložil k ledu.

440

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

Ano, v principu je to docela snadné:  Stačí užít příkazu Files | Read File Sections | Read File.

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

V praxi se ale mohou vyskytnout konflikty jednak ve vzájemné poloze desek, jednak v názvech součástek.  Oboje zároveň lze asi nejlépe ošetřit tím, že (1) výchozí desku okopírujete někam, kde jí nová nebude vadit (kopírováním se na rozdíl od přesouvání přečíslují součástky), (2) původní smažete a (3) přečtete tu další ze souboru, jak je uvedeno výše.

441

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

Výstupní generátory připojované k programu Layout pomocí menu Files | Artwork jsou primárně určeny k co možná nejvěrnějšímu popisu matrice desky.  Formát DXF se však zřejmě daleko častěji užívá pro přenos mechanických rozměrů desky (a podobných věcí) do nějakého CAD systému.  V takovém případě je lépe spojové čáry (které pak ostatně slouží jako konstrukční čáry) transformovat na entity typu LINE (a oblouky analogicky na ARC).  ??daj o šířce čáry se tím ztrácí a zároveň jsou souřadnice středu čáry (resp. koncové body úseček) v datech obsaženy explicitně.  Vedlejším efektem je podstatné zkrácení výstupních souborů (až asi o dvě třetiny).

Pokusil jsem se proto rozšířit dosavadní funkci driveru DXF.dll pomocí nového parametru Files | Artwork | Driver Parameters | Fill Line Threshold.  Ten má defaultní hodnotu 200 µm, což znamená, že spojové čáry slabší než 0,2 mm se do DXF dostanou jako LINEs s nulovou šířkou.  Změnou hodnoty parametru lze samozřejmě dosáhnout také toho, že jako LINEs budou generovány všechny čáry, anebo naopak žádné (hodnota 0 obnoví dosavadní chování).

Jak možná víte, některé dll drivery (RS274X, PostScript) lze připojit jak pro generování matrice, tak i vrtacího programu, či spíše výkresu rozložení otvorů.  Stejným způsobem jsem teď rozšířil také DXF.dll.  Připojíte-li si jej pomocí menu Files | NC Drill, bude generovat otvory jako entity typu CIRCLE s příslušnými středy a poloměry.

Driver s novými funkcemi je samostatně vystaven v archivu www.formica.cz/files/DXF.zip -- připomínky vítány.  ??asem se zřejmě dostane do standardní instalační sady.

442

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

To, že se uživatelské vlajky neukládají, patří k anomáliím testovací verze.  Ale stejně tak k nim koneckonců lze přidat i příkaz, který knihovnu otevře v dalším editoru, ačkoliv se asi všeprostupující zásadě kompaktnosti příčí podstatně více.  Právě jsem jej doplnil do testovací verze (www.formica.cz/files/Layout-p99-test.zip a www.formica.cz/files/Layout-p99e-test.zip), takže tam teď jsou oba.  Výše zmíněný bod 1 jsem ale eliminoval, otvírá se to v jiné instanci stejného programu, jako právě běží.  (Naopak uživatelům omezených verzí by se zde asi lépe hodilo, aby se knihovna místo toho otevřela v prohlížeči, ale to už bych ponechal stranou úplně.)

Ještě bych však měl vysvětlit, že příkaz pro otevření v dalším editoru ve skutečnosti nechyběl tolik, jako pro otevření v původním.  Jestliže si představíme nějakou síovou konfiguraci, kde se uživatel od desky musí k adresáři, v němž má knihovny, proklikávat skrz deset jiných, může přesto celkem snadno příkazem Library|Add Files vyvolat dialogové okno (což je vlastně instance Exploreru) a z něj si knihovnu otevřít pomocí pravého tlačítka myši.  Co doposud nemohl, bylo explicitně získat plnou cestu k té knihovně (by ji program Layout samozřejmě zná).

443

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

Děkuji za výchozí upozornění a za mezitím zaslané soubory (krom *.cfg také *.pcb, bez kterého bych problém odhaloval podstatně obtížněji).  Šlo o zaokrouhlovací chybu; oprava se objeví v příští verzi.  Jako vedlejší efekt zřejmě přidám do chybových hlášení údaj, o kolik byla hranice média překročena, což by uživateli mohlo zjednodušit orientaci.

Pro zajímavost:  Šířka desky pro vypočtené měřítko vyšla 7015,56 pixelů tiskárny, zatímco rozměr papíru byl 297 mm = 7015,748 px (takže by se deska na papír měla vejít).  Jenže šířka desky byla ještě před porovnáním zaokrouhlena na celé pixely, tedy na 7016 px, a to už požadovanou nerovnost nesplňovalo.  Rozdíl (ovšem s nesprávným znaménkem) činil zhruba 0,252 px, čili asi setinu milimetru.  Zde také je příčina toho, proč se na tento problém nenarazilo již dávno.  Vypočtené měřítko totiž je vždy zaokrouhleno dolů na jednotky procent, v porovnání se zaokrouhlovací chybou u rozměru desky tedy velmi hrubě.  Proto bylo jen málo pravděpodobné, že rozměr papíru padne právě do pásma zaokrouhlovací chyby rozměru desky -- střední hodnota rozdílu rozměrů papíru a desky je asi o dva řády vyšší než střední hodnota zaokrouhlovací chyby s nepříznivým znaménkem.  Ale jednou se to stát muselo.

444

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

Prosím pošlete mi *.cfg soubor.

445

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

Do testovací verze 4.40.99.101 jsem také pokusně přidal příkazy Tools | Frame Window a Tools | Stretch Window.

První z nich prostě orámuje stávající okénko čarou právě platného typu na vrstvě ukazatele.  Je tak v určitém ohledu jen chabou náhradou eventuálního příkazu Place | Rectangle, v jiném však (ve spojení se Stretch Window) dokáže podstatně více, než by šlo očekávat od umísování obdélníků.  Modelová situace pro jeho užití: potřebuji něco (třeba součástku nebo celou desku) orámovat několika obdélníky různé velikosti a/nebo v různých vrstvách.  V takovém případě je jednodušší jednou (příkazem Place | Window) umístit okénko a to pak orámovat, rozšířit a znovu orámovat, než umísovat obdélník a pak dopočítávat a hlídat okraje na všech čtyřech stranách.

Podobných příkazů by se samozřejmě dalo vymyslet mnohem více (jen pro začátek, např. rozšíření v osách x a y zadávat nezávisle).  Ale jako vždy, cílem v pozadí by měla být maximální funkčnost dosažená pomocí minima příkazů.  Uvítám náměty na další takové.

Petr Horský napsal:

Máte-li pájecí bod, jehož všechny plošky jsou typu None, poslední testovací verze 4.40.99.100 s ním (při vypnutém přepínači Options | Editor | Edit Invisible Elements of Window) v režimu Move Window... nepohne.

To jsem teď pokusně změnil -- každý pájecí bod s otvorem nenulového průměru je v testovací verzi 4.40.99.101 chápán tak, jako by měl plošky na všech vrstvách.

Vedle toho jsem změnil i způsob detekce (jednotlivé) součástky cursorem tak, že se počítají a berou v úvahu i vrstvy součástky (což je prostě sjednocení vrstev všech jejích prvků).  Pokud tedy např. zhasnete všechny vrstvy na jedné straně desky, SMD součástka na zhasnuté straně díky tomu nebude detekována.

Obě změny (a zejména ta první) leží hodně hluboko ve strukturách programu.  Proto také bylo daleko snazší je naprogramovat než odhadnout, jaké všechny všechny důsledky mohou přinést.

447

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

kolin napsal:

(...) Nyni mate tedy v planu (...) ?

Do testovací verze už bylo leccos z věcí diskutovaných v tomto vláknu pokusně přidáno.  Zatím spíše čekám, jaké s tím budou zkušenosti.

448

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

Příkaz je v právě vystavené testovací sadě (www.formica.cz/files/Layout-p99-test.zip a www.formica.cz/files/Layout-p99e-test.zip).

kolin napsal:

Jeste mam dotaz, budete to otevirat v novem, ci ve stavajicim programu? Primlouvam se o otevirani v novem programu (rozumejte: volat neco jako "layout exe -c:\nazevDesky.pcb")

Sice by nebylo obtížné to naprogramovat takhle, ale mohlo by to vést k určitým problémům a zmatkům:

1) Spustil by se Layout.exe, s nímž je asociována přípona *.pcb, obecně tedy nikoliv ten, z něhož se knihovna otvírá.
2) Co kdyby uživatel příkaz provedl vícekrát, aniž by knihovnu mezitím uložil?  Editací stejného souboru ve více editorech zároveň by si mohl vytvořit dokonalý chaos.

Je jistě pravda, že podobný zmatek si uživatel může vyrobit již teď, ale myslím, že program by to neměl podporovat.  Raději bych to odložil na dobu, kdy bude Formica umět otvírat více oken s deskami.

449

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

Testovací verzi ve výše uvedených dvou archivech jsem právě aktualizoval, přibyly tyto změny:

9)  ošetřeno kreslení obdélníků redukovaných na 1 pixel (ElemGrph.pas)
10) doplněn příkaz Open Library File, příkaz View přejmenován (LibMenu.pas,
    PCBFiles.pas)
11) pájecí bod s otvorem je automaticky na všech vrstvách (Dimens.pas)
12) detekce součástky podmíněna navíc vrstvou (Elems.pas, Comps.pas)
13) doplněny příkazy Tools|Frame Window a Tools|Stretch Window (Tools.pas)

450

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

Děkuji za námět.  Cesta ke knihovně (zejména v nějakém síovém prostředí) skutečně může být velmi odlišná od cesty k deskám, a přitom v systému dosud nebyl způsob, jak jednou již (pracně) zadanou cestu ke knihovně využít i k jejímu otevření. 

Do testovací verze, kterou brzy vystavím, jsem přidal příkaz Library | Open Library File, jímž lze knihovní soubory otvírat podobně, jako příkaz Files | Recent Files otvírá naposled užité.  (Kombinovat jej s příkazem Library | View by se tolik nehodilo, také proto, že jsou-li knihovny v paměti, jména souborů jsou jen na některých řádkách podmenu.)

Jest otázkou, zda příkaz patří spíše do menu Library, anebo Files.  Ostatně jelikož se mi koncepčně nehodil ani do jednoho z nich, kdysi jsem o něm jen vlažně uvažoval a pak ponechal stranou.  Ale jeho praktické výhody by mohly převážit tu estetickou vadu, že buď menu Library bude také otvírat soubory (což by správně mělo dělat jen menu Files), anebo se menu Files bude zabývat i knihovnou (od čehož by tam mělo být pouze menu Library).