376

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

V rámci možností testovací verze postupujete zcela správně.  Program Vám o obecný úhel nedovolí otočit stávající součástku, a to především ze dvou důvodů:

  1) Operace je nevratná.  Tím nemám na mysli, že by k ní neexistovalo undo, nýbrž to, že v důsledku zaokrouhlovacích chyb nemusíte dalším otočením o nějaký doplněk do celistvého násobku 90° (např. dalším otočením o stejný úhel s opačným znaménkem, abych to nepsal tak složitě) získat původní pouzdro, nýbrž v obecném případě poněkud jiné.  (Podobně také např. otočením pouzdra o 11° a pak o 22° obecně dostanete něco trochu jiného než otočením o 33° v jediné operaci.)  Proto jsem chtěl trochu podpořit, aby původní pouzdro někde (v knihovně či přímo na desce) zůstávalo co nejdéle neporušené.

  2) Protože rotace součástek na desce kolem jejich středů neexistuje (jak jsem zmínil výše), nejsou ve standardní verzi programu Layout ani procedury, které by tyto otáčené součástky (a již o násobek 90° nebo o obecný úhel) odpojily z databáze a poté do ní zatřídily znovu.  Jsou-li však otáčeny v seznamu ukazatele, mohu užít procedury ze standardní verze.  Samozřejmě naprogramovat lze leccos, ale spíš než odstraňovat dílčí nedostatky nouzového řešení (a tento dle mého názoru zdaleka není hlavní -- horší jsou problémy s nekruhovými pájecími body, zejména těmi hranatými) se mi zdá lepší investovat programátorský čas do čistého řešení obecných rotací v nějaké příští verzi.

Před nějakou dobou jsem sestavil ukázkový soubor, demonstrující užití transformací v menu Tools, zejména právě rotací.  Můžete si jej prohlédnout zde: rotace2.pcb, případně zde: rotace2.pdf.  V rychlosti jsem z něj také udělal dva výřezy.  ??asem bych asi měl něco napsat ještě o menu Tools jako takovém.

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

http://www.formica.cz/files/forum/rotace1.gif

kolin napsal:

Jeste mam pro p.Peroutku tip: vzdy, kdyz rozmistim popisky referenci, vyvolam jeste "Jump To - Component" a projedu cely seznam soucastek, pricemz koukam do nahledu na pozice popisek; delam to zejmena kvuli tomu, abych se ujistil, ze jsem presunul veskere popisky.

Vidím, že se diskuse již tradičně štěpí, zasahujíc tak do dalších a dalších témat.  Z mého pohledu to nepochybně je v pořádku, Formica úmyslně má funkce co možná provázané a pokročilejší uživatel by měl především uvidět jejich souvislosti.  Potíž je spíše v tom, že diskusní fórum pro to nabízí podporu jen malou, ne-li žádnou.  Otázkou pak zůstává, jak se s tím vším vyrovná laskavý čtenář, který se bude snažit cosi najít ke konkrétnímu tématu.  Asi mu nezbyde než zkoušet vyhledávání klíčových slov v záhlaví fóra (Hledat).

Protože rotace součástek patrně souvisí až s testovací verzí (menu Tools je jen tam), dovolil jsem si založit nové téma http://www.formica.cz/forum/viewtopic.php?pid=736#p736 -- fórum jednotlivé příspěvky přesouvat (ani kopírovat) neumí.

Postup, který uvádí kolin, má výhodu v tom, že zobrazuje součástky isolovaně, bez (pro daný účel rušivých) prvků okolo.  Mimochodem, pro iterování součástkami v desce se mi často hodilo jednoduché makro:

Macros (
  <Ctrl-J> "iteruj součástkami" (<Alt-J><c><RArr><Enter>)
  <Shift-Ctrl-J> "iteruj součástkami zpět" (<Alt-J><c><LArr><Enter>)
)

To mi pak za příznivých okolností (součástky se nepřekrývají; jsem na vrstvě, kde součástky nic nezastiňuje) prochází součástkami v abecedním pořadí pouhými stisky Ctrl-J.  (A Shift-Ctrl-J ovšem postupuje opačným směrem.)

378

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

