![]()
K napsání kódu aplikace můžeme použít libovolný textový editor, který umožňuje uložit soubor ve formátu ASCII s koncovkou .java. Aplikaci můžeme vytvořit také v libovolném vývojovém balíku např. Visual J++.
Na začátku funkce nejprve importujeme všechny potřebné balíky tříd:
import acad.*; import com.ms.com.*;
Dále je deklarována veřejná třída priklad1 a metoda main:
public class priklad1
{
public static void main(String args[])
{
Aby program mohl vykreslovat objekty v AutoCADu, musíme si nejdříve zpřístupnit
objekty Application, ActiveDocument a ModelSpace:
// deklarace objektu Application, objektu Active Document a
// objektu Model Space
IAcadApplication IApp = (IAcadApplication) new AcadApplication();
IApp.putVisible(true);
IAcadDocument IDoc = (IAcadDocument) IApp.getActiveDocument();
IAcadUtility IUtil = (IAcadUtility) IDoc.getUtility();
IAcadModelSpace IMSpace = (IAcadModelSpace) IDoc.getModelSpace();
V kódu si všimněte zviditelnění aplikace, pokud by byl pouze vytvořen objekt Application, AutoCAD by nebyl viditelný, proto musíme zavolat příkaz objekt Application.putVisible(true). Jakmile máme všechny objekty vytvořené (máme přístup k modelovému prostoru AutoCADu), můžeme již přidávat objekty do výkresu AutoCADu.
V kódu programu vytvoříme dva objekty typu Variant - vPt1 a vPt2 pro uložení
souřadnic bodu. Objekty následně vymažeme.
Variant opt = new Variant();
opt.VariantClear();
opt.noParam();
Variant vPt1 = new Variant(); // vytvoření objektu pro zadaní bodu1
Variant vPt2 = new Variant(); // vytvoření objektu pro zadaní bodu2
vPt1.VariantClear(); // vymazání objektu pro zadáni bodu
vPt2.VariantClear(); // vymazání objektu pro zadáni bodu
int hr = 0; // pomocná proměnná, kontrolující
// jestli došlo k chybě
Variant prompt = new Variant();
V další části kódu musíme ošetřit přerušení zadání bodu uživatelem. Přerušení zadání bodu vygeneruje chybu, která musí být odchycena. Kód programu, který potenciálně může vygenerovat chybu napíšeme do bloku try. V našem příkladě bude blok try obsahovat vyvolání metody pro zadání bodu. Za blokem try následuje blok kódu, který se vykonná v případě vygenerování chyby - blok catch. Blok catch bude reagovat na chybu typu ComException - chyba vygenerovaná rozhraním ActiveX. Pokud se chyba vyskytne, je do pomocné proměnné hr přiřazena hodnota různá od 0. Hodnota v proměnné je využita pro test zda se má zadávat další bod nebo ne (byla vygenerována výjimka). Následuje obdobný úsek kódu pro zadání druhého bodu.
try // blok kódu, v kterém se kontroluje výskyt chyby
{ // zadání prvního bodu
prompt.putString("Zadej první bod ===>");
vPt1 = IUtil.GetPoint(opt, prompt);
} // odchycení vygenerované chyby
catch (ComException e)
{ // nastavení pomocné proměnné
hr = e.getHResult();
}
if (hr == 0)
{
try // blok kódu, v kterém se kontroluje výskyt chyby
{ // zadání druhého bodu
prompt.putString("Zadej druhý bod ===>");
vPt2 = IUtil.GetPoint(vPt1, prompt);
} // odchycení vygenerované chyby
catch (ComException e)
{ // nastavení pomocné proměnné
hr = e.getHResult();
}
}
Máme-li zadány oba dva body, musíme nejprve deklarovat proměnné pro jednotlivé
vkládané objekty. Pak můžeme přistoupit k vykreslení jednotlivých objektů.
IAcadLine ILine; // objekt čára
IAcadCircle ICir; // objekt kružnice
IAcadArc IArc; // objekt výseč
if (hr == 0) // nebyli vygenerovány žádné výjimky,
{ // můžeme kreslit objekty
ILine = (IAcadLine) IMSpace.AddLine(vPt1, vPt2);
// vykreslení čáry
ILine.putColor(2); // nastavení barvy
ICir = (IAcadCircle) IMSpace.AddCircle(vPt1, 2.5);
// vykreslení kružnice
ICir.putColor(3); // nastavení barvy
IArc = (IAcadArc) IMSpace.AddArc(vPt2, 2.5, 0.707, 1.414);
// vykreslení výseče
IArc.putColor(4); // nastavení barvy
}
}
}
Tím máme aplikaci ukončenou. Můžeme ji uložit pod jménem priklad1.java. Pozor jméno souboru se musí shodovat se jménem veřejné třídy, jinak při kompilaci dojde k chybě.
![]()
Zdrojový kód projektu je uveden v souboru prikad1.java.
![]()