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

21/08/2016

Определение shx-файла, используемого в типе линии

Если в типе линии используется shx-файл, то тип линии ссылается на TextStyleTableRecord. Вот пример, который печатает имя shx-файла, который используется в типе линии ЗИГЗАГ (ZIGZAG).

Код - C#: [Выделить]
  1. [CommandMethod("getShpName")]
  2.  static public void getShpName()
  3.  {
  4.      Document doc = Application.DocumentManager.MdiActiveDocument;
  5.      Database db = doc.Database;
  6.      Editor ed = doc.Editor;
  7.  
  8.      using (Transaction Tx =
  9.         db.TransactionManager.StartTransaction())
  10.      {
  11.          LinetypeTable tbl =
  12.              (LinetypeTable)Tx.GetObject(db.LinetypeTableId, OpenMode.ForRead);
  13.          // проверяем наличие типа линии ZigZag.
  14.          if (tbl.Has("ZigZag"))
  15.          {
  16.              LinetypeTableRecord lt =
  17.                  (LinetypeTableRecord)Tx.GetObject(tbl["ZigZag"],
  18.                                                    OpenMode.ForRead);
  19.  
  20.              int nDash = lt.NumDashes;
  21.  
  22.              ed.WriteMessage(lt.Name + "\n");
  23.  
  24.              for (int i = 0; i < nDash; i++)
  25.              {
  26.                  int iShpNum = lt.ShapeNumberAt(i);
  27.  
  28.                  if (iShpNum != 0)
  29.                  {
  30.                      ObjectId txtId = lt.ShapeStyleAt(i);
  31.                      TextStyleTableRecord txt =
  32.                          (TextStyleTableRecord)Tx.GetObject(txtId,
  33.                                                     OpenMode.ForRead);
  34.  
  35.                      ed.WriteMessage("   " + txt.FileName + "\n");
  36.                  }
  37.              }
  38.          }
  39.  
  40.          Tx.Commit();
  41.      }
  42.  }

 

Источник: http://adndevblog.typepad.com/autocad/2013/01/find-the-shx-file-used-in-an-line-type-linetypetablerecord.html

Автор перевода: Александр Ривилис

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

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