Сообщество программистов Autodesk в СНГ

ADN Club => AutoCAD .NET API => Тема начата: Балиев от 29-06-2016, 18:01:45

Название: Получить ObjectId вновь созданного примитива.
Отправлено: Балиев от 29-06-2016, 18:01:45
Чтой-то я совсем запутался!
Создаю солид:
Код - C# [Выбрать]
  1. Solid3d acSol3D = new Solid3d();
  2.  acSol3D.SetDatabaseDefaults();
  3.  acSol3D.CreateBox(LengthX, LengthY, LengthZ);
Пытаюсь получить его ObjectId:
Код - C# [Выбрать]
  1. ObjectId id = acSol3D.ObjectId;
В результате получаю id = {(0)}, т.е. как я понимаю, никакое.
Что я делаю неправильно?

Заранее благодарен!
Название: Re: Получить ObjectId вновь созданного примитива.
Отправлено: Вильдар от 29-06-2016, 18:05:39
Нужно его добавить в чертеж
Код - C# [Выбрать]
  1.         [CommandMethod("Test")]
  2.         public void Test()
  3.         {
  4.             Document doc = Application.DocumentManager.MdiActiveDocument;
  5.             Database db = doc.Database;
  6.             Editor ed = doc.Editor;
  7.            
  8.             using (var t = db.TransactionManager.StartTransaction())
  9.             {
  10.                 var cs = db.CurrentSpaceId.GetObject( OpenMode.ForWrite) as BlockTableRecord;
  11.  
  12.                 Solid3d acSol3D = new Solid3d();
  13.                 acSol3D.SetDatabaseDefaults();
  14.                 acSol3D.CreateBox(1000, 1000, 1000);
  15.  
  16.                 cs.AppendEntity(acSol3D);
  17.                 t.AddNewlyCreatedDBObject(acSol3D, true);
  18.  
  19.                 ObjectId id = acSol3D.ObjectId;
  20.  
  21.                 t.Commit();
  22.             }            
  23.         }
Название: Re: Получить ObjectId вновь созданного примитива.
Отправлено: Дмитрий Загорулькин от 29-06-2016, 18:20:10
Код - C# [Выбрать]
  1. ObjectId id = cs.AppendEntity(acSol3D);