Клонированный видовой экран есть, но невидим в только что созданном листе
Вопрос:
Имеется лист "Лист1" с видовым экраном "vp" в нём. Я хочу скопировать этот видовой экран при помощи ObjectARX (метод deepCloneObjects) в существующий, но пока не открытый лист "Лист2" этого же dwg-файла. Но скопированный в "Лист2" видовой экран невидим и не может быть выбран и найден ни при помощи команды СПИСОК (_LIST), ни каким другим способом.
Если же "Лист2" уже был хоть раз открыт перед копированием vp (даже без заполнения информации в диалоговом окне "Параметры листа"), всё работает прекрасно и vp прекрасно виден после перехода в "Лист2".
Что не так?
Ответ:
Так как видовой экран Пространства Листа не создаётся до первой активации листа, очень вероятно, что клонированный видовой экран *НЕ* будет первым объектом в BlockTableRecord листа. Не принципиально первый ли или нет видовой экран, но большинство кода, работающего с листом (да и другой код тоже) подразумевают, что видовой экран пространства листа – первый в его BlockTableRecord. Так что если видовой экран пространства листа не первый – ждите проблем.
Решением является сначала переключится на лист (т.е. сделать его активным) перед клонированием видового экрана.
Обсуждение: http://adn-cis.org/forum/index.php?topic=3193
Опубликовано 07.11.2015Отредактировано 09.11.2015 в 13:20:58