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

07/11/2015

Клонированный видовой экран есть, но невидим в только что созданном листе

Вопрос:

Имеется лист "Лист1" с видовым экраном "vp" в нём. Я хочу скопировать этот видовой экран при помощи ObjectARX (метод deepCloneObjects) в существующий, но пока не открытый лист "Лист2" этого же dwg-файла. Но скопированный в "Лист2" видовой экран невидим и не может быть выбран и найден ни при помощи команды СПИСОК (_LIST), ни каким другим способом.

Если же "Лист2" уже был хоть раз открыт перед копированием vp (даже без заполнения информации в диалоговом окне "Параметры листа"), всё работает прекрасно и vp прекрасно виден после перехода в "Лист2".

Что не так?

Ответ:

Так как видовой экран Пространства Листа не создаётся до первой активации листа, очень вероятно, что клонированный видовой экран *НЕ* будет первым объектом в BlockTableRecord листа. Не принципиально первый ли или нет видовой экран, но большинство кода, работающего с листом (да и другой код тоже) подразумевают, что видовой экран пространства листа – первый в его BlockTableRecord. Так что если видовой экран пространства листа не первый – ждите проблем.

Решением является сначала переключится на лист (т.е. сделать его активным) перед клонированием видового экрана.

Источник: http://adndevblog.typepad.com/autocad/2012/08/cloned-viewport-exists-but-is-invisible-in-a-newly-created-layout.html

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

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

Опубликовано 07.11.2015
Отредактировано 09.11.2015 в 14:20:58