Protože rotace součástek asi souvisí až s testovací verzí (menu Tools je jen tam), dovolil jsem si založit nové téma zde -- fórum jednotlivé příspěvky přesouvat (ani kopírovat) bohužel neumí.

kolin napsal:

Je to mozna spise na jine tema, ale myslim pripady, kdy mam vlozene pouzdro a potrebuju ho rotovat. Neprisel jsem na to, jak to udelat jinak, nez zapnout kopirovaci funkci, pouzdro zkopirovat a pred polozenim na desku nastavit v "Tools - Rotate" uhel. Cili nemohu jen jednoduse oznacit soucastku a zmenit jeji uhel. Ale je pravda, ze tuto funkci pouzivam do roka asi dvakrat, takze takova tragedie to neni, jen je to takove krkolomne a pokud to neznaly uzivatel bude chtit udelat, bude si s tim asi muset chvili hrat. A take se to neda pouzit na nastaveni konkretniho uhlu.

Předpokládám, že máte na mysli rotace součástek jen o obecný úhel?  Co se týče rotací označených součástek o násobky 90°, samostatný příkaz k tomu není; hlavně proto, že mne nenapadlo, že by jej někdo mohl potřebovat.  Jelikož po rotaci asi stejně bude vždy nutno přesněji upravit polohu, měl jsem za to, že stačí s jednotlivými součástkami dělat obě operace zároveň v režimu ukazatele Move Component (po Alt-F8).

kolin napsal:

(...) ostatne nejen u textu, zatim to je mozne pouze u vybranych rezimu kurzoru (...)

Nevím, zda jsem Vám rozuměl.  Co máte na mysli?

Peroutka napsal:

Bylo by možné změnit funkci pro výběr textu v Layoutu dle orientace tak, aby se rozlišovala nejen horizontální či vertikální orientace, ale i to zda je horizontálně správně či vzhůru nohama (0° či 180° pro horizontální orientaci)?

Myslíte tedy přidat příkaz Select | ... | Text | "Upside Down", který by se staral o vodorovné nápisy (jedno zda zrcadlené) a ignoroval by svislé?  Anebo by se i u svislých jedna orientace (zřejmě ta, kterou nenastaví příkaz Edit | Change | Text Direction) měla považovat za obrácenou?  Také by se mohly jednotlivé orientace vybírat explicitně, analogicky tomu, co píši v dalším odstavci.

Peroutka napsal:

Pak by byla ještě vhodná funkce ke skupinové změně orientace vybraných textů na požadovanou orientaci (0°, 90°, 180°, 270°) kolem středu.

Příkaz Edit | Change | Rotate Text skutečně funguje pouze relativně vzhledem ke stávající orientaci, podobně je tomu u ... | Mirror Text, a konečně i u ... | Text Direction, který zachovává polohu vodorovně či svisle.  Příkaz, který by označeným nápisům vnutil některou orientaci ze 4 (případně 8, zrcadlení je de facto součástí rotace) možných explicitně, by celkem nebylo těžké přidat, a vzhledem k předchozí větě by se možná docela hodil.

Peroutka napsal:

Dnes je občas docela obtížné nesprávně orientované reference součástek najít a žádnou nepřehlédnout.

Hledání by skutečně bylo trochu složitější, ale člověk se také nemusí o aktuální orientaci starat, místo toho prostě může všechny reference označit, a pak jim vnutit "správnou" orientaci postupem, který zmínil kolin o příspěvek výše.  Je-li tak např. u svislých nápisů požadovaná orientace obrácená, stačí potom označení omezit na ně a otočit je samostatně dvojím užitím příkazu Edit | Change | Rotate Text.

Driver pro generování TIFFu nebo PCX si připojíte pomocí příkazu Files | Artwork | Load Driver.

JPG byl navržen pro ztrátovou kompresi obrazu a z toho důvodu se dle mého názoru pro desky ani schemata příliš nehodí.

Co se týče bitmapových grafických formátů, Formica umí PCX (dnes už staromódní) a TIFF (jen černobíle a bez komprese, abychom vyloučili problémy s kompatibilitou, které jsou u TIFFu docela časté).  Oba tyto formáty si můžete přečíst např. programem IrfanView, který je dovede uložit v řadě jiných (např. PNG nebo GIF, mezi kterými bych asi dle okolností volil), včetně JPG.

