Тема: Слои, замороженные в текущем видовом экране

Как при помощи VBA определить, заморожен ли слой в текущем ВЭ? В Лиспе это довольно просто, достаточно посмотреть группы 341 DXF в АКАД2002 (или 331 для 2004) для интересующего ВЭ. А в свойствах, доступных VBA, что-то не удалось ничего найти.... Куда копать-то?

Re: Слои, замороженные в текущем видовом экране

Неужели никто не пытался это сделать?

Re: Слои, замороженные в текущем видовом экране

Мне кажется (могу и ошибаться) на VBA это не получиться. Не тот случай. А зачем это делать именно в нем? Из любви к искусству? Богу - богово, а кесарю - кесарево. VBA - объектная модель и окна, LISP - код DXF  и прочая.

Re: Слои, замороженные в текущем видовом экране

Попробую объяснить, зачем это нужно.
Сначала все сделал на Лиспе. Реактор отслеживает изменение системной переменной. Функция реактора определяет все что нужно и назначает новый слой из списка допустимых (размороженных в текущем ВЭ). Вроде бы все просто и красиво, но назначая новый слой, тем самым приходится менять значение другой системной переменной... Как результат - АКАД вешается.
Сейчас отделил мух от котлет - реактор на VBA, функция переназначения на Лиспе. Работает исправно, только постоянно в глаза лезет одно "НО" вызов Лисп-функции из VBA через ThisDrawing.SendCommand, что приводит к тому, что АКАД запоминает эту команду как последнюю. Она и вызывается при нажатии Enter'а или пробела. А это не есть то что нужно, хочется чтоб АКАД ее не помнил и вызывал ту, что была до нее.
Вот потому и предпринял попытку запихнуть все в VBA, чтоб избавиться от SendCommand.
Может быть есть другие пути решения?

Re: Слои, замороженные в текущем видовом экране

What is ВЭ ???

Re: Слои, замороженные в текущем видовом экране

Вот теперь все понятно. Я, кстати, делаю так же. Отслеживать события АКАДа в VLisp через реакторы - чистейший мазохизм (никому этого своего утверждения не навязываю, нравиться - используйте). А с повтором команды попробуйте так: свою ЛИСП-функцию, вызываемую из VBA не определяйте как C:.

Re: Слои, замороженные в текущем видовом экране

> cadhelp
ВЭ - видовый экран, он же Viewport в пространстве листа, он же PViewport

bender пишет:

ЛИСП-функцию, вызываемую из VBA не определяйте как C:

Почему то не пришло в голову.... :)) Попробую

Re: Слои, замороженные в текущем видовом экране

Получилось. Но интерес к доступу к вышеозначенному свойству из функции VBA все-же остался. Теперь уже скорее академический, чем практический.

Re: Слои, замороженные в текущем видовом экране

> VK
Скорее всего это свойство, как кстати и множество других, просто не описано в объектной модели. Сл-но, обратиться к нему через VBA - увы...