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

09/06/2014

Создание анонимного слоя

Чтобы создать анонимный слой необходимо вызвать метод AcDbLayerTableRecord::setIsHidden()как показано ниже в коде. Анонимные слои не видны в диспетчере слоёв и соответственно пользователь не может редактировать/удалить анонимный слой.

Код - C++: [Выделить]
  1. void CreateAnonymousLayer()
  2. {
  3.     AcDbObjectId layerId = AcDbObjectId::kNull;
  4.     AcDbLayerTable* lTable = NULL;
  5.  
  6.     AcDbDatabase *pDb = acdbHostApplicationServices()->
  7.                                         workingDatabase();
  8.  
  9.     Acad::ErrorStatus es =
  10.                 pDb->getSymbolTable(lTable, AcDb::kForWrite);
  11.  
  12.     if(Acad::eOk == es && lTable)
  13.     {
  14.           AcDbLayerTableRecord* lTblRec =
  15.                 new AcDbLayerTableRecord();
  16.           lTblRec->setName(ACRX_T("TEST"));
  17.  
  18.           lTblRec->setIsHidden(true);
  19.  
  20.           if (lTable->add(layerId, lTblRec) != Acad::eOk)
  21.               ::acutPrintf(_T("Ошибка создания слоя \n"));
  22.           else
  23.             lTblRec->close();
  24.  
  25.           lTable->close();
  26.     }
  27.  
  28. }

AutoCAD .NET API

Код - C#: [Выделить]
  1. [CommandMethod("Hiddenlayer")]
  2. public void Hiddenlayer()
  3. {
  4.  Document doc = Application.DocumentManager.MdiActiveDocument;
  5.  Database db = doc.Database;
  6.  Editor ed = doc.Editor;
  7.  
  8.  using (Transaction tr =
  9.         db.TransactionManager.StartTransaction())
  10.  {
  11.      LayerTable table =
  12.      tr.GetObject(db.LayerTableId, OpenMode.ForWrite) as LayerTable;
  13.      LayerTableRecord Anonymous = new LayerTableRecord();
  14.      Anonymous.Name = "Test";
  15.      Anonymous.IsHidden = true;
  16.      table.Add(Anonymous);
  17.      tr.AddNewlyCreatedDBObject(Anonymous, true);
  18.      tr.Commit();
  19.  
  20.  }
  21. }

 

Источник: http://adndevblog.typepad.com/autocad/2012/05/creating-a-anonymous-layer.html

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

Опубликовано 09.06.2014
Отредактировано 11.06.2014 в 03:17:19