Diskuzní fórum a databáze tipů a utilit pro AutoCAD, Inventor, Revit a další produkty Autodesk - od firmy Arkance Systems [www.cadforum.cz]
CZ | SK | EN | DE
Přihlášení
či registrace
   právě nás čte: 9122 

Vývojové prostředky AutoCADu

Použití .NET a ObjectARX v AutoCADu

Vývoj aplikací pro AutoCAD - přehled API, LISP

Vývojové prostředky AutoCADu AutoCAD API

Visual LISP, Visual Basic/VBA, Java, ObjectARX, ActiveX, Skripty
České vysoké učení technické Praha, Fakulta elektrotechnická
Bc. Srník Albert, albert.srnik@mybox.cz

Výzva k uživatelskému vstupu

Stažení zdrojového kódu

1) V minulém projektu jsme vytvořili instanci třídy „Autodesk.AutoCAD .EditorInput.Editor” pro napsání zprávy do příkazového řádku AutoCADu. V tomto příkladu využijeme tuto třídu k vyzvání uživatele, aby zvolil bod ve výkresu a potom zobrazíme hodnoty souřadnic, které uživatel zvolil. Jako v minulém případu importujeme Autodesk.AutoCAD.ApplicationServices a Autodesk.AutoCAD.EditorInput.
2) Přejmenujeme řetězec v CommandMethod na něco více smysluplného, jako například „ZvolBod“. (Jméno funkce může zůstat stejné). Třída PromptPointOptions předaná metodě editor.GetPoint method. Na začátku funkce vytvoříme instanci objektu používajícího tuto třídu a vložíme řetězec „Vyber bod“. Instance třídy PromptPointResult je vrácena z editor.GetPoint, takže musíme vytvořit instanci také.

PromptPointOptions prPointOptions
= new PromptPointOptions("Vyber bod");
PromptPointResult prPointRes;


3) Dále vezmeme objekt editor a použijeme metodu GetPoint předávanou PromptPointOptions objektu. Položíme objekt PromptPointResult rovný návratové hodnotě metody GetPoint. Můžeme otestovat status PromptPointResult a vrátit, pokud není v pořádku.

prPointRes = ed.GetPoint(prPointOptions);
if (prPointRes.Status != PromptStatus.OK)
{
ed.WriteMessage("Error");
}


4) Nyní má PromptPointResult validní bod, a tak můžeme vypsat hodnoty do příkazového řádku. Použijeme metodu WriteMessage. Metoda ToString z PromptPointResult.Value to zvládne snadno.

ed.WriteMessage("Zvolil jsi bod " + prPointRes.Value.ToString());


5) Stiskněte F5 pro spuštění ladici relace AutoCADu. Napište NETLOAD do příkazového řádku a otevřete požadovaný dll soubor. Do příkazového řádku vložte název příkazu, který jsme vytvořili (Vlozbod). Po dotázání na bod klikněte do výkresu. Pokud je vše v pořádku, vidíte hodnoty souřadnic vámi zvoleného bodu v příkazovém řádku. V třídě Class.cs vložte breakpoint na řádek „ed.WriteMessage("Error");” Poté spusťte příkaz Vlozbod znovu. Tentokrát stiskněte escape místo zadávání bodu. Status PromptPointResult teď nebude v pořádku, takže je zavoláno “ed.WriteMessage("Error")”. Rovněž si můžete všimnou, že hodnota bodu v prPointRes je nastavena na (0,0,0).