Bitmapové obrázky se hodí např. pro publikování na webu; pro účely dokumentace bych asi z řady důvodů dal přednost vektorovému formátu, např. PDF (viz též http://www.formica.cz/forum/viewtopic.php?id=134).

Tisknete to přes menu Files | Print ?  Zrcadlení lze zapnout ve Files | Print | Transformations | Artwork Mirrirong nebo ... | Side A / B Mirroring.  (Program už si to nějak poskládá.) 

Také byste mohl uložit konfiguraci příkazem ... | Write Configuration a poslat mi ji, abych se podíval, jak to děláte.

384

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

Ing. Jan Grill mi dnes poslal novoročenku, při pohledu na niž jsem zjistil, že nedokáži odolat nutkání ji tu s jeho laskavým svolením zveřejnit.  (Vzhledem k pravidlům fóra je zde sice zjevně OT, ale snad mne trochu omlouvá alespoň to schema užité jako pozadí.)

http://www.formica.cz/files/forum/pf2009_4.jpg

A při té příležitosti si dovoluji připojit se s přáním úspěšného a ve spokojenosti prožitého nového roku všem uživatelům Formiky.

385

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

Naprostou náhodou jsem teď na webu alternatezone.com/electronics/pcbdesign.htm objevil velmi pěkný, přiměřeně krátký, přístupným a jednoduchým jazykem psaný tutorial pro počítačový návrh desek plošných spojů: PCBDesignTutorialRevA.pdf.

Není vázán na žádný konkrétní návrhový systém (tím méně na jeho ovládání), spíše od základu vysvětluje, jak má deska vypadat.  S potěšením jsem tam opět našel pár elementárních věcí, které říkám vždycky každému (např. čím jemnější rastr, tím hrubší výsledek; preferovat 45°; spoje dotahovat do středu padů; rozumná šířka vodičů; atd. atd.), a často marně. 

Zdá se mi, že tento tutorial by mohl přijít k užitku komukoliv, kdo s návrhem desek začíná (nebo se právě rozhodl začít znovu a pořádně), pokud trochu čte anglicky.

Děkuji za zaslané ukázky.  Nějaký import DXF jsem si v té nejjednodušší podobě naprogramoval, jak je patrno z obrázku (viz též www.formica.cz/files/forum/Columbia.PCB)

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

Ukázkové soubory ovšem vedle úseček obsahovaly i kružnice a oblouky, které bylo nutno ošetřit také.  To by tolik nevadilo (snad až na projevy zaokrouhlovacích chyb), horší však je, že z ukázek vyplynuly některé další problémy, např.:

* souřadnice mimo pracovní plochu (záporné);
* kótovací čáry, což by pro komfortnější řešení vyžadovalo výše zmíněné mapování hladin a barev;   
* vložené objekty (bloky) s vlastním systémem souřadnic.

Odkaz na program Layout.exe s importem DXF zasílám uživatelům, od nichž jsem dostal ukázkové soubory.  (Je opět z té pokusné řady, takže import mj. není příliš failsafe.)

Mohli byste mi prosím zaslat nějaké ukázkové výkresy v DXF?

Představuji si, že by import v nejjednodušší podobě vypadal tak, že se z DXF souboru bude zajímat jen o entity LINE, jen o úsečky, které se (s potlačením případné souřadnice z) celé vejdou na pracovní plochu, a jen o ty, které mají číslo barvy a číslo hladiny v zadaných mezích.  Tyto úsečky se přenesou na zadanou vrstvu desky jakožto zadaný typ, zatímco všechny ostatní budou prostě ignorovány.  (Takovýmto způsobem by asi šlo číst i strukturovanější výkresy, jen by se příkaz musel užít opakovaně s novým nastavením parametrů.)

Než však někdy ve volné chvilce začnu něco programovat, rád bych si na nějakých reálných výkresech ověřil, nakolik je výšepopsaná představa životaschopná.  Flexibilnější by asi bylo import přidat jako příkaz do menu Tools testovací verze -- uživatel hned uvidí, co se stalo, a má nakonec k disposici i undo.  Oproti tomu konverzi do *.pcb souborů by si mohl celkem snadno vyzkoušet každý zájemce -- syntax k tomu postačující je velmi jednoduchá:

Layout (
  Lines (
    (   popis úsečky   )
    (   popis úsečky   )
    ...
  )
)

Podrobnosti (tj. význam těch šestic čísel v závorkách) lze najít někde ke konci manuálu www.formica.cz/manuals/fl430-ht.pdf .

388

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

Máte na mysli tenhle: http://sourceforge.net/projects/gerbv/ , http://gerbv.sourceforge.net/ ?

Dobrý den, ještě než se dostanu k jádru věci, dovolím si zmínit jednu drobnost, čímž zároveň ukážu strukturu Vaší součástky:

http://www.formica.cz/files/forum/3led2.gif

Pomocné pájecí body by se možná hodilo elektricky spojit s ploškami vytvořenými ze segmentů spojové čáry; tím se vyloučí zbytečné indikace porušení izolační vzdálenosti.

Váš požadavek je dost speciální hlavně z toho důvodu, že potřebujete, aby Vám jedno pouzdro v partlistu generovalo tři položky.  Formica však o tom teď nemá žádnou informaci a v databázi verze 4.x neposkytuje ani žádný způsob, jak popsat, že určitá součástka je jemněji strukturována na další součástky.  Napadají mne ale dva způsoby, jak problém s trochou úsilí obejít. 

Napřed ještě řeknu, že u součástek, které mají nějaké vývody, se za jejich střed považuje střed (nejmenšího, dle souřadnic x, y orientovaného) obdélníka opsaného středům těch vývodů.  Pro generování partlistu se tento střed bere jako referenční bod; možnost zadat jiný tam není.  (Podrobněji to je popsané někde v helpu.)  Z toho důvodu by zřejmě bylo vhodné vývody 1 a 3 prohodit s pomocnými nečíslovanými pájecími body, protože -- jak předpokládám -- referenční body diod R a G asi chcete mít v jejich středech.  (Nemusím jistě připomínat, že k tomu slouží editor součástky a příkaz Replace | Replace All Components.  Potíž je spíše v tom, že touto operací se pouzdra zároveň posunou vůči desce, takže nezbývá než je vrátit zpět, nejlépe v režimu Move Goup.)

1) Jedna možnost tedy je vygenerovat partlist natřikrát a spojit dohromady textovým editorem.  Pro jedno generování byste však v součástkách odmazal vývody 3 až 6, pro druhé 1, 2, 5 a 6, a konečně pro třetí vývody 1 až 4.  I pokud to snad vypadá složitě, s pomocí příkazu Undo se to dá rychleji provést než vysvětlit.

