21/08/2016
Определение shx-файла, используемого в типе линии
Если в типе линии используется shx-файл, то тип линии ссылается на TextStyleTableRecord. Вот пример, который печатает имя shx-файла, который используется в типе линии ЗИГЗАГ (ZIGZAG).
Код - C#: [Выделить]
- [CommandMethod("getShpName")]
- static public void getShpName()
- {
- Document doc = Application.DocumentManager.MdiActiveDocument;
- Database db = doc.Database;
- Editor ed = doc.Editor;
- using (Transaction Tx =
- db.TransactionManager.StartTransaction())
- {
- LinetypeTable tbl =
- (LinetypeTable)Tx.GetObject(db.LinetypeTableId, OpenMode.ForRead);
- // проверяем наличие типа линии ZigZag.
- if (tbl.Has("ZigZag"))
- {
- LinetypeTableRecord lt =
- (LinetypeTableRecord)Tx.GetObject(tbl["ZigZag"],
- OpenMode.ForRead);
- int nDash = lt.NumDashes;
- ed.WriteMessage(lt.Name + "\n");
- for (int i = 0; i < nDash; i++)
- {
- int iShpNum = lt.ShapeNumberAt(i);
- if (iShpNum != 0)
- {
- ObjectId txtId = lt.ShapeStyleAt(i);
- TextStyleTableRecord txt =
- (TextStyleTableRecord)Tx.GetObject(txtId,
- OpenMode.ForRead);
- ed.WriteMessage(" " + txt.FileName + "\n");
- }
- }
- }
- Tx.Commit();
- }
- }
Автор перевода: Александр Ривилис
Обсуждение: http://adn-cis.org/forum/index.php?topic=7278
Опубликовано 21.08.2016