![]()
Aby byla aplikace funkční musíme do ní doplnit následující úseky kódu:
Na začátek souboru za deklaraci funkcí InitApplication a UnloadApplication doplníme deklaraci funkce, která bude později vykreslovat kružnici pomocí příkazu AutoCADu _circle:
void kresliKruh();
![]()
Každá aplikace nahraná do AutoCADu musí registrovat příkazy, které definuje, v AutoCADu. Pokud bychom příkazy neregistrovali, nedaly by se v AutoCADu vyvolat. Registrace příkazů se uvádí v části funkce acrxEntryPoint vyvolané zprávou kInitAppMsg poslanou AutoCADem do aplikace ObjectARX. V našem příkladě je při inicializaci vyvolaná funkce InitApplication(). Doplníme tedy do ní kód pro inicializaci nového příkazu v AutoCADu:
// inicializace aplikace, zaregistrování
void InitApplication()
{
// zaregistrování nového příkazu
acedRegCmds->addCommand("novyKruh", "_newCircle", "novaKruznice",
ACRX_CMD_TRANSPARENT | ACRX_CMD_USEPICKSET, kresliKruh);
// zobrazení informace o spuštění
ads_printf("\nFunkce se spouští pomocí příkazu
\"novaKruznice\" napsaného do příkazového řádku.");
}
Ve funkci použijeme k registraci příkazu funkci addComand. Jak jsme uvedli v předešlém příkladě, vytiskneme při inicializaci funkce, do příkazového řádku informaci, jakým způsobem spustit nahranou aplikaci.
![]()
Aplikace ObjectARX, musí po dokončení své činnosti (při odstranění z AutoCADu) odstranit všechny příkazy a třídy, které během své činnosti v AutoCADu vytvořila. Naše aplikace přidala do AutoCADu pouze nový příkaz, proto stačí odstranit pouze tento příkaz, případně celou skupinu příkazů. K tomuto účelu slouží funkce pro odstranění skupiny příkazů removeGroup. Do aplikace doplníme následující kód funkce UnloadApplication():
// uvolnění aplikace, odregistrování
void UnloadApplication()
{
// odstranění skupiny příkazů
acedRegCmds->removeGroup("novyKruh_skupina");
}
![]()
Posledním krokem k dokončení aplikace, je dopsání kódu funkce kresliKruh(). Na konci souboru vykresleniKruhu.cpp dopíšeme kód funkce:
void kresliKruh()
{
// zadání středu kružnice
ads_point Bod1;
// zadání prvního bodu od uživatele
acedGetPoint(NULL, "\nZadej střed kružnice: ", Bod1);
// zavolání příkazu AutoCADu pro kreslení kružnice
acedCommand(RTSTR, "_circle", RTPOINT, Bod1, RTSTR, PAUSE, 0);
}
Ve funkci kresliKruh() jsme použili funkci pro získání hodnoty bodu od uživatele acedGetPoint(). Do příkazového řádku funkce vypíše dotaz na zadání bodu "Zadej střed kružnice: ". Jakmile uživatel potvrdí zadání bodu, je hodnota souřadnice uložena do proměnné Bod1. Více o funkcích vstupu od uživatele se můžete dozvědět v kapitole Zadávání příkazů AutoCADu.
Dále je zavolána funkce acedCommand(...), který umožňuje vyvolat příkaz AutoCADu. Více o funkci acedCommand() se dozvíte v kapitole Zadávání příkazů AutoCADu.
![]()
Zdrojový kód projektu je možné nahrát v zabaleném souboru vykresleniKruhu.zip. Nahraný kód musíte rozbalit a ve vývojovém prostředí Visual C++ otevřít soubor pracovního prostoru nebo projektu (vykresleniKruhu.dsw nebo vykresleniKruhu.dsp). Visual C++ poté načte celý projekt.
Doporučujeme Vám vyzkoušet si alespoň tvorbu projektu pomocí pomocníka a napsání několika řádek kódu, abyste poznali vývojové pomůcky prostředí Visual C++.
![]()