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.