1

Téma: Modifikace dat pro osazovací automat

Osazovací program často obsahuje více součástek, než bude automat skutečně osazovat.  Program Layout ve verzi 4.40 do něj sice může přenést příznak, odlišující součástky, které jsou v okamžiku generování výstupu označené, pak ale vzniká otázka, jak (množinovými operacemi či jednu po druhé) označit ty správné.

Další problém existoval v programu Layout verze 4.2, který (pravděpodobně jen v několika svých releasech, ale neověřoval jsem si to) přesouval do pole Value součástky hodnotu Part Name ze schematického editoru.

Uživatel verze 4.2, jenž si -- jak vysvětluje v dále citovaném e-mailu -- přeje setrvat v anonymitě, mi pro ošetření obou problémů zaslal svoji utilitu:

http://www.formica.cz/files/forum/PartListMod.zip

Utiltku PartListMod, zdrojové texty, popis apod. použijte podle svého uvážení, jen ji nespojujte s mým jménem nebo jménem firmy. (Vznikla v rychlosti pro naší potřebu, takže zdrojové texty ani provedení nesplňují nároky, které bych si pro neanonymní zveřejnění kladl.) Na ukázku, nebo pro někoho v podobné situaci, ale jistě poslouží.

Ačkoliv program PartListMod asi nemá tu robustnost, kterou by jeho autor vyžadoval u svých profesionálních aplikací, oceňuji jeho zdrojový text jakožto ukázku, jak snadno lze programově zacházet se soubory generovanými Formicou.  (Stačí totiž předpokládat, že soubor byl zapsán přímo programem, a lze si ušetřit spoustu práce s jeho lexikální a syntaktickou analýzou, což jinak Formica dělá, aby mohla zpracovávat i soubory ve volném formátu vytvořené uživatelem.)  Proto jej zde s potěšením zveřejňuji nejen jako ošetření výše uvedených problémů, ale také jako vzor či inspiraci pro řešení obdobných situací.

Dále již následuje text e-mailu, který jsem spolu s programem dostal:

    Program Scheme správně vygeneruje netlist (*.pnl), tam je i hodnota. Při načítání do Layout (minimálně u verze 4.2) se však součástce na desce nepřiřadí do pole Value hodnota Value z netlistu, ale právě Part Name (viz obrázek). Nelze to nijak ovlivnit.

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

    Nikdy nám to nevadilo a výrobce s tím také neměl problém. Nyní jsme změnili výrobce a potřebovali jsme seznam součástek i s hodnotami. Při malém počtu součástek bych změny udělal ručně, ale současná deska jich obsahuje téměř 800, a to už je riziko chyby veliké.

    Udělal jsem na to takovou utilitku, se kterou jsem problém vyřešil. Je to napsáno opravdu v rychlosti za několik (nočních) hodin, proto se pod ní nepodepisuji :-)  Ale účel -- zdá se -- plní.

    Vyřešil jsem také druhý (častý) problém. Deska je navržena pro kompletní variantu. Kromě toho ji lze osadit i ve variantě jednodušší, kdy jsou některé součástky vynechány. Desku tedy navrhnu z plného schématu, pak schéma upravím (odstraním prvky, které v jednodušší verzi nejsou) a vygeneruji nový netlist. Pomocí utilitky pak z Part listu vynechám součástky, které nemají odpovídající referenci ve zjednodušeném netlistu.

    Více obrázky dole.

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

Otevřu netlist, který obsahuje seznam součástek, které budou osazeny (může být plný, nebo může obsahovat jen součástky pro danou verzi).
Otevřu part list vygenerovaný Layout 4.40 -- ten se hned zobrazí (druhý sloupec by měl obsahovat Value).

K zaškrtávacím políčkům: co bude zaškrtnuté, to se neobjeví v výsledném modifikovaném Part listu.

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

Tlačítkem Compare se porovná Part list s netlistem. Pokud v netlistu neexistuje daná reference, políčko se zaškrtne a řádek se zobrazí červeně.
Naváděcí značky v netlistu nebudou, ale jejich přesná poloha je výhodná -- proto u nich zaškrnutí ručně zruším.

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

Tlačítkem Replace se spustí nahrazování údajů Part listu -- pouze ve sloupci Value -- hodnotami z Netlistu (rozhodující je reference).
Nahrazovat lze s potvrzováním jednotlivých změn, nebo hromadně.

Nakonec ještě projdu seznam a zaškrtám položky, které se osazují manuálně, aby se neobjevily v seznamu pro automat.

Tlačítkem Save Part List se vygeneruje modifikovaný seznam, který obsahuje jen položky, které nejsou zaškrtnuté (t.j. jsou bílé).

Utilitku přikládám i se zdrojovými texty a s ukázkou použití, pokud by někdo narazil na podobný problém.