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: CATVBA a jednoduché dialogy

Publikováno: 28. října 2011 | Zobrazeno: 9249x
V prvním dílu o programování jsme si vysvětlili pojem makro, jak ho jednoduše zaznamenat a upravit, popsali si základní rozdíly mezi CATScriptem, CATVBS a CATVBA, a na závěr předvedli krátkou ukázku. V dnešním dílu se zaměříme na pokročilejší možnost pro tvorbu maker v prostředí CATVBA - CATIA Visual Basic Aplication. Zde se využívají stejné objekty a metody jako u CATScriptu a CATVBS, navíc se ale nabízí možnost používat dialogová okna se standartními ovládacími prvky a další funkce dostupné ve Windows.
Díky využití stejného API (Aplication programming interface) je v podstatě jedno, použijeme-li pro vytvoření makra CATScript nebo CATVBA, pokud ale makro vyžaduje větší interaktivitu s uživatelem, v zásadě je mnohem praktičtější použít CATVBA.

Vytvoření projektu a makra

Abychom mohli vytvořit CATVBA makro, je třeba nejprve založit VBA projekt. U CATScriptu stačilo vybrat adresář, do kterého se skripty ukládaly, u CATVBA není postup o mmoho složitější.
Otevřeme dialogové okno pro editaci knihoven s makry (Tools >> Macro >> Macros) a klikneme na tlačítko Macro libraries, dále na Create new library. V posledním okně zadáme název nového projektu (adresář musí být vytvořen předem).

Založení nového VBA projektu s názvem "VBA_projects.catvba"

Po zadání názvu projektu zavřeme okno Macro libraries a v okně Macros vytvoříme samotné makro. Klikneme na tlačítko Create a v okně Create new macro zadáme název nového makra, v našem případě "SwitchWindow".

Vytvoření nového VBA makra

Poznámka: Jako názornou ukázku VBA aplikace jsem vybral jednoduché makro, které do rozbalovacího seznamu načte všechna otevřená okna v CATIA a po výběru některého z nich ho aktivuje. Odtud je odvozen i název makra.

Dialogové okno Macros s vybraným VBA projektem a založeným makrem

Po vytvoření makra bychom v dialogovém okně Macros měli vidět to co je na obrázku. Kliknutím na Edit spustíme editor VBA. Tím je v podstatě další aplikace, které je integrovaná přímo do prostředí CATIA. V horní části je roletové menu, pod ním toolbar s ikonami příkazů. V levé částí pak strom s jednotlivými komponenty (moduly, okna) aplikace, pod ním se zobrazují vlastnosti těchto komponentů. V pravé polovině je zobrazen buď zdrojový kód nebo tzv. "designer", tedy vizuální podoba okna aplikace. Pod ním (nebo vedle) bývá ještě plovoucí panel pro vkládání ovládacích prvků (tlačítka, popisky, přepínače, ...).

Popis prostředí Visual Basic editoru integrovaného do CATIA

Vložení dialogového okna

Podrobnějším popisem prostředí se nyní nebudeme zabývat a pustíme se do dalšího kroku. Tím je vytvoření dialogového okna (formuláře). Po spuštění editoru je ve stromu pouze tzv. modul SwitchWindow (podle názvu makra) a pravé části je zobrazen zdrojový kód, který by měl obsahovat jen toto:
Sub CATMain()


End Sub

V hlavním menu vybereme Insert >> User form. Ve stromu se objeví další komponent s názvem UserForm1, v pravé polovině pak návrh dialogového okna (ve výchozí velikosti, bez ovládacích prvků). Do něj vložíme potřebné ovládací prvky a napíšeme potřebné funkce, které se jimi budou spouštět. Zdrojový kód formuláře zobrazíme tak, že klikneme pravým tlačítkem nad objektem formuláře ve stromu a z nabídky vybereme View code. Zpět na formulář se dostaneme stejným způsobem, ale vybereme View object.

Vložení ovládacích prvků

Pro naši ukázku budeme potřebovat dva ovládací prvky a jeden tzv. frame (rámeček s názvem). Vložení provedeme jednoduše tak, že klikneme na tlačítko s požadovaným ovládacím prvkem a pak někam do prostoru dialogového okna (formuláře). Ovládací prvek se vytvoří pod kurzorem, pouhým tažením myší lze měnit jeho velikost a pozici.
Do okna vložíme nejprve rámeček (frame) a roztáhmene jej po obvodu okna (velikost okna lze upravit stejně jako ovládací prvky). Do rámečku pak umístíme rozbalovací seznam (combobox) a tlačítko (button). Aby makro správně fugovalo, je třeba tyto prvky přejmenovat. Název objektu lze změnit po jeho výběru v Properties. Názvy objektů budou následující:
  • Okno formuláře: Main
  • Rozbalovací seznam: WindowsCB
  • Tlačítko: CloseBTN
Dialogové okno (formulář) makra s vloženými ovládacími prvky

