Vítejte !   Přihlášení | Registrace
Hlavní menu
CATIA fórum.cz
Novinky
Seriál CATIA
Obecně o CAD
Novinky ze světa DS
Makra pro CATIA V5
Diskuse
Základy Catia
Ke stažení
Doporučujeme
Pracovní příležitosti
Reklama a kampaně
O fóru
Nápověda

Programujeme: CATScript

Publikováno: 24. října 2011 | Zobrazeno: 7389x
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.

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:

Definice knihoven s makry
  • 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:

Dialogové okno pro vytváření a editaci maker
  • 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