Zbývá ovšem vyrovnat se s tím, že se v těch třech souborech opakují stejná jména, a také s orientací součástek (ta je naštěstí u všech trojic diod na desce táž).  Oboje bych asi bez větších rozpaků řešil nahrazováním textu v textovém editoru.

2) Druhou možnost zde nebudu rozvádět do podrobností, zmíním jen, že Formica je otevřený systém alespoň potud, že partlist je (resp. může být) generován v Partlist.dll, jejíž zdrojové texty jsou součástí instalační sady.  Zde uvedu pouze klíčovou proceduru:

procedure ProcessPartlist (var CompDescr: array of PCompDescr; const BoardDescr: TBoardDescr;
                           Write: TWriteProc);
  type
    TSide = (Top, Bottom, Undefined);
  var
    Side: TSide;
    i: Integer;
  const
    MarkStrs: array [Boolean] of string [1] = ('-', '*');
    OrientStrs: array [0..7]  of string [5] = ('R0', 'R90', 'R180', 'R270', 'MR0', 'MR90', 'MR180', 'MR270');
    SideStrs: array [TSide]   of string [3] = ('TOP', 'BOT', '   ');

  function CompSide (Layers: TLayers; Mirrored: Boolean): TSide;
  begin
    with BoardDescr do begin
      Layers := Layers * [BotLayer, TopLayer];
      if Layers = [BotLayer, TopLayer] then     // piny jsou na obou stranách
        if Mirrored then
          Result := Bottom                      // klasická sou?ástka je zrcadlena
        else
          Result := Top
      else if Layers = [TopLayer] then
        Result := Top                           // piny jsou jen shora
      else if Layers = [BotLayer] then
        Result := Bottom                        // piny jen zdola
      else  { Layers = [] }
        Result := Undefined;
    end;
  end {CompSide};

