portál uživatelů
softwarů Autodesk

Úvod do programových rozhraní – ActiveX Automation

Spolu s rozhraním příkazového řádku a nabídek přináší AutoCAD® programátorské rozhraní (API), které umožňuje manipulovat s výkresy a databázemi. Typ použitého rozhraní závisí na potřebách použití a zk…

Úvod do programových rozhraní – ActiveX Automation

Spolu s rozhraním příkazového řádku a nabídek přináší AutoCAD® programátorské rozhraní (API), které umožňuje manipulovat s výkresy a databázemi. Typ použitého rozhraní závisí na potřebách použití a zkušenostech s programováním.

ActiveX Automation je technologie vyvinutá společností Microsoft® , která vychází z architektury modelu COM (Component Object Model). Je možné jej použít k přizpůsobení AutoCADu, sdílení výkresových dat s jinými aplikacemi a k automatizování úkolů

Přehled ActiveX

AutoCAD pomocí Automation nabízí programovatelné objekty popsané v rámci objektového modelu AutoCADu, které mohou být vytvářeny, upravovány a použity jinými aplikacemi. Každá aplikace, která umí přistupovat k objektovému modelu AutoCADu, je Automation a nejběžnějším nástrojem k manipulaci jiných aplikací pomocí Automation je VBA (Visual Basic for Applications). Tuto varietu jazyka Visual Basic je možné nalézt jako komponent v mnoha aplikacích v rámci Microsoft Office. Tyto a další nástroje, například Visual Basic a Delphi, můžete používat k ovládání AutoCADu.

AutoCAD pomocí Automation nabízí programovatelné objekty popsané v rámci objektového modelu AutoCADu, které mohou být vytvářeny, upravovány a použity jinými aplikacemi. Každá aplikace, která umí přistupovat k objektovému modelu AutoCADu, je Automation a nejběžnějším nástrojem k manipulaci jiných aplikací pomocí Automation je VBA (Visual Basic for Applications). Tuto varietu jazyka Visual Basic je možné nalézt jako komponent v mnoha aplikacích v rámci Microsoft Office. Tyto a další nástroje, například Visual Basic a Delphi, můžete používat k ovládání AutoCADu.

Dvě výhody implementace rozhraní ActiveX do AutoCADu jsou:

·Mnoho různých programovacích prostředí mohou programově manipulovat s výkresy AutoCADu. Předtím byli vývojáři omezeni pouze na AutoLISP nebo C++.

·Sdílení dat s jinými aplikacemi Windows, například Microsoft® Excel a Microsoft® Word, je podstatně usnadněno.

Například můžete chtít zobrazit výzvu pro zadání dat, nastavit předvolby, vytvořit výběrovou množinu nebo načíst data výkresu. V závislosti na typu operace se můžete rozhodnout, který nástroj Automation použijete.

Pomocí Automation můžete vytvářet a manipulovat s objekty AutoCADu v rámci libovolné aplikace, která slouží jako nástroj Automation. Automation umožňuje tvorbu maker mezi různými aplikacemi, což je schopnost, kterou AutoLISP nenabízí. Pomocí Automation můžete kombinovat vlastnosti více aplikací do jedné aplikace.

Zobrazené objekty se nazývají objekty Automation. Objekty Automation nabízejí metody a vlastnosti. Metody jsou funkce, které provádějí operace na objektech. Vlastnosti jsou funkce, které nastavují nebo vracejí informace o stavu objektu.

Obecně může k objektům Automation poskytovaným AutoCADem přistupovat libovolný typ aplikace. Může se jednat o samostatný program, knihovnu DLL (Dynamic Linked Library) nebo makro v rámci aplikace, například Word nebo Excel. Nejčastěji se jedná o samostatný program. Pokud používáte aplikace od vývojářů aplikací, postupujte podle jejich pokynů k instalaci a používání jejich produktů.

Definice příkazu pro spuštění aplikace

Soubor acad.pgp můžete použít k definici nových příkazů AutoCADu, které budou spouštět aplikace pomocí externích příkazů. Následující příklad definuje příkaz RUNAPP1, který spustí aplikaci app1.exe v adresáři c:vbapps. (Přidejte tento kód do sekce externích příkazů v souboru acad.pgp.)

