12/06/2014
Создание нового слоя и установка его текущим
Следующий код показывает процедуру создания нового слоя. Все слои хранятся в символьной таблице, называемой таблицей слоёв. Чтобы сделать любой слой текущим, нужно установить свойство Clayer объекта Database в идентификатор объекта слоя.
Код - C#: [Выделить]
- [CommandMethod("AddLayer")]
- public void AddLayer()
- {
- Document doc = Application.DocumentManager.MdiActiveDocument;
- Database db = doc.Database;
- Editor ed = doc.Editor;
- using (Transaction tr = db.TransactionManager.StartTransaction())
- {
- LayerTable ltb = (LayerTable)tr.GetObject(db.LayerTableId,
- OpenMode.ForRead);
- // Создаём новый слой.
- if (!ltb.Has("NewLayer"))
- {
- ltb.UpgradeOpen();
- LayerTableRecord newLayer = new LayerTableRecord();
- newLayer.Name = "NewLayer";
- newLayer.LineWeight = LineWeight.LineWeight005;
- newLayer.Description = "Это новый слой ";
- // Красный цвет в формате RGB
- newLayer.Color =
- Autodesk.AutoCAD.Colors.Color.FromRgb(255, 0, 0);
- ltb.Add(newLayer);
- tr.AddNewlyCreatedDBObject(newLayer, true);
- }
- ObjectId idl = ltb["NewLayer"];
- tr.Commit();
- // Делаем его текущим
- db.Clayer = idl;
- }
- }
Источник: 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