Определение положения видов на многолистовом документе

Автор PS, 20.12.12, 20:13:52

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

PS

Подскажите как определить на каком листе многолистового чертежа находится заданный вид?
Хотя бы принцип, а то рассчитывать через параметры каждого листа слишком муторно, тем более вид может находится и за габаритами листов.

Алхимик

Сейчас на прямую так нельзя сделать( Я точно не нашел.

Для поиска вида можно сделать только следующее:
- F9 - показать все;
- открыть "дерево чертежа";
- выбрать нужный вид

И этот вид будет выделен зеленым.

PS

Меня интересует как это определить программно попроще, как сложно я знаю.


PS

Интерфейс IViewDesignation ничего не дает, в нем лист может присутствовать только в строке обозначения вида. Придется считать через данные из ISheetFormat.

Если включить флаг IViewDesignation::ShowPage насколько я понимаю, то в свойство IViewDesignation::Designation лист автоматически добавляется, что мешает его из строки вытянуть, хотя могу ошибаться.

PS

Это слишком "косвенный" способ, тем более мне нужно кроме вида определять на каком листе находится объкт. А в этом случае вид может быть на одном листе, а объект этого же вида на другом (если забыли изменить активный вид). Поэтому определение положения на листах должно делаться через координаты вида и объекта.

Алхимик

Может не в тему.

Может посмотреть как компас "Зоны" определяет? Включив "зоны" компас показывает в каком месте находится вид, разрез, выносной элемент на чертеже. Размер "Зон" тоже регулируется.

В вашем случае должно сработать, если до этого функционала долесть.

PS

Если GetObjGabaritRect работает с указателем на лист, все будет просто. :) Вечером попробую.

PS

Через GetObjGabaritRect не работает :(
Сделал через ISheetFormat.
Всем спасибо.