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

ADN Club => AutoCAD .NET API => Тема начата: Алексей Кулик от 22-11-2022, 16:49:26

Название: C# Не удается прочитать Entity с нестандартным типом линии
Отправлено: Алексей Кулик от 22-11-2022, 16:49:26
Всем доброго!
Мне необходимо прочитать данные с примитива (в моем конкретном случае - слой или полилиния). Работа ведется в нетекущем документе. Базу чертежа-то я открыл, но на строках типа
Код - C# [Выбрать]
  1. LayerTable lt = trans.GetObject(db.LayerTableId, OpenMode.ForRead) as LayerTable; // здесь все хорошо
  2. LayerTableRecord ltr = trans.GetObject(lt[layerName], OpenMode.ForRead) as LayerTablerecord; // ошибка
Получаю ошибку типа eKeyNotFound.
Открываю файл напрямую в ACAD - и выясняется, что для слоя определен пользовательский тип линии, никоим образом со стандартными типами не связанный (да еще и собственные формы использует). Аналогичная ситуация и с полилиниями, если они лежат на таких слоях или им напрямую назначен пользовательский тип линии.

Собственно вопрос - что я делаю не так? Каким образом можно прочитать в нетекущем документе подобные примитивы?
Спасибо!
--
Дополню: файл с описаниями типов линий не находится по путям поиска. Сделано сознательно и намеренно.
Название: Re: C# Не удается прочитать Entity с нестандартным типом линии
Отправлено: Александр Ривилис от 23-11-2022, 00:16:34
Алексей Кулик,
Попробуй переключить WorkingDatabase на открытую базу. Ну и желательно посмотреть кусок кода подлиннее.
Название: Re: C# Не удается прочитать Entity с нестандартным типом линии
Отправлено: Алексей Кулик от 23-11-2022, 09:54:35
Так, пока отбой. Я явно где-то в другом месте допустил ошибку, т.к. получение описаний слоев на новом тестовом проекте прошло вполне корректно.
Название: Re: C# Не удается прочитать Entity с нестандартным типом линии
Отправлено: Привалов Дмитрий от 24-11-2022, 21:13:24
явно где-то в другом месте допустил ошибку
lt[layerName] и eKeyNotFound

такого layerName нет в LayerTable, возможно этот слой подгружается из внешней ссылки
Название: Re: C# Не удается прочитать Entity с нестандартным типом линии
Отправлено: Алексей Кулик от 24-11-2022, 22:20:45
Не, проблема была в том, что я запутался в какой-то момент, с какой базой работаю. После нормализации кода все стало на свои места и перестало меня напрягать ;)