begin
  Write ('Partlist from FORMICA 4.40 / P96   Copyright (C) 1986 - 2005 by Petr Horský'^M^J);
  DecimalSeparator := '.';
  for Side := Top to Undefined do
    for i := 0 to High (CompDescr) do
      with CompDescr [i]^ do
        if CompSide (PinLayers, Mirrored) = Side then
          Write (Format ('%s'^I'%s'^I'%s'^I'%3d'^I'%s'^I'%8.3f'^I'%8.3f'^I'%s'^I'%s'^M^J,
                         [Underscore (Name),
                          Underscore (Value),
                          Underscore (Pckg),
                          NoOfPins,
                          MarkStrs [Marked],
                          Center.x,
                          Center.y,
                          OrientStrs [Angle div 90],
                          SideStrs [Side]]));
end {ProcessPartlist};

Není nereálné si ji ad hoc upravit tak, aby z jedné součástky generovala tři položky, lišící se (mj.) o známý offset.  Pokud byste chtěl postupovat touto cestou, jsem Vám samozřejmě k disposici pro další konsultace.

3) Zde se už nebudu zabývat tím, jak problém řešit, nýbrž jak zamezit tomu, aby vůbec vznikl.  V dané situaci bych patrně zvažoval, zda není výhodnější místo každé "sdružené" součástky umístit trojici samostatných diod (přičemž bych u každé ponechal ty dvě okrové kružnice -- jestli se ve výsledku překryjí, je to jen dobře).  Musel bych ale trošku přemýšlet, jak nejlépe ošetřit vazbu na *.pnl soubor.

Dobrý den, především musím zdůraznit, že nejsem žádný odborník na DXF.  Při letmém pohledu do manuálu http://images.autodesk.com/adsk/files/acad_dxf.pdf se mi zdá, že nastavit barvu pozadí by snad bylo možné, pokud bych v souboru zadefinoval tabulku VIEW, případně VPORT.  Ani jedno z toho však nevypadá úplně jednoduše, nehledě na to, že účel těchto tabulek asi je trochu širší než obarvit pozadí výkresu.

DXF výstup z Formiky jsme vždy chápali spíše jako soubor, který si uživatel importuje do svého prostředí, než jako samostatný výkres.  Jaké užití byste předpokládal Vy?

391

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

kolin napsal:

jeste mala otazka, co jste myslel vetou "Upozorňuji však, že na rozdíl od obvyklých testovacích verzí uvnitř jsou některé moduly zdrojového textu zcela jiné (a pouze emulují dosavadní chování)."?

Tentokrát jsem místo toho, abych vyráběl další testovací verzi, požadovanou změnu prostě přidal do vývojové verze, kterou jsem měl právě pod rukama.  V ní je několik tisíc řádků jiných -- mj. si tam ověřuji parser z nové verze systému, který se musí nějak vyrovnat s rozšířenou syntaxí budoucích *.pcb souborů.  (Že uvnitř je cosi jiného, byste poznal třeba podle toho, že parser přijme řádkové komentáře začínající "//" po vzoru C++, nebo že řádky mohou být libovolně dlouhé.)

392

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

No, dle mého názoru ty dva obrázky spíše ukazují, že nemáte-li enormní nedostatek místa na pracovní ploše, pro účely rozmísování součástek kolem desky byste mohl za okraj pracovní plochy docela pohodlně považovat poslední body zobrazeného gridu a (případný) několikamilimetrový okraj snadno obětovat.  Jiná věc ovšem je, že grid nemusí být zobrazován vždy.

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

Pro vybarvení nedostupné části okna by se myslím docela hodila (nastavitelná) barva Windows clAppWorkSpace.  Jak by to vypadalo, vidíte na obrázcích; prakticky vyzkoušet si to můžete s verzí www.formica.cz/files/Layout-p99-test9105.zip .  Upozorňuji však, že na rozdíl od obvyklých testovacích verzí uvnitř jsou některé moduly zdrojového textu zcela jiné (a pouze emulují dosavadní chování).

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

