![]()
Při vytvoření aplikace budeme využívat služby pomocníka ObjectARX 2000 AppWizard. Zadávané informace budou:
Otevřeme si okno s kódem souboru aplikace (testovaci1.cpp).
Dále je výhodné zjistit a zaznamenat tvar příkazů AutoCADu pro kreslení kružnic, obdelníků a n-úhelníků. V programech je výhodnější používat anglický tvar příkazu s podtržítkem (aplikace má pak lepší přenositelnost mezi různojazyčnými verzemi AutoCADu).
Postup přidání nové kružnice do výkresu:
| _circle | enter | 
| Střed | (x y z) enter - souřadnice středu | 
| Rádius/diametr |  
       R enter - výběr poloměru  | 
  
| číslo enter - zadání poloměru | 
Postup přidání nového obdelníku do výkresu:
| _rectangle | enter | 
| Bod1 | (x y z) enter - souřadnice prvního rohu | 
| Bod2 | (x y z) enter - souřadnice protilehlého rohu | 
Postup přidání nového n-úhelníku do výkresu:
| _polygon | enter | 
| Počet vrcholů | 6 enter - zadání počtu vrcholů | 
| Střed | (x y z) enter - souřadnice středu | 
| Vepsaná/opsaná kružnice |  
       _I enter - výběr typu konstrukce n-úhelníku  | 
  
| Poloměr |  
       (x y z) enter - výběr druhého bodu, pomocí kterého se určí orientace a poloměr nn-úhelníku  | 
  
Tím jsme dokončili přípravné práce na projektu a můžeme začít psát kód programu.
![]()
V programu musíme nejprve dopsat hlavičky funkcí, které budeme používat v programu. V projektu budeme používat tři funkce:
Deklaraci hlaviček dopíšeme za deklarace funkcí InitAplication a UnloadApplication (vygenerované pomocníkem):
void InitApplication(); void UnloadApplication(); void kresliKruh(); void kresliObdelnik(); void kresliPolygon();
Dále musíme zajistit, aby aplikace zaregistrovala nové příkazy v AutoCADu. Registrace příkazů musí být umístěna ve funkci InitApplication, která je vyvolána při inicializaci aplikace. Postup dopsání kódu funkce InitApplication:
  // inicializace aplikace, zaregistrování
  void InitApplication()
  {
    // registrace nového příkazu, který vyvolá 
    // funkci pro kreslení kružnice
    acedRegCmds->addCommand("nove_prikazy", 
        "_newCircle", 
        "novaKruznice", 
        ACRX_CMD_TRANSPARENT | ACRX_CMD_USEPICKSET, 
        kresliKruh);
    
    // registrace nového příkazu, který vyvolá
    // funkci pro kreslení obdelníku	
    acedRegCmds->addCommand("nove_prikazy", 
        "_newRectangle", 
        "novyObdelnik", 
        ACRX_CMD_TRANSPARENT | ACRX_CMD_USEPICKSET, 
        kresliObdelnik);
    // registrace nového příkazu, který vyvolá funkci
    // pro kreslení n-úhelníku
    acedRegCmds->addCommand("nove_prikazy", 
        "_newPolygon", 
        "novyPolygon", 
        ACRX_CMD_TRANSPARENT | ACRX_CMD_USEPICKSET, 
        kresliPolygon);	
	
    // vypsání informaci jak spustit aplikaci
    ads_printf( "\nAplikaci spustíte příkazem\"novaKruznice\",
                \"novyObdelnik\" nebo \"novyPolygon\".\n" );
  }
![]()
Každá aplikace nahraná do AutoCADu musí obsahovat funkci, která ošetří případné 
  odstanění aplikace z AutoCADu. V našem příkladě stačí při odstranění aplikace 
  odstranit skupinu nových příkazů:
  // uvolnění aplikace, odregistrování
  void UnloadApplication()
  {
    // odstranění skupiny příkazů
    acedRegCmds->removeGroup("nove_prikazy");  
  }
![]()
Funkce je vyvolána, zadá-li uživatel do příkazového řádku AutoCADu 
  příkaz novaKruznice nebo _newCircle. Ve funkci nejprve voláme příkaz pro zadání 
  bodu, který uložíme do proměnné Bod1. Následně je vyvolán příkaz acedCommand, 
  který umožňuje vyvolání příkazu AutoCADu. AutoCADu jsou poslány potřebné hodnoty 
  pro vykreslení kružnice, kromě poloměru, který musí zadat uživatel.
  void kresliKruh()
  {
    // zadání středu kružnice
    ads_point Bod1;
    //zadání prvního bodu od uživatele
    acedGetPoint(NULL, "\nVyber první bod:  ", Bod1);
    acedCommand(RTSTR, "_circle", RTPOINT, Bod1, RTSTR, PAUSE, 0);
  }
![]()
Funkce je vyvolána, zadá-li uživatel do příkazového řádku AutoCADu příkaz novyObdelnik nebo _newRectangle. Ve funkci nejprve zjistíme souřadnice protějších rohů obdelníku. Následně je vyvolán příkaz acedCommand, který umožní vyvolání příkazu AutoCADu. AutoCADu jsou poslány potřebné hodnoty pro vykreslení obdelníku.
  void kresliObdelnik()
  {
    // deklarace proměnných bodů obdelníku
    ads_point Bod1;
    ads_point Bod2;
    //zadání rohů obdelníku uživatelem
    acedGetPoint(NULL, "\nVyber první roh:  ", Bod1);
    acedGetPoint(NULL, "\nVyber druhý roh:  ", Bod2);
    acedCommand(RTSTR, "_rectangle", RTPOINT, Bod1,
                RTPOINT, Bod2, 0);
  }
![]()
Funkce je vyvolána, zadá-li uživatel do příkazového řádku AutoCADu příkaz novyPolygon nebo _newPolygon. Ve funkci nejprve zjistíme souřadnici středu n-úhelníku. Následně je vyvolán příkaz acedCommand, který umožní vyvolání příkazu AutoCADu. AutoCADu jsou poslány potřebné hodnoty pro vykreslení n-úhelníku, kromě poloměru opsané kružnice, který zadá uživatel.
  void kresliPolygon()
  {
    // deklarace proměnné středu n_úhelníku
    ads_point Bod1;
    //zadání prvního bodu od uživatele
    acedGetPoint(NULL, "\nZadej střed:  ", Bod1);
    acedCommand(RTSTR, "_polygon", RTSHORT, 6,  RTPOINT, 
                Bod1, RTSTR, "_I", RTSTR, PAUSE, 0);
  }
![]()
Zdrojový kód projektu je možné nahrát v zabaleném souboru testovaci1.zip. Nahraný kód musíte rozbalit a ve vývojovém prostředí Visual C++ otevřít soubor pracovního prostoru nebo projektu (testovaci1.dsw nebo testovaci1.dsp). Visual C++ poté načte celý projekt.
Doporučujeme Vám alespoň si vyzkoušet tvorbu projektu pomocí pomocníka a napsání několika řádek kódu, abyste poznali vývojové pomůcky prostředí Visual C++.
![]()