Добрый день. Возникла острая необходимость создания CustomEntity на основе данных из стороннего dwg файла с библиотекой блоков.
Задача такая:
1. в зависимости от выбора пользователя, на текущий dwg файл надо вставить CustomEntity, который "висит" на курсоре с запросом точки вставки и угла поворота.
2. УГО CustomEntity должно отрисовываться на основе одного из ранее определенных блоков из библиотеки блоков, находящейся в стороннем dwg файле.
3. CustomEntity представляет собой объект, который помимо собственного УГО, может иметь так называемую, представленную графически, зону обнаружения (ЗО), с которой можно сразу вставлять CustomEntity (соответственно ЗО "висит" вместе с УГО на курсоре до момента определения точки вставки и угла поворота) или которую можно отображать/ скрывать по команде пользователя, т.е. пользователь может щелкнуть по УГО с ЗО и скрыть ЗО, либо по УГО CustomEntity и отобразить ЗО. При этом УГО у разных объектов может быть одно и тоже, но ЗО может быть разная (в зависимости от конкретной марки устройства).
Предполагаемое решение:
1. УГО и ЗО (для каждой марки) реализовать в виде отдельных блоков в библиотеки блоков (соответствие УГО с нужной ЗО определяется в СУБД).
2. По запросу пользователя импортировать нужные AcDbBlockRecord-ы (УГО и ЗО) в текущий dwg-файл.
3. На основе данных из AcDbBlockRecord-ов реализовать метод subWorldDraw() для отрисовки своего CustomEntity, а затем с помощью Jig-а вставить его в текущий dwg файл.
Вопросы:
- оптимальное ли это решение (и правильное ли оно) для поставленной задачи?
- как идентифицировать ЗО в составе CustomEntity для ее скрытия и отображения?