393

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

Dobrý den, ukládání desek ve formátu verze 4.30 může vést k různým problémům, jejichž společnou příčinou je, že parametry verze 4.40 mají v několika směrech širší rozsah (viz též www.formica.cz/layout440.html#20).  V zásadě platí to, že desku vytvořenou ve verzi 4.30 lze otevřít ve verzi 4.40, tam zapsat zpět do formátu 4.30, a pak opět otevřít ve verzi 4.30; jakmile však ve verzi 4.40 něco přidáte, poslední z těchto kroků pochopitelně může vést k chybě.

Pokusím se shrnout, jak jsou jednotlivé body z výčtu www.formica.cz/layout440.html#20 ošetřeny:

1) Vrstvy.   Při převodu z verze 4.30 se vkládají 4 vrstvy mezi původní vrstvy 2 a 3, a další 4 mezi 12 a 13.  Ve verzi 4.40 se tudíž při zápisu do starého formátu čísla vrstev zpětně transformují dle této tabulky:

const LayerTable: array [0..MaxLayer] of integer =
  { 0   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20  21  22  23}
  ( 0,  1,  2,  2,  2,  3,  3,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 12, 12, 13, 13, 13, 14, 15);

Např. z vrstev 16, 17 i 18 verze 4.40 se tak ve verzi 4.30 stane vrstva 12, a v případě návratu do 4.40 vrstva 16, což odpovídá výsledku, který zmiňujete.  (Při řešení zpětné kompatibility jsem měl v zásadě na výběr mezi zahozením všech objektů na vrstvách 3 až 6 a 17 až 20 nebo tímto přepočtem, jemuž jsem dal přednost jakožto méně destruktivnímu.)

2) Typy pájecích bodů a spojových čar.   Verze 4.40 má obou dvojnásobně; jakmile využijete něco z druhé poloviny jejich tabulek, dostanou se do formátu 4.30 čísla mimo povolené rozsahy.  Právě to se stalo i Vám -- k citované chybě na řádce 341 stačí mít takový typ nadefinovaný v tabulce (viz obrázek zcela dole), na desce ani nemusí být použit.

3) Počty objektů.   Ty mohou být ve verzi 4.40 až několikanásobně vyšší.  Samozřejmě při zápisu do formátu verze 4.30 těžko mohu přespočetné objekty zahodit (tím spíše ne, že verze 4.30 se prodávala v několika "velikostech").  Zde asi na problém nejčastěji narazíte u počtu prvků, který díky rozlévání mědi bývá na deskách verze 4.40 podstatně vyšší.  (Skutečně, pokud ve Vámi zaslaném souboru řádku 341 prostě smažu, ve verzi 4.30 čtení desky skončí překročením max. počtu prvků.)

4) Znakové sady.   Verze 4.30 užívá Windows 1250, verze 4.30 starobylou sadu bratří Kamenických, která obsahuje pouze češtinu, slovenštinu a němčinu.  Z toho důvodu nezbývá, než ostatní znaky při převodu nahradit podtržítkem (viz ukázka).  Totiž, kdybych si s tím byl více vyhrál, mohl jsem místo toho z písmen ostatních abeced jen odstranit diakritiku; to je ale maximum, co by šlo udělat.

http://www.formica.cz/files/forum/format430-2.png

Shrnuto, formát verze 4.30 tedy znamená opravdu jen formát.  Z podstaty věci nelze zaručit, že soubor v konkrétním programu Layout verze 4.30 opravdu půjde bezchybně otevřít.  Sice bych byl mohl při zpětném převodu (poměrně pracně) testovat všechny meze a vypisovat varování, jednodušší však zřejmě bude si soubor zapsaný do formátu verze 4.30 vždy alespoň zkusit otevřít v její stále dostupné demonstrační verzi (www.formica.cz/files/form430w.zip).

http://www.formica.cz/files/forum/format430-1.png

394

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

Pořád si nejsem jistý, zda Vám rozumím správně.

kolin napsal:

(...) nelze uvazovat tak, ze vetsina rastru na to preci sedi, tak proc to neobejit a pomoct si postelovanim prahovych hodnot (...)

