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: 7500 

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

Vypsání textu do příkazové řádky

Stažení zdrojového kódu

Zde vytvoříme knihovnu .NET dll, která může být načtena do AutoCADu. Přidá nový příkaz do AutoCADu pojmenovaný „AhojSvete”. Když uživatel spustí příkaz, text “Ahoj Svete” bude vytisknut do příkazového řádku.

1) Spusťte Visual Studio a založte nový projekt pomocí File> New> Project. V dialogovém okně New Project vyberte Visual C# Projects . Vyberte šablonu “Class Library”. Pojmenujte ji například „Projekt1“ a nastavte lokaci, kam mají být vytvořené soubory uoženy. Potvrďte OK pro vytvoření projektu.

2) Pokud není solution explorer zobrazený, můžete tak učinit z nabídky „View” výběrem „Solution Explorer”. To nám umožní procházet soubory v projektu a přidávat reference na obsluhované nebo COM Interop assemblies.

3) V Class1.cs si povšimněte, že byla již vytvořena veřejná třída. Přidáme náš příkaz do této třídy. Abychom to mohli udělat, potřebujeme třídy AutoCAD .NET managed wrappers. Tyto wrappery jsou obsaženy ve dvou obsluhovaných modulech. K přidání referencí na tyto moduly klikněte pravým tlačítkem na „References” v Solution Exploreru and zvolte „Add Reference”. V „Add Reference” dialogu vyberte „Browse”. Zvolte cestu do adtesáře AutoCadu. (C:\Program Files\AutoCAD 2007\) Najděte „acdbmgd.dll” a potvrďte OK. Klikněte na „Browse” znovu a vybrete „acmgd.dll” a opět potvrďte. V Solution Explorer klikněte pravým tlačítkem na obě knihovny a zvolte „Properties“. V obou případech změňte hodnotu Copy Local na false.

Připojení do AutoCAD Managed API – AcMgd.dll a AcDbMgd.dll

4) Použijte Object Browser k prozkoumání tříd dostupných v těchto obslužných modulech. (View > Object Browser. Rozbalte „AutoCAD .NET Managed Wrapper” (acmgd) objekt. V tomto příkladu bude použita instance „Autodesk.AutoCAD.EditorInput.Editor ” k zobrazení textu v příkazovém řádku AutoCADu Rozkřikněte objekt „ObjectDBX .NET Managed Wrapper” (acdbmgd). Třídy v tomto objektu budou použity k přístupu a editaci entit ve výkresu AutoCADu.

5) Když máme reference na třídy, můžeme je importovat. V Class1.cs nad deklarací Class1 importujte následující jmenné prostory (namespace): ApplicationServices, EditorInput a Runtime.

using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Runtime;


6) Nyní přidáme náš příkaz do třídy Class1. K přidání příkazu, který může být zavolán z AutoCADu použijeme atribut „CommandMethod”. Tento atribut je poskytován jmenným prostorem Runtime. Přidejte následující atribut a funkci do Class1.

[CommandMethod("AhojSvete")] public void AhojSvete() { }


7) Když je příkaz „AhojSvete” spuštěn v AutoCADu, bude zavolána funkce AhojSvete. V této funkci přidáme instanci třídy editor, která obsahuje metody pro přístup příkazového řádku AutoCADu. Editor pro aktivní dokument v AutoCADu může být vrácen použitím třídy Application. Poté, co je editor vytvořen, použijeme metodu WriteMessage pro zobrazení „Ahoj Svete“ na příkazovém řádku. Přidejte následující do funkce AhojSvete:

Editor ed = Application.DocumentManager.MdiActiveDocument.Editor; ed.WriteMessage("Ahoj Svete");

8) K otestování v AutoCADu musíme nechat Visual Studio spustit relaci AutoCADu. Pravým tlačítkem klikněte na „Projekt1” v Solution Exploreru a vyberte „Properties”. V dialogu vlastností Projekt1 zvolte ‘Debug’, zaškrtněte ‘Start External Program’ a zvolte cestu k souboru acad.exe. Po této změně nastavení stiskněte klávesu F5 ke spuštění relace AutoCADu.

Použitím příkazu „NETLOAD” načteme obslužnou aplikaci. Napište NETLOAD do příkazového řádku AutoCADu pro otevření dialogu „Choose .NET Assembly”. Zvolte lokaci se souborem „Projekt1.dll” (..\Projekt1\bin\debug), vyberte jej a otevřete.

Napište “AhojSvete” do příkazového řádku. Pokud vše šlo dobře, měl by se objevit text „Ahoj Svete”. Přepněte do Visual studia a vložte breakpoint na řádek: ed.WriteMessage(“Ahoj Svete”). Spusťte příkaz AhojSvete v autocadu znovu a povšimněte si, že můžete krokovat zdrojovým kódem.

Můžete prozkoumat atribut CommandMethod. Povšimněte si, že má sedm různých variant. My jsme použili pouze tu nejjednodušší s pouze jedním parametrem(názvem příkazu).