česky english Vítejte, dnes je pondělí 30. prosinec 2024

Skripty v Altium Designeru: když vám některá funkce chybí

DPS 2/2012 | Články
Autor: Petr Tošovský

Ať už používáte jakýkoliv návrhový systém na vývoj vašich elektronických zařízení, určitě sami dobře víte, že i ty nejlepší nemusí obsahovat všechny funkce, které pro svoji práci potřebujete. Otázkou je, co v takovém případě dělat.

Altium Designer (AD) je, podobně jako některé další návrhové systémy, vybaven integrovaným skriptovacím systémem, který vám umožňuje vytvořit si funkce vlastní, funkce, které odpovídají přesně vašim požadavkům. Díky struktuře Altium Designeru jsou prostřednictvím skriptu dostupné téměř všechny funkce a objekty, podobně jako byste je ovládali ručně. Název skript je použit především z toho důvodu, že na rozdíl od standardních programovacích jazyků nemá v prostředí AD uživatel možnost vytvořit si vlastní datovou strukturu. Musí si vystačit s datovými strukturami vestavěnými. Toto omezení na druhou stranu přináší, podobně jako v jiných skriptovacích jazycích, typovou volnost a tedy jednodušší programování bez nutnosti explicitního zadávání datových typů a s podstatně sníženými možnostmi na ohrožení funkce zbytku systému.

Skripty v Altium Designeru: když vám některá funkce chybí 1

Obr. 1 Ukázka skriptu s grafickým uživatelským rozhraním

Skriptovací systém AD dovoluje zápis skriptů v syntaxi několika programovacích jazyků, ale hlavní jsou především Delphi (Pascal) a Visual Basic. Podobně jako plnohodnotné verze těchto jazyků nabízí AD komfortní vývojové prostředí se všemi nezbytnými vymoženostmi pro vývoj požadovaného algoritmu jako je interaktivní debugger umožňující krokování a vnořování se do funkcí/procedur, průběžné sledování obsahu proměnných, ale také breakpointy a pokročilý editor s dokončováním rozepsaných identifikátorů. Vývojové prostředí dokonce dovoluje ke skriptům vytvářet plnohodnotné grafické uživatelské rozhraní. Interakce se skriptem se tedy nemusí odehrávat pouze na úrovni textových výpisů a vstupů. Ovládání se blíží klasickému programování s používáním editoru grafického vzhledu aplikace, kde přidáváte do okna aplikace tlačítka, textové rámce, rozbalovací seznamy atd. a k těmto objektům pak už pouze vytvoříte obslužnou funkci k dané události (např. co má skript vykonat po kliknutí na tlačítko Exit).

Jelikož ne každý má čas a chuť studovat skriptovací systém Altium Designeru a díky tomu, že jsou požadavky návrhářů elektroniky často velmi podobné, rozhodl jsem se před nějakým časem vytvořit pro uživatele Altium Designeru po vzoru open-source komunit nekomerční webovou stránku „Altium Designer addons“ pro sdílení skriptů. Zde mohou uživatelé nabízet vlastní skripty ostatním a stahovat již hotové skripty od svých kolegů z celého světa (mezi přispěvateli jsou uživatelé ze Skandinávie, Chorvatska, USA, Japonska, Austrálie a několika dalších zemí).

Skripty v Altium Designeru: když vám některá funkce chybí 2

Obr. 2 Webová stránka „Altium Designer addons“ pro sdílení skriptů

Stránku najdete jednoduše zadáním hesla „Altium addons“ do vašeho vyhledávače nebo přímo na odkazu [1]. Stránka je hostována službou Google Code, které tímto děkuji za kvalitní a bezplatný prostor pro tento projekt.

