Vývojové prostředky AutoCADu
Technologie .NET pro ObjectARX |
Vývojové prostředky AutoCADuVisual LISP, Visual Basic/VBA, Java, ObjectARX, ActiveX, Skripty
České vysoké učení technické Praha, Fakulta elektrotechnická
Bc. Srník Albert, albert.srnik@mybox.cz
|
Vykreslení kružnice
Stažení zdrojového kóduV tomto příkladu vytvoříme ‘Employee object’ (kružnici) uvnitř blokové definice jménem ‘EmployeeBlock’, která sídlí v ‘EmployeeLayer’ která má blokovou referenci asociovanou s nim, vloženou v Model Space.
1) Vytvoříme příkaz s názvem ‘CREATE’, která volá funkci CreateEmployee(). Uvnitř této funkce vložíme jednu kružnici do MODELSPACE na pozici 100,100,0 s poloměrem 20.
[CommandMethod("CREATE")]
public void CreateCircle()
public void CreateCircle()
2) Nadeklarujeme objekty, které použijeme. Circle je kružnice, kterou přidáme do ModelSpace. Abychom mohli vložit kružnici, musíme otevřít ModelSpace pomocí BlockTableRecord. Veškerou interakci s databází zapouzdříme v této funkci objektem Transaction.
Circle circle;
BlockTableRecord btr;
BlockTable bt;
Transaction trans;
BlockTableRecord btr;
BlockTable bt;
Transaction trans;
3) Vymezíme hranice této interakce členem StartTransaction() z Transaction Manageru a vytvoříme kružnici. trans = HostApplicationServices.WorkingDatabase.TransactionManager.StartTransaction();
circle = new Circle(new Point3d(100, 100, 0), Vector3d.ZAxis, 20);
bt = (BlockTable)trans.GetObject(HostApplicationServices.WorkingDatabase.BlockTableId, OpenMode.ForRead);
btr = (BlockTableRecord)trans.GetObject(HostApplicationServices.WorkingDatabase.CurrentSpaceId, OpenMode.ForWrite);
bt = (BlockTable)trans.GetObject(HostApplicationServices.WorkingDatabase.BlockTableId, OpenMode.ForRead);
btr = (BlockTableRecord)trans.GetObject(HostApplicationServices.WorkingDatabase.CurrentSpaceId, OpenMode.ForWrite);
4) Použijeme btr referenci pro přidání naší kružnice a ujistíme se, že transakce o tom ví. Poté transakci spustíme a když je vše hotovo, zrušíme ji.
btr.AppendEntity(circle);
trans.AddNewlyCreatedDBObject(circle,true);//
trans.Commit();
trans.Dispose();
trans.AddNewlyCreatedDBObject(circle,true);//
trans.Commit();
trans.Dispose();
5) Spustíme funkci, abychom viděli, jak funguje. Měla by vytvořit bílou kružnici s poloměrem 20 na pozici 100, 100, 0.