Programujeme: CATScript
Publikováno: 24. října 2011 | Zobrazeno: 7682x
Dnešní díl je věnován základním principům a pojmům z oblasti programování maker, popisuje obecné funkce maker a výhody jejich použití. Je určen úplným začátečníkům, kteří se o tuto problematiku zajímají. Tento článek (a později další pokračování) by měl uživatelům pomoci naučit se vytvořit jednoduchá makra a později je integrovat do prostředí Catia.
V současnosti většina rozsáhlejších kancelářských, grafických, CAD a jiných aplikací obsahuje takzvané API - application programable interface, česky programovatelné prostředí aplikace. V praxi to znamená, že si můžeme vytvářet vlastní jednoduché programy, které využívají standartní příkazy aplikace - tu pak vlastně "ovládáme" naším programem - makrem.
Většina aplikací, i Catia, nabízí standartně jako programovací jazyk VBA - Visual Basic for Aplication, který je integrovaný přímo v samotné aplikaci, lze s ním ovládat většinu funkcí dané aplikace a je "uživatelsky přívětivý".
Pozn: Kopletní objektový model je v souboru kompilované nápovědy V5Automation.chm v instalačním adresáři Catia
CATScript a CATVBS jsou určené k jednoduchému skriptování, interaktivita s uživatelem je velmi omezená. Rozdíl mezi CATScript a CATVBS je v deklaraci proměných, CATScript je víceméně redukovaný VBScript, lze jej spustit přímo z Windows nebo z katalogu Catia. CATVBS je pak plnohodnotný VBScript.
CATVBA je zkratka pro Catia Visual Basic Application. Využívá stejné objekty a metody jako CATScript a CATVBS, ale obsahuje kompiler, dialogová okna se všemi standartními ovládacími prvky a další funkce jinak dostupné ve Windows (práce se soubory, tisk, ...).
Klikneme na Macro libraries, otevře se další okno. Zde vybereme typ knihovny - Library type - v našem případě adresář (Directory) a z nabídky vpravo vybereme Add existing library. Otevře se třetí okno s adresářovým stromem, kde vybereme adresář, kam se budou ukládat vytvořená makra. Tento adresář si musíme vytvořit předem.
Popis jednotlivých tlačítek v okně Macro libraries:
Popis jednotlivých tlačítek v okně Macros:
Texty za apostrofem jsou komentáře, které program ignoruje. Zde jsou pro větší přehlednost zobrazeny zeleně (vestavěný makro editor v Catia bohužel nijak nezvýrazňuje syntaxi).
Jak je patrné, makro začíná příkazem Sub a končí příkazem End Sub - tím je definovaná jedna konkrétní funkce makra. Nepoužívají se žádné oddělovače jako např v PHP nebo Javascriptu (zde se používá středník za každým řádkem s příkazem).
Strukturu programu můžeme rozdělit do jednotlivých podstruktur, které budou spoušteny samostatně v závislosti na podmínkách při běhu programu.
Skript si nyní rozšíříme o hlášení (další funkce), zda se otevření dokumentu podařilo. Kód bude vypadat následovně.
Tento příklad je velice jednoduchý. V praxi se podobné, rozšířené makro používá k vytvoření startovacího modelu podle definice uživatele.
Tímto způsobem se dají naprogramovat i poměrně rozsáhlá makra, která i v této podobě dokáží často ušetřit hodiny rutinní práce.
Příště: Integrace makra do prostředí Catia
Co je to vlastně makro?
Makro je posloupnost jednoduchých příkazů, které lze v rámci určitého programu spustit najednou. Z této definice vyplývá účel jeho použití - makro je vhodné tam, kde je k dosažení výsledku potřeba často opakovat určitý sled úkonů (příkazů). Je zřejmé, že pokud se jedná o více úkonů v rámci jednoho opakování, bude vhodné si tuto posloupnost někam uložit a posléze ji spustit např. jediným kliknutím myši.V současnosti většina rozsáhlejších kancelářských, grafických, CAD a jiných aplikací obsahuje takzvané API - application programable interface, česky programovatelné prostředí aplikace. V praxi to znamená, že si můžeme vytvářet vlastní jednoduché programy, které využívají standartní příkazy aplikace - tu pak vlastně "ovládáme" naším programem - makrem.
Většina aplikací, i Catia, nabízí standartně jako programovací jazyk VBA - Visual Basic for Aplication, který je integrovaný přímo v samotné aplikaci, lze s ním ovládat většinu funkcí dané aplikace a je "uživatelsky přívětivý".
CATScript, CATVBS, CATVBA, ... ?
CATScript a CATVBS jsou objektové skriptovací jazyky VBScriptu, disponující příslušnými objekty, vlastnostmi a metodami. Pokud vám pojem objektové programování nic neříká, můžete si objekty představit jako jednotlivé prvky modelu (Pad, Point), vlastnosti jako informace o nich (barva, délka), a nakonec metody jsou pak funkce, které dále pracují s objekty a vlastnostmi.Pozn: Kopletní objektový model je v souboru kompilované nápovědy V5Automation.chm v instalačním adresáři Catia
CATScript a CATVBS jsou určené k jednoduchému skriptování, interaktivita s uživatelem je velmi omezená. Rozdíl mezi CATScript a CATVBS je v deklaraci proměných, CATScript je víceméně redukovaný VBScript, lze jej spustit přímo z Windows nebo z katalogu Catia. CATVBS je pak plnohodnotný VBScript.
CATVBA je zkratka pro Catia Visual Basic Application. Využívá stejné objekty a metody jako CATScript a CATVBS, ale obsahuje kompiler, dialogová okna se všemi standartními ovládacími prvky a další funkce jinak dostupné ve Windows (práce se soubory, tisk, ...).
Začínáme
Abychom mohli začít s programováním, je třeba si nejprve říct, jak se vlastně k makrům v Catia dostaneme. Vše ohledně maker je přístupné v hlavním roletovém menu v položce Tools - Macro. Jsou zde čtyři volby, které vykonají následující:- Macros... - otevře průzkumníka knihoven (adresářů) s makry
- Start Recording - spustí záznam nového makra. Všechny operace, které provedete, se budou zaznamenávat.
- Stop Recording - ukončí záznam makra.
- Visual Basic editor - spustí interní editor pro Visual Basic
Knihovny - Adresáře
Nyní si tedy zkusíme zaznamenat a spustit makro, které otevře prázdný Part. Spustíme Catii, ale nebudeme otvírat žádný dokument, popř. všechny dokumenty zavřeme. Klikneme na Tools » Macro » Macros... - otevře se následující okno, které bude ve vašem případě nejspíš úplně prázdné.Klikneme na Macro libraries, otevře se další okno. Zde vybereme typ knihovny - Library type - v našem případě adresář (Directory) a z nabídky vpravo vybereme Add existing library. Otevře se třetí okno s adresářovým stromem, kde vybereme adresář, kam se budou ukládat vytvořená makra. Tento adresář si musíme vytvořit předem.
Popis jednotlivých tlačítek v okně Macro libraries:
- Add existing library - přidá ke knihovnám již existující.
- Create new library - vytvoří novou knihovnu (adresář).
- Remove existing library - Smaže existující knihovnu.
Záznam makra
Pokud jste zvládli tuto základní proceduru, můžeme se pustit do samotného záznamu makra. Klikneme na Start Recording. V okně, které se otevře (je již nastaven náš adresář) vybereme jako typ skriptu CATScript (můžeme si zadat název souboru s makrem) a nakonec klikneme na Start. Někde na pracovní ploše se v tu chvíli objeví malý panel s jedním tlačítkem pro ukončení záznamu. Nyní v hlavním menu Catia zvolíme File » New a vybereme Part. Po otevření nového dokumentu ukončíme záznam makra kliknutím na ikonu Stop.Editace
Opět otevřeme okno Macros, vybereme nově vytvořené makro a klikneme na Edit. Otevře se editor se zdrojovým kódem, který si vysvětlíme později. Nyní můžeme makro libovolně editovat a poté uložit.Spuštění makra
V okně Macros klikneme na Run. Pokud jsme v makru neudělali žádnou změnu, měl by se nám otevřít nový dokument s prázdným Partem. Tímto způsobem lze spoutět makra ve formě CATScriptu, CATVBS i CATVBA. Další možností, jak spustit makro, je nadefinovat si vlastní panel s funkcemi a makra spouštět přes něj, to si ukážeme v dalším článku.Popis jednotlivých tlačítek v okně Macros:
- Run - spustí vybrané makro
- Edit - otevře interní editor, ve kterém je možné makro upravit. Je možné použít i externí editor, viz menu Options.
- Create - otevře interní editor s prázdným souborem.
- Rename - přejmenuje existující makro.
- Delete - vymaže existující makro.
- Select - otevře průzkumníka pro výběr souboru s makrem.
Struktura kódu
Syntaxe kódu odpovídá jazyku Visual Basic. Catia má v sobě implementovanou verzi 6, se kterou si pro začátek vystačíme. V následujícím bloku je zdrojový kód zaznamenaného makra.Sub CATMain() 'zacatek hlavniho programoveho bloku
'deklarace promene documents1
Dim documents1 As Documents
'prirazeni Do promenne documents1
Set documents1 = CATIA.Documents
'deklarace promenne partDocument - vlastni instance partu
Dim partDocument1 As Document
'vytvoreni noveho partu metodou Add s parametrem "Part"
Set partDocument1 = documents1.Add("Part")
End Sub 'ukonceni hlavniho programoveho bloku
Texty za apostrofem jsou komentáře, které program ignoruje. Zde jsou pro větší přehlednost zobrazeny zeleně (vestavěný makro editor v Catia bohužel nijak nezvýrazňuje syntaxi).
Jak je patrné, makro začíná příkazem Sub a končí příkazem End Sub - tím je definovaná jedna konkrétní funkce makra. Nepoužívají se žádné oddělovače jako např v PHP nebo Javascriptu (zde se používá středník za každým řádkem s příkazem).
Strukturu programu můžeme rozdělit do jednotlivých podstruktur, které budou spoušteny samostatně v závislosti na podmínkách při běhu programu.
Skript si nyní rozšíříme o hlášení (další funkce), zda se otevření dokumentu podařilo. Kód bude vypadat následovně.
Sub CATMain()
Dim documents1 As Documents
Set documents1 = CATIA.Documents
Dim partDocument1 As Document
Set partDocument1 = documents1.Add("Part")
Dim Report As String 'deklarace promenne pro text hlaseni
If (Not IsEmpty(partDocument1)) Then
'pokud se dokument neotevrel, promenna partDocument je prazdna
Report = "Dokument byl otevřen!"
Else
Report = "Dokument se nepodařilo otevřít!"
End If
' volani funkce Alert
Alert(Report)
End Sub
' definice funkce Alert, ktera vypise hlaseni o vysledku
Sub Alert(r)
'Dialogove okno s hlasenim
Box = MsgBox(r & Chr(13) & Chr(10), 8 , "Hlášení CATIA")
End Sub 'ukonceni dalsiho bloku
Tento příklad je velice jednoduchý. V praxi se podobné, rozšířené makro používá k vytvoření startovacího modelu podle definice uživatele.
Tímto způsobem se dají naprogramovat i poměrně rozsáhlá makra, která i v této podobě dokáží často ušetřit hodiny rutinní práce.
Příště: Integrace makra do prostředí Catia