Mezi populární skripty patří například:

  • SelectConnectedTrack – skript vybere a označí všechny libovolně se dotýkající vodivé objekty na plošném spoji.
  • EagleToAD – balíček skriptů pro konverzi projektů z návrhové systému Cadsoft Eagle do Altium Designeru.
  • AdjustDesignators – skript pro automatizované rozmísťování popisků ve vrstvě potisku na plošném spoji.
  • Current Calculator – pomocný skript, který vypočítá pro vybranou cestu na plošném spoji maximální použitelný proud pro oteplení o 1, 5 a 10 °C.
  • FormatPaintBrush – šikovná pomůcka pro jednoduché kopírování vlastností různých objektů ve schématu i na plošném spoji do jiných objektů stejného typu označováním zdroje a cíle myší. Není tak potřeba nastavovat mnoho parametrů ručně nebo je kopírovat jinou cestou.
  • SpiralTrack – skript, který vytvoří na plošném spoji spirálu podle zadaných parametrů.
  • StitchingVias – skript přidává do volných částí plošného spoje (místa s rozlitými polygony mědi) prokovené otvory v nastaveném rastru pro zlepšení parametrů napájecích signálů.
  • VendorTools – import a export rozložení vývodů obvodů FPGA z/do formátu výrobců konkrétních obvodů (UCF, TCL, CSV, PAD a PIN soubory).
  • ComponentPlacement – pomůcka na kopírování rozmístění komponent na plošném spoji podle vzorového rozmístění jiné skupiny komponent.

Mírně komplikovanější, ale velmi nadějné, jsou pak nově vznikající skripty:

  • MultiPCBProject – skript řešící rozdělení jednoho schématu na několik propojených desek plošných spojů s automatickou synchronizací zapojení konektorů mezi deskami.
  • DesignReuse – skript nabízející řešení pro jednodušší kopírování části schématu a jemu odpovídající části plošného spoje včetně zaroutovaných cest do dalších projektů (vhodné např. pro spínané zdroje a unifikovaná komunikační rozhraní).

Mimo Altium Designer addons je dostupná ještě původní „Script Examples Gallery“ [2]. Tato galerie skriptů obsahuje především ukázky manipulace s nejrůznějšími objekty v Altium Designeru, takže je vhodná především pro zájemce o programování vlastních skriptů. Ale i tak se zde dají nalézt některé velmi užitečné skripty jako AgileBOM pro generování soupisky součástek, u které máte naprostou kontrolu nad formátem výstupního souboru a informacemi obsaženými v nich (vhodné především pro přímé exporty do databází firemních informačních systémů apod.).

Pro vývoj skriptu je nutné založit skriptový projekt PrjScr v menu File » New » Project » Script Project. Do takového projektu pak přidáte jednotlivé moduly pomocí menu File » New » Script Files. Moduly Unit jsou pouze textové funkce, zatímco moduly Form obsahují mimo textové funkce (v editoru záložka Code) i okno pro zadávání grafické podoby uživatelského rozhraní (záložka Form). Počet modulů v projektu není omezen. Zápis se řídí syntaxí zvoleného jazyka modulu a u Delphi je tak na čase oživit si strukturu procedure, var, begin, end. U skriptů se nepoužívá hlavní globální funkce (unit ~ main), vždy je potřeba označit v nastavení projektu, která procedura je spouštěcí (Startup). Pokud budete chtít proniknout do vlastního programování skriptů, mohu doporučit stránku wiki.altium.com a vyhledání výrazu Scripting, kde jsou podrobně popsány i postupy ladění funkce algoritmu. Případně pak podrobnější manuály a API reference označené tagy TR0120 až TR0141 (PDF i HTML forma).

Spuštění vytvořeného skriptu docílíte z konkrétního editoru – schematického nebo editoru plošného spoje – pomocí příkazu menu DXP » Run Script. Po spuštění tohoto příkazu se zobrazí dostupné skripty = aktuální otevřené projekty skriptů nebo skriptové projekty přidané v kategorii Scripting System » Global Projects v menu DXP » Preferences.

Další variantou spouštění skriptu je jejich trvalé začlenění do ovládacího menu Altium Designeru. Pomocí DXP » Customize si menu odemknete pro editaci a přetažením konkrétní spouštěcí procedury z položky [Scripts] (skript by měl být již přidán Global Projects) na zvolené umístění v menu vytvoříte vlastní tlačítko chovající se jako vestavěná funkce. Tomuto tlačítku lze v zobrazeném dialogu přiřadit jméno, popis, globální klávesovou zkratku i vlastní ikonu.

Skript tak získá formu odpovídající vestavěné funkce, což zjednodušuje jeho používání a dává tak větší prostor pro soustředění se na návrh schématu nebo plošného spoje. Máte tak možnost plně si přizpůsobit Altium Designer vlastním požadavkům. Pokud máte nějaké dotazy ohledně Altium Designeru, tak se s nimi můžete obrátit na emailovou adresu na konci tohoto článku nebo na česko-slovenskou emailovou konferenci Altium Designeru hostovanou na serveru Pandora [3].