Úvod do programových rozhraní – Object ARX
Přehled ObjectARX ObjectARXT (AutoCAD Runtime Extension) je programátorské prostředí pro vývoj kompilovaných aplikací pro AutoCAD. Programovací prostředí ObjectARX obsahuje mnoho knihoven DLL, které p…
Přehled ObjectARX
ObjectARXT (AutoCAD Runtime Extension) je programátorské prostředí pro vývoj kompilovaných aplikací pro AutoCAD. Programovací prostředí ObjectARX obsahuje mnoho knihoven DLL, které pracují ve stejném paměťovém a procesním prostoru jako AutoCAD a pracují přímo s jádrem AutoCADu. Tyto knihovny těží z otevřené architektury AutoCADu, včetně přímého přístupu k datovým strukturám AutoCADu, grafickému a geometrickému systému AutoCADu a rozšiřují tak třídy a schopnosti AutoCADu. Dále můžete použít knihovny DLL k vytvoření nových příkazů, které budou pracovat stejně jako původní příkazy AutoCADu.
Knihovny ObjectARX lze použít ve spolupráci s ostatním rozhraními AutoCADu, například AutoLISP nebo VBA.
Programovací prostředí ObjectARX je popsáno v dokumentaci ObjectARX Developer’s Guide. Dokumentace je součástí ObjectARX Software Development Kit, který lze stáhnout ze sekce vývojářských nástrojů na webových stránkách společnosti Autodesk. Více informací získáte klepnutím na položku Nápověda pro vývojáře v nabídce Nápověda a potom klepnutím na ObjectARX.
Použití aplikací ObjectARX
Aplikaci ObjectARX načtete volbou Načti příkazu ARX. Po načtení jsou všechny příkazy definované aplikací dostupné pro zadání na příkazovém řádku.
Některé aplikace ObjectARX obsazují velkou oblast systémové paměti. Pokud přestanete používat aplikaci a chcete ji odstranit z paměti, použijte volbu Zruš příkazu ARX.
Aplikaci ObjectARX můžete také načíst funkcí AutoLISPu arxload. Syntaxe funkce arxload je totožná s funkcí load pro načítání programů AutoLISPu. Pokud funkce arxload načte program ObjectARX bez chyby, vrátí název programu. Syntaxe funkce arxload je následující:
(arxload názevsouboru [onfailure])
Dva argumenty funkce arxload jsou názevsouboru a onfailure. Stejně jako v případě funkce load argument názevsouboru je povinný a musí obsahovat cestu k načítanému programu ObjectARX. Argument onfailure je nepovinný a nebývá používán při načítání programů ObjectARX z příkazového řádku. Následující příklad načte aplikaci ObjectARX myapp.arx.
(arxload „myapp“)
Stejně jako u souboru AutoLISPu, AutoCAD prohledává cestu knihovny. Pokud chcete načíst program, který není v této cestě, je nutné zadat plnou cestu k aplikaci.
Poznámka: Při zadávání názvu adresáře je nutné použít jako oddělovač lomítko (/) nebo dvě zpětná lomítka (\), protože jedno zpětné lomítko má v AutoLISPu speciální význam.
Pokus o načtení již načtené aplikace končí chybou. Před použitím funkce arxload byste měli použít funkci arx a zkontrolovat již načtené aplikace.
Pokud chcete v AutoLISPu uvolnit aplikaci z paměti, použijte funkci arxunload. Následující příklad uvolní z paměti aplikaci myapp.
(arxunload „myapp“)
Pomocí funkce arxunload odstraníte z paměti nejenom aplikaci, ale i všechny příkazy, které aplikace definovala.
Automatické načtení aplikací ObjectARX
Některé příklady ObjectARX obsahují soubor acad.rx, který zobrazí seznam programových souborů ObjectARX, které jsou načteny automaticky při startu AutoCADu.
Tento soubor můžete vytvořit nebo upravit textovým editorem nebo textovým procesorem, který vytváří soubory v textovém formátu ASCII; přidáváním nebo odstraňováním z jeho obsahu budou určité programy ObjectARX dostupné pro použití. Alternativou je příkaz APLČTI, který obsahuje volbu Po spuštění, která načte specifikovanou aplikaci bez potřeby jakékoli úpravy souborů.
Protože AutoCAD vyhledává soubor acad.rx podle cesty knihovny, můžete mít různé soubory acad.rx v každém adresáři s výkresy. To umožní zpřístupnit specifické aplikace ObjectARX pro každý typ výkresu. Například trojrozměrné výkresy můžete mít v adresáři nazvaném AcadJobs/3d_dwgs. Pokud je tento adresář aktuální, můžete do něj zkopírovat soubor acad.rx a upravit jej následujícím způsobem:
myapp1
dalšíapp
Pokud tento nový soubor acad.rx umístíte do adresáře AcadJobs/3d_dwgs a spustíte z něj AutoCAD, budou tyto nové programy ObjectARX načteny a budou dostupné pro zadání z příkazového řádku. Protože původní soubor acad.rx je stále v adresáři s programovými soubory AutoCADu, je výchozí soubor acad.rx načítán vždy, kdy spouštíte AutoCAD z adresáře, který neobsahuje soubor acad.rx.
Pomocí souboru .mnl můžete načítat aplikace ObjectARX funkcí arxload. Tím zajistíte, že aplikace ObjectARX potřebné pro správnou funkčnost nabídky budou načtené spolu se souborem nabídky.
Rovněž můžete automaticky načíst řadu příkazů AutoCADu definovaných pomocí ObjectARX. Viz autoarxload v dokumentaci AutoLISP Reference (z nabídky AutoCADu Nápověda vyberte položku Nápověda pro vývojáře).
ARX. Po načtení jsou všechny příkazy definované aplikací dostupné pro zadání na příkazovém řádku.
Některé aplikace ObjectARX obsazují velkou oblast systémové paměti. Pokud přestanete používat aplikaci a chcete ji odstranit z paměti, použijte volbu Zruš příkazu ARX.
Aplikaci ObjectARX můžete také načíst funkcí AutoLISPu arxload. Syntaxe funkce arxload je totožná s funkcí load pro načítání programů AutoLISPu. Pokud funkce arxload načte program ObjectARX bez chyby, vrátí název programu. Syntaxe funkce arxload je následující:
(arxload názevsouboru [onfailure])
Dva argumenty funkce arxload jsou názevsouboru a onfailure. Stejně jako v případě funkce load argument názevsouboru je povinný a musí obsahovat cestu k načítanému programu ObjectARX. Argument onfailure je nepovinný a nebývá používán při načítání programů ObjectARX z příkazového řádku. Následující příklad načte aplikaci ObjectARX myapp.arx.
(arxload "myapp")
Stejně jako u souboru AutoLISPu, AutoCAD prohledává cestu knihovny. Pokud chcete načíst program, který není v této cestě, je nutné zadat plnou cestu k aplikaci.
Poznámka: Při zadávání názvu adresáře je nutné použít jako oddělovač lomítko (/) nebo dvě zpětná lomítka (\), protože jedno zpětné lomítko má v AutoLISPu speciální význam.
Pokus o načtení již načtené aplikace končí chybou. Před použitím funkce arxload byste měli použít funkci arx a zkontrolovat již načtené aplikace.
Pokud chcete v AutoLISPu uvolnit aplikaci z paměti, použijte funkci arxunload. Následující příklad uvolní z paměti aplikaci myapp.
(arxunload "myapp")
Pomocí funkce arxunload odstraníte z paměti nejenom aplikaci, ale i všechny příkazy, které aplikace definovala.
Automatické načtení aplikací ObjectARX
Některé příklady ObjectARX obsahují soubor acad.rx, který zobrazí seznam programových souborů ObjectARX, které jsou načteny automaticky při startu AutoCADu.
Tento soubor můžete vytvořit nebo upravit textovým editorem nebo textovým procesorem, který vytváří soubory v textovém formátu ASCII; přidáváním nebo odstraňováním z jeho obsahu budou určité programy ObjectARX dostupné pro použití. Alternativou je příkaz APLČTI, který obsahuje volbu Po spuštění, která načte specifikovanou aplikaci bez potřeby jakékoli úpravy souborů.
Protože AutoCAD vyhledává soubor acad.rx podle cesty knihovny, můžete mít různé soubory acad.rx v každém adresáři s výkresy. To umožní zpřístupnit specifické aplikace ObjectARX pro každý typ výkresu. Například trojrozměrné výkresy můžete mít v adresáři nazvaném AcadJobs/3d_dwgs. Pokud je tento adresář aktuální, můžete do něj zkopírovat soubor acad.rx a upravit jej následujícím způsobem:
myapp1
dalšíapp
Pokud tento nový soubor acad.rx umístíte do adresáře AcadJobs/3d_dwgs a spustíte z něj AutoCAD, budou tyto nové programy ObjectARX načteny a budou dostupné pro zadání z příkazového řádku. Protože původní soubor acad.rx je stále v adresáři s programovými soubory AutoCADu, je výchozí soubor acad.rx načítán vždy, kdy spouštíte AutoCAD z adresáře, který neobsahuje soubor acad.rx.
Pomocí souboru .mnl můžete načítat aplikace ObjectARX funkcí arxload. Tím zajistíte, že aplikace ObjectARX potřebné pro správnou funkčnost nabídky budou načtené spolu se souborem nabídky.
Rovněž můžete automaticky načíst řadu příkazů AutoCADu definovaných pomocí ObjectARX. Viz autoarxload v dokumentaci AutoLISP Reference (z nabídky AutoCADu Nápověda vyberte položku Nápověda pro vývojáře). ARX. Po načtení jsou všechny příkazy definované aplikací dostupné pro zadání na příkazovém řádku.
Některé aplikace ObjectARX obsazují velkou oblast systémové paměti. Pokud přestanete používat aplikaci a chcete ji odstranit z paměti, použijte volbu Zruš příkazu ARX.
Aplikaci ObjectARX můžete také načíst funkcí AutoLISPu arxload. Syntaxe funkce arxload je totožná s funkcí load pro načítání programů AutoLISPu. Pokud funkce arxload načte program ObjectARX bez chyby, vrátí název programu. Syntaxe funkce arxload je následující:
(arxload názevsouboru [onfailure])
Dva argumenty funkce arxload jsou názevsouboru a onfailure. Stejně jako v případě funkce load argument názevsouboru je povinný a musí obsahovat cestu k načítanému programu ObjectARX. Argument onfailure je nepovinný a nebývá používán při načítání programů ObjectARX z příkazového řádku. Následující příklad načte aplikaci ObjectARX myapp.arx.
(arxload "myapp")
Stejně jako u souboru AutoLISPu, AutoCAD prohledává cestu knihovny. Pokud chcete načíst program, který není v této cestě, je nutné zadat plnou cestu k aplikaci.
Poznámka: Při zadávání názvu adresáře je nutné použít jako oddělovač lomítko (/) nebo dvě zpětná lomítka (\), protože jedno zpětné lomítko má v AutoLISPu speciální význam.
Pokus o načtení již načtené aplikace končí chybou. Před použitím funkce arxload byste měli použít funkci arx a zkontrolovat již načtené aplikace.
Pokud chcete v AutoLISPu uvolnit aplikaci z paměti, použijte funkci arxunload. Následující příklad uvolní z paměti aplikaci myapp.
(arxunload "myapp")
Pomocí funkce arxunload odstraníte z paměti nejenom aplikaci, ale i všechny příkazy, které aplikace definovala.
Automatické načtení aplikací ObjectARX
Některé příklady ObjectARX obsahují soubor acad.rx, který zobrazí seznam programových souborů ObjectARX, které jsou načteny automaticky při startu AutoCADu.
Tento soubor můžete vytvořit nebo upravit textovým editorem nebo textovým procesorem, který vytváří soubory v textovém formátu ASCII; přidáváním nebo odstraňováním z jeho obsahu budou určité programy ObjectARX dostupné pro použití. Alternativou je příkaz APLČTI, který obsahuje volbu Po spuštění, která načte specifikovanou aplikaci bez potřeby jakékoli úpravy souborů.
Protože AutoCAD vyhledává soubor acad.rx podle cesty knihovny, můžete mít různé soubory acad.rx v každém adresáři s výkresy. To umožní zpřístupnit specifické aplikace ObjectARX pro každý typ výkresu. Například trojrozměrné výkresy můžete mít v adresáři nazvaném AcadJobs/3d_dwgs. Pokud je tento adresář aktuální, můžete do něj zkopírovat soubor acad.rx a upravit jej následujícím způsobem:
myapp1
dalšíapp
Pokud tento nový soubor acad.rx umístíte do adresáře AcadJobs/3d_dwgs a spustíte z něj AutoCAD, budou tyto nové programy ObjectARX načteny a budou dostupné pro zadání z příkazového řádku. Protože původní soubor acad.rx je stále v adresáři s programovými soubory AutoCADu, je výchozí soubor acad.rx načítán vždy, kdy spouštíte AutoCAD z adresáře, který neobsahuje soubor acad.rx.
Pomocí souboru .mnl můžete načítat aplikace ObjectARX funkcí arxload. Tím zajistíte, že aplikace ObjectARX potřebné pro správnou funkčnost nabídky budou načtené spolu se souborem nabídky.
Rovněž můžete automaticky načíst řadu příkazů AutoCADu definovaných pomocí ObjectARX. Viz autoarxload v dokumentaci AutoLISP Reference (z nabídky AutoCADu Nápověda vyberte položku Nápověda pro vývojáře).