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

08/08/2014

Преобразование Polyline в Polyline2d

Существует метод Polyline.ConvertTo для конвертации «облегченной» полилинии в обычную 2D-полилинию, но этот метод требует специальных условий.

Во-первых, требуется использовать метод StartOpenCloseTransaction для создания новой транзакции вместо обычного метода StartTransaction.

Во-вторых, необходимо удалить старую облегченную полилилинию и добавить новую 2D-полилинию.

Код - C#: [Выделить]
  1. ObjectId plineId = // получаем здесь...
  2. Database db =
  3.   Application.DocumentManager.MdiActiveDocument.Database;
  4. using (Transaction t =
  5.   db.TransactionManager.StartOpenCloseTransaction())
  6. {
  7.   using (Polyline pline = (Polyline)
  8.     t.GetObject(plineId, OpenMode.ForWrite))
  9.   {
  10.     t.AddNewlyCreatedDBObject(pline, false);
  11.     Polyline2d poly2 = pline.ConvertTo(true);
  12.     t.AddNewlyCreatedDBObject(poly2, true);
  13.     t.Commit();
  14.   }
  15. }

 

Источник: http://adndevblog.typepad.com/autocad/2012/06/converting-polyline-to-polyline2d.html

Обсуждение: http://adn-cis.org/forum/index.php?topic=899

Опубликовано 08.08.2014