Pokud ale máte místa dost, můžete si snad ponechat nějakou rezervu, a pak je asi jedno, zda konci pracovní plochy odpovídají uzlové body rastru přesně či nikoliv.

kolin napsal:

(i ja jsem napr.honem nevedel jak toho dosahnout)

Z toho si prosím nic nedělejte, to já také ne; pouze jsem si po všech těch letech pamatoval, že nějak to možné bude, a zda je ten parametr třeba stáhnout nahoru nebo naopak dolů jsem si musel vyzkoušet.  Mimoto např. právě Vaše příspěvky v tomto fóru dokládají, že do systému vidíte docela hluboko.

395

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

kolin napsal:

1) Jak toho zobrazeni dosahnu?

Stačí pro příslušné měřítko povolit zobrazování gridu a pak pohnout tímto parametrem:

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

kolin napsal:

2) jako nouzove a hrube voditko to staci. Na presnu indikaci to ale moc neni. Pokud mi oblast bude koncit v polovine kroku mrizky, pak stejne neuvidim presny okraj....

Proč ne?  Přesné rozměry pracovní plochy jsou 32000 x 32000 vnitřních jednotek, tedy soudělné s většinou modulů gridu, které rozumně přicházejí v úvahu.

Napadá mne ještě, zda třeba opět neřešíme trochu jiný problém, než na jaký jste původně narazil.  Není vlastně potíž v tom, že pracovní plocha výše uvedených rozměrů Vám je malá? 

Před časem jeden uživatel zamýšlel vyrábět desky podstatně delší než 1 m, které se do standardní Formiky nevejdou.  Na jeho přání jsem tehdy odvodil verzi, která (s drobnými omezeními, např. nemožností ukládat v binárním formátu) dovolovala pracovat na ploše až 3,2 x 3,2 m.  Mezitím se ukázalo, že materiál (FR4) potřebných rozměrů zde nikdo nedodává, takže vývoj té zvětšené verze neměl další pokračování, ale někde bych ji zřejmě našel a možná dokázal i aktualizovat o nové vlastnosti.

396

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

Děkuji za námět; až bude chvilka, podívám se na to.  Mezitím byste si naopak mohl zkusit, zda byste požadovaného efektu nedosáhl i se současnou verzí pouhým zobrazením gridu (viz ukázka).

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

kolin napsal:

1) vs.2) a jak se program zachova v pripade, ze mam prepnuto na text.format, vyuziju delku radky a napisu tam >79 znaku a pak se prepnu do bin.formatu a dam ulozit? Respektive jde tuto delku v realu vubec v layoutu ci schematiku vyuzit? V polich schematiku mohu napsat jen 37 znaku...

V Layoutu je délka nápisu omezena na 72 znaků (a názvu součástky na 31), víc tedy skrz dialog pro jeho zadání ani neprojde.  Pokud byste si delší řetězec zapsal ručně do *.pcb souboru, skončí jeho čtení hlášením chyby.

kolin napsal:

3) musel bych trochu pohledat v kodech a ve svych aplikacich, ale da se emulovat stisk klaves, tak by se dala urcite funkce maker zachovat.

Tradičně se držím zásady neprorůstat příliš s operačním systémem (proti ní ostatně jde již užití standardní vstupní řádky).  Stisky kláves jistě lze emulovat, mohu si tím však snadno vyrobit problémy např. s českou klávesnicí nebo se zajištěním toho, aby klávesy šly do správného okna.

kolin napsal:

A jak je to s delkami retezce ve schematiku?

Asi dost podobně; výše uvedená čísla jsem užil jednak proto, že je mám v hlavě, jednak proto, že některé řetězce se stejně nakonec musejí skrz *.pnl soubor přenášet do Layoutu.

kolin napsal:

To ze by se v Layoutu nezobrazovaly poznamky cele, si myslim, ze by nemuselo (ale vim ze mohlo) vadit (...)

Poznámky se tam myslím nedostávají vůbec.

V současné verzi jsou některá inherentní omezení.  Např. pro Layout platí:

1) V binárním formátu *.pcb souboru je největší délka řetězce 79 znaků.

