Napsání kódu programu

Přehled informací

Postup tvorby aplikace

Aby byla aplikace funkční musíme do ní doplnit následující úseky kódu:

Doplnění hlavičky funkce vykreslující kružnici

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();

Doplnění kódu inicializační funkce

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.

Doplnění kódu části zavolané při ukončení programu

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");
  }

Doplnění kódu funkce vykreslující kružnicu

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 procedury

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++.