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

12/06/2014

Создание нового слоя и установка его текущим

Следующий код показывает процедуру создания нового слоя. Все слои хранятся в символьной таблице, называемой таблицей слоёв. Чтобы сделать любой слой текущим, нужно установить свойство Clayer объекта Database в идентификатор объекта слоя.

Код - C#: [Выделить]
  1. [CommandMethod("AddLayer")]
  2. public void AddLayer()
  3. {
  4.     Document doc = Application.DocumentManager.MdiActiveDocument;
  5.     Database db = doc.Database;
  6.     Editor ed = doc.Editor;
  7.  
  8.     using (Transaction tr = db.TransactionManager.StartTransaction())
  9.     {
  10.         LayerTable ltb = (LayerTable)tr.GetObject(db.LayerTableId,
  11.                                                   OpenMode.ForRead);
  12.         // Создаём новый слой.
  13.         if (!ltb.Has("NewLayer"))
  14.         {
  15.             ltb.UpgradeOpen();
  16.             LayerTableRecord newLayer = new LayerTableRecord();
  17.             newLayer.Name = "NewLayer";
  18.  
  19.             newLayer.LineWeight = LineWeight.LineWeight005;
  20.             newLayer.Description = "Это новый слой ";
  21.  
  22.             // Красный цвет в формате RGB
  23.             newLayer.Color =
  24.                     Autodesk.AutoCAD.Colors.Color.FromRgb(255, 0, 0);
  25.  
  26.             ltb.Add(newLayer);
  27.             tr.AddNewlyCreatedDBObject(newLayer, true);
  28.         }
  29.         ObjectId idl = ltb["NewLayer"];
  30.         tr.Commit();
  31.         // Делаем его текущим
  32.         db.Clayer = idl;
  33.     }
  34.  
  35. }

 

Источник: http://adndevblog.typepad.com/autocad/2012/06/adding-a-new-layer-and-making-it-current-layer.html

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

Опубликовано 12.06.2014
Отредактировано 12.06.2014 в 20:07:49