portál uživatelů
softwarů Autodesk

Úvod do programových rozhraní – AutoCAD VBA

VBA nabízí integraci aplikace s jinými aplikacemi používající VBA. Znamená to, že AutoCAD může pomocí jiných objektových knihoven být nástrojem Automation pro jiné aplikace, například Microsoft Word n…

Úvod do programových rozhraní – AutoCAD VBA

VBA nabízí integraci aplikace s jinými aplikacemi používající VBA. Znamená to, že AutoCAD může pomocí jiných objektových knihoven být nástrojem Automation pro jiné aplikace, například Microsoft Word nebo Excel.

Lze rozšířit AutoCAD VBA samostatnými vydáními jazyka Visual Basic (které je nutní koupit samostatně), například databázové stroje a nástroje na tvorbu sestav.

Tvorba pomoc AutoCADu VBA

VBA posílá zprávy AutoCADu pomocí rozhraní AutoCAD ActiveX. AutoCAD VBA dovoluje prostředí jazyka Visual Basic běžet současně s AutoCADem a umožňuje programové řízení AutoCADu přes rozhraní AcitveX Automation. Spojením AutoCADu, ActiveX Automation a VBA je dosaženo velice výkonného rozhraní, které umožňuje nejen ovládat objekty AutoCADu. Ovládá nejen objekty AutoCADu, ale rovněž odesílá nebo přijímá data z jiných aplikací.

Integrace VBA do AutoCADu nabízí jednoduchý, vizuální nástroj pro přizpůsobení AutoCADu. Například lze vytvořit aplikaci, která automaticky zjistí určitou informaci, výsledek uloží do tabulky aplikace Excel a vykoná požadovaný převod dat.

Tři základní složky definují programování VBA v AutoCADu. Tou první je samotný AutoCAD, který obsahuje veliké množství objektů, včetně entit, dat a příkazů AutoCADu. AutoCAD je aplikace s otevřenou architekturou s víceúrovňovým rozhraním. Abyste mohli používat VBA efektivně, je nutné být obeznámen s programováním v AutoCADu. Zjistíte však, že objektový přístup VBA je odlišný od AutoLISPu.

Druhou složkou je rozhraní AutoCAD ActiveX Automation, které zařizuje komunikaci s objekty AutoCADu. Programování ve VBA vyžaduje základní znalosti o ActiveX Automation. Popis rozhraní AutoCAD ActiveX nabízí dokumentace ActiveX and VBA Developer’s Guide (v AutoCADu vyberte z nabídky Nápověda položku Nápověda pro vývojáře).

Třetí složkou je samotné VBA. Má vlastní sadu objektů, klíčových slov a konstant a samozřejmě určuje způsob toku programu, řízení, ladění a spouštění. Součástí AutoCADu VBA je rozsáhlá nápověda pro VBA společnosti Microsoft.

Rozhraní AutoCAD ActiveX/VBA má mnoho výhod oproti ostatním prostředím API AutoCADu:

  • Rychlost. Pomocí vestavěného procesu VBA jsou apliakce ActiveX rychlejší než aplikace AutoLISPu.
  • Jednoduchost použití. Programovací jazyk a vývojové prostředí jsou jednoduché a jsou instalovány s AutoCADem.
  • Spolupráce s jinými aplikacemi ve Windows. ActiveX a VBA je navrženo tak, aby se mohlo používat a vyměňovat informace s jinými aplikacemi Windows.
  • Rychlý návrh prototypů. Rychlý návrh rozhraní, které VBA umožňuje, je ideálním prostředím, ve kterém můžete vytvářet prototypy aplikací, přestože nakonec budou vyvíjeny v jiném programovacím jazyce.
  • Programátorská základna. V současné době po celém světě už milióny programátorů používá Visual Basic. AutoCAD ActiveX/VBA umožňuje těmto programátorům, ale i těm, kteří se naučí Visual Basic v budoucnosti, podílet se na úpravách AutoCADu a vývoji aplikací pro AutoCAD.

Použití aplikací AutoCADu VBA

Ačkoliv aplikace Microsoft Office 97 ukládají projekty, makra a programy VBA uvnitř dokumentu, AutoCAD používá samostatný soubor s příponou .dvb. Díky tomu spolupráce VBA s AutoCADem je velice podobá jako u AutoLISPu a ObjectARX. Protože jsou projekty VBA ukládány do zvláštního souboru, jeden projekt může otevírat a zavírat různé výkresy během jednoho spuštění AutoCADu.

Poznámka: Projekty AutoCADu VBA nejsou binárně kompatibilní se samostatnými projekty jazyka Visual Basic (soubory VBP). Přesto lze formuláře, moduly a třídy přenášet mezi různými projekty pomocí příkazů IMPORT a EXPORT v integrovaném vývojovém prostředí VBA (IDE). ´

Projekt VBA načtete příkazem VBALOAD. Až bude projekt načten, jeho moduly a makra budou přístupné pomocí dialogu Makra. Chcete-li spustit modul VBA, použijte příkaz VBARUN. Pokud není načten žádný projekt VBA, tyto volby jsou nedostupné. Procedury zobrazené v seznamu Název makra používají následující formát:

modul.makro

V dialogu Makra nejprve vyberete cíl makra a potom vyberte požadovaný modul.

Spuštění makra VBA z příkazového řádku

Ekvivalentem příkazového řádku AutoCADu je příkaz -VBARUN (označený spojovníkem před příkazem VBARUN). Makra VBA můžete spouštět z příkazového řádku, skriptového souboru nebo jiného programového prostředí AutoCADu. Jediným argumentem příkazu je název modulu Visual Basic ve formě modul.makro. Syntaxe příkazu vypadá následovně:

-vbarun

Protože názvy maker se mohou v různých souborech opakovat, uvedením názvu modulu (syntaxe modul.makro se jednoznačně určí makro, které se má spustit.

Automatické načtení a vykonání projektů VBA 

Tak jak postupně vytváříte projekty VBA, můžete je automaticky spouštět při spuštění AutoCADu.

Makra, která obsahují, jsou potom okamžitě dostupná. Navíc příkaz APLČTI obsahuje volbu Po spuštění, která zajistí automatické načítání dané aplikace.

acvba.arx – automatické načtení VBA

Dokud nebyl spuštěn příkaz AutoCADu VBA, nemůžete načíst VBA. Chcete-li načíst VBA při spuštění AutoCADu, vložte následující řádek do souboru acad.rx:

acvba.arx

Je možné automaticky spustit makro ze souboru acad.dvb, tím že ho pojmenujete AcadStartup. Makro v souboru acad.dvb, které se jmenuje AcadStartup, se automaticky spustí při načtení VBA.

acad.dvb – automatické načtení projektu VBA

Soubor acad.dvb je užitečný v případě, že chcete při spuštění AutoCADu načítat určitý projekt VBA s makry. Při každém spuštění AutoCADu AutoCAD vyhledá a načte soubor acad.dvb.

Pokud chcete, aby se makro v souboru acad.dvb spustilo při každém vytvoření nového výkresu nebo otevření již existujícího výkresu, přidejte následující kód do souboru acaddoc.lsp:

(defun S::STARTUP()

  (command „_-vbarun“ „updatetitleblock“)

)

Název projektu v příkladu je updatetitleblock.