Již 10.000+ CAD tipů.
Přes 118.000 registrovaných u nás, celkem 1.092.000 registrovaných (CZ+EN), přes 53.000 CAD/BIM bloků.
Vyzkoušejte nový přesný Inženýrský kalkulátor.
Kompletní příkazy AutoCADu a proměnné AutoCADu 2026.
Vývojové prostředky AutoCADu
Použití .NET a ObjectARX v AutoCADuTechnologie .NET pro ObjectARX |
Vývoj aplikací pro AutoCAD - přehled API, LISPVývojové prostředky AutoCADu
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ódu1) 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;
= 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");
}
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).