Text na ovladácích prvcích (nebo záhlaví formuláře) se dají změnit ve vlastnosti Caption.
Dialogové okno s ovládacími prvky máme tedy vytvořené a můžeme se pustit do vlastního programování. Přepneme se do zdrojového kódu a vytvoříme tři programové bloky.

1. Načtení oken do seznamu

Tato část kódu se spouští automaticky po spuštění makra - událost Initialize. Načte kolekci všech otevřených oken v CATIA a naplní jimi rozbalovací seznam.
Sub UserForm_Initialize()

Dim oWindows As Windows
Dim oWindow As Window
' nacteme vsechna otevrena okna
Set oWindows = CATIA.Windows
' pomoci cyklu For...Each naplnime rozbalovaci seznam
For Each oWindow In oWindows
WindowsCB.AddItem oWindow.Caption
Next
End Sub

2. Změna aktivního okna

Druhý blok zajišťuje změnu okna podle výběru ze seznamu. Funkce se spouští při změně hodnoty v seznamu - událost Change. Zjistí aktuální hodnotu v seznamu a aktivuje okno s příslušným názvem.
Private Sub WindowsCB_Change()

Dim sWindowName As String
' zjistime nazev vybrane polozky v seznamu
sWindowName = WindowsCB.Value
' aktivuje okno s prislusnym nazvem
CATIA.Windows.Item(sWindowName).Activate
End Sub

3. Ukončení makra

Třetí blok obsahuje pouze jednu funkci, která makro ukončí. Vyvolá se kliknutím na tlačítko - událost Click.
Private Sub CloseBTN_Click()

End
End Sub

V editoru celý zápis vypadá takto:

Všechny programové bloky zapsané v objektu dialogového okna Main

Tím jsme dokončili vše, co se týká komponentu UserForm. Každému ovládacímu prvku je přiřazena funkce. Zbývá už jen poslední věc - zajistit, aby se námi vytvořené dialogové okno otevřelo při spuštění makra. CATIA totiž spouští makro SwitchWindow, které obsahuje programový blok CATMain, který je ale úplně prázdný. Dopíšeme do něj tedy řádek, který zajistí zobrazení našeho formuláře. Klikneme pravým tlačítkem na objekt SwitchWindow ve stromu a vybereme volbu View code. Celý kód pak bude vypadat:
Sub CATMain()

Main.Show
End Sub
Makro je hotové a připravené k použití. Uložíme ho a zkusíme jej spustit (příkaz Run v liště s ikonami). Pokud makro nefunguje (objevuje se chyba), s největší pravděpodobností je špatně opsaný kód nebo nesprávně pojmenovaný některý ovládací prvek.

Integrace makra do prostředí CATIA

Abychom mohli makro pohodlně spouštět, integrujeme ho do prostředí CATIA - vytvoříme si vlastní panel nástrojů a do něj umístíme ikonu pro spuštění makra. Tyto uživatelské úpravy se provádějí v okně Customize (v hlavním menu Tools >> Customize). Zde se přepneme do záložky Toolbars a klikneme na tlačítko New pro vytvoření nového panelu nástrojů. Do názvu zadáme např. "Moje makra" a potvrdíme. Na pracovní ploše se objeví nově vytvořený panel (jako plovoucí).
V dalším kroku si do tohoto panelu vložíme naše makro, kterému ještě předtím přiřadíme nějakou vhodnou ikonu. Přepneme se do záložky Commands a v levém slouci vyberme položku Macros. V pravém sloupci by se měla objevit položka SwitchWindows *.

*) Seznam položek odpovídá vybrané knihovně maker v okně Macro libraries. Pokud je vybrán adresář, budou v seznamu položek např. všechny CATScripty v tomto adresáři, v případě VBA projektu všechny moduly v tomto projektu.

Vybereme naše makro, klikneme na Show properties a přiřadíme makru (funkci) ikonu ze seznamu (můžeme přiřadit i horkou klávesu). Posledním úkonem je přidání makra do vytvořeného panelu nástrojů.

Záložka Commands s rozšířenými vlastnostmi - výběr ikony a horké klávesy

To lze udělat dvěma způsoby:
1. způsob: v záložce Toolbars vybereme panel Moje makra a klikneme na tlačítko Add commands. V seznamu by mělo být i naše makro SwitchWindows - vybereme jej a potvrdíme.

Seznam funkcí (maker) pro přidání do panelu nástrojů

2. způsob: v záložce Commands "chytneme" myší řádek s makrem (v pravém sloupci) a přetáhneme jej do panelu moje makra (viz videoukázka).

Tím jsme makro "integrovali" přímo do prostředí CATIA a můžeme jej spouštět jako jakoukoliv jinou funkci.

Videoukázka

V ukázce je předveden druhý způsob integrace makra do prostředí CATIA, na konci ukázky pak předvedení samotného makra - přepínání oken. Po výběru dokumentu v seznamu se aktivuje příslušné okno. Pokud pracujete s více než 10 otevřenými okny (editory) najednou, je přepínání v CATIA trochu těžkopádné - tohle řešení je efektivnější.


Vytvoření panelu nástrojů a přídání funkce - vlastního makra


Příště: Příklady jednoduchých maker s popisem