Soubor acad.pgp můžete použít k definici nových příkazů AutoCADu, které budou spouštět aplikace pomocí externích příkazů. Následující příklad definuje příkaz RUNAPP1, který spustí aplikaci app1.exe v adresáři c:vbapps. (Přidejte tento kód do sekce externích příkazů v souboru acad.pgp.)

RUNAPP1, start c:vbappsapp1, 0

Pokud vaše aplikace požaduje zadání parametrů, měli byste použít následující syntaxi:

RUNAPP2, start c:vbappsapp2, 0, *Parametry: ,

Tento příklad definuje příkaz RUNAPP2, který vás vyzve, abyste zadali parametry, které potom předá aplikaci.

Pro spuštění aplikace také můžete použít funkci AutoLISPu startapp. Jakmile AutoLISP spustí externí aplikaci, nebude již mít možnost ovládat její akce. Je možné však použít AutoLISP ke spouštění různých aplikací na základě určitých parametrů.

Spuštění aplikace pomocí nabídky

Až po definici nového příkazu spustíte aplikaci, můžete tento příkaz učinit dostupný pomocí nabídky nebo panelu nástrojů.

Až po definici nového příkazu spustíte aplikaci, můžete tento příkaz učinit dostupný pomocí nabídky nebo panelu nástrojů.

Makro nabídky lze vyvolat z nabídky v libovolné sekci souboru nabídky (MNU). Pokud používáte pouze jednu nebo dvě aplikace, můžete je přidat do standardních rozbalovacích nabídek. Používáte-li skupinu aplikací, můžete přidat vlastní rozbalovací nabídku nebo panel nástrojů, který bude speciálně určený pouze pro tyto aplikace.

Následující příklad je kompletní nabídka, která definuje novou rozbalující nabídku s názvem Aplikace. Soubor nabídky definuje skupinu nabídky APLIKACE a dvě skupiny položek nabídky. První tři položky nabídky používají funkci AutoLISPu startapp, která spouští asociovanou aplikaci, a poslední dvě položky používají definované příkazy APP4 a APP5 (ze souboru acad.pgp).

Tento soubor rovněž obsahuje sekci Helpstrings, která při výběru položky nabídky nabízí nápovědu ve stavovém řádku. Sekce Accelerators definuje klávesové zkratky, které spouští jednotlivá makra nabídek. Tyto sekce nabídky používají identifikátory názvů (například ID_App1), které spojují asociované akce.

// Nabídka APLIKACE

//

***MENUGROUP=APLIKACE

// Tato sekce definuje novou rozbalovací nabídku

***POP1

ID_MyAppsMnu [&Aplikace]

ID_MyApp1[App1]^C^C^P(startapp „app1“)(princ) ^P

ID_MyApp2[App2]^C^C^P(startapp „app2“)(princ) ^P

ID_MyApp3[App3]^C^C^P(startapp „app3“)(princ) ^P

[–]

ID_MyApp4[App4]^C^CAPP4

ID_MyApp5[App5]^C^CAPP5

// Tato sekce definuje nápovědu ve stavovém řádku,

// která se zobrazí při zvýraznění položky v nabídce

***HELPSTRINGS

ID_MyApp1[Toto je APP1]

ID_MyApp2[Toto je APP2]

ID_MyApp3[Toto je APP3]

ID_MyApp4[Toto je APP4]

ID_MyApp5[Toto je APP5]

// Tato sekce definuje klávesové zkratky,

// které spouští makra v nabídce

***ACCELERATORS

ID_MyApp1[CONTROL+SHIFT+“1″]

ID_MyApp2[CONTROL+SHIFT+“2″]

ID_MyApp3[CONTROL+SHIFT+“3″]

ID_MyApp4[CONTROL+SHIFT+“4″]

ID_MyApp5[CONTROL+SHIFT+“5″]

Po uložení souboru pod názvem aplikace.mnu načtením nabídky příkazem ČTIMENU přidejte tuto nabídku do pruhu nabídek. Při prvním načtení souboru zadejte typ souboru MNU (.mnu).