2) V textovém formátu *.pcb souboru je největší délka řádky 255 znaků.  (Mám zde sice testovací verzi Layoutu s novým, zcela odlišným parserem, který může pracovat s neomezeně dlouhou řádkou, jde však i o zpětnou kompatibilitu.)

3) Dialogové okno pro editaci řetězce nescrolluje do stran, což omezuje jeho délku.  (Dříve či později tam dám standardní windowsovskou editaci, která se vůči programu bude chovat jako black box analogicky např. k dialogu pro otevření souboru.  Cenou za to mj. bude, že přestanou fungovat makra, která se nějak podílela na editaci řádky.)

4) Interně by s řetězci delšími než 255 znaků musel program pracovat dosti odlišně.

399

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

Pro základní představu připojuji stažené obrazovky z (dnes již velmi staré) verze GCPrevue 9.0.0.8, kterou užívám doposud.  Několik po ní následujících verzí mělo ovládání vyřešeno ještě méně šastně, a současnou verzi vlastně neznám. 

http://www.formica.cz/files/forum/gcprevue9-1.png

(původní velikost zde)

Ostatně také fonty v matricích, které jsem pro vytvoření obrázků náhodně našel na disku, jsou starodávné, ještě z verze 4.30...

http://www.formica.cz/files/forum/gcprevue9-2.png

(původní velikost zde)

400

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

K prototypové výrobě DPS lze s výhodou užívat též frézování (které odstraní měď z kuprextitové desky tak, aby její zbytek vytvořil jednotlivé od sebe izolované vodiče).  Katedra K313 k tomu účelu vlastní speciální zařízení, frézu firmy LPKF, dodanou se softwarem umožňujícím výpočet dráhy nástroje z dat, která by jinak sloužila k vykreslení matrice na fotoplotteru.  Výsledný tvar vodičů pak odpovídá tomu, jaký by se vyráběl fotochemicky.  To ale je dost vzdáleno od minimální trajektorie nástroje, jak plyne již z toho, že vodiče (pokud spolu těsně nesousedí) jsou od sebe odděleny nejméně dvěma čarami (a zbývající nikam nepřipojenou mědí), zatímco k odizolování by stačila čára jediná.

http://www.formica.cz/files/forum/isolation_lines_2d.png
Chceme-li dráhu nástroje zkrátit, může být vhodnější vrátit se ke starodávné metodě dělicích čar, umístěných zhruba uprostřed mezi vodiči, podobně jako na obrázku výše.  Katedra K313 proto vypsala algoritmy pro výpočet dělicích čar jakožto téma bakalářské práce, kterou na konci minulého semestru obhájil pan Faflík. 

Jím vytvořený program dostává na vstup popis jedné vrstvy spojového obrazce z programu Layout, kterému vypočtené dělicí čáry zas vrací zpět v samostatné vrstvě.  Takováto koncepce přináší podstatné výhody z hlediska interaktivity, jež návrháři na jedné straně může ušetřit veškerou práci, kterou by měl s ručním kreslením dělicích čar, ale na druhé mu dovoluje do nich dle potřeby libovolně zasáhnout (kupříkladu ve snaze zvýšit proudovou zatížitelnost nebo snížit parazitní kapacity vybraných vodičů).

Pro zjednodušení úlohy se práce pana Faflíka omezuje na pravoúhlé spoje (takže segmenty pod obecným úhlem převádí na obdélníky a nemůže se tedy vyrovnat s případem, kdy takovéto obdélníky -- např. generované paralelně vedenými šikmými spoji -- do sebe zasahují).  Také vypočtené dělicí čáry budou vždy pravoúhlé.  Celou práci si můžete stáhnout zde a příslušné programy (včetně speciální verze programu Layout) jsou dostupné na vyžádání.

Obrázek nahoře je výřezem z výstupu generovaného z testovací desky.  Následující dva obrázky ukazují chování algoritmu na testovacích datech -- z podrobnějšího pohledu (samozřejmě na obrázek v původních rozměrech, protože zmenšením v prohlížeči se část dělicích čar ztrácí) je patrné, že dosud zbývá v algoritmu opravit některé nepřesnosti.

http://www.formica.cz/files/forum/isolation_lines_2.png
(nezmenšený zde)

http://www.formica.cz/files/forum/isolation_lines_1.png
(nezmenšený zde)