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

Уважаемые коллеги. Нужна ваша помощь.

В процессе работы Lisp-программы командой ‘VSLIDE’ вызываются на экран слайды, созданные в свое время командой MSLIDE. Каждый слайд содержит характерный только для него примитив - идентификатор в виде текстового объекта. (Этот идентификатор совпадает с именем *.sld файла). После выполнения Lisp-программы в AutoCAD на экране остается вызванным какой-то файл слайд.

Подскажите, пожалуйста, как в Lisp определить, какой слайд вызван на экран в данный момент.

Заранее благодарю.

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

Андрей Дудинский пишет:

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

Сам же определяешь какой слайд показывается

В процессе работы Lisp-программы командой ‘VSLIDE’ вызываются на экран слайды

Ты хочешь прерывать программу Esc и знать в каком месте? Сохраняй в переменной это имя.
Хочешь просто знать? Печатай в комстроку или (grtext -1 "имя")
Или что?

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

Спасибо за идеи! Но они меня пока не устраивают.

Дело в том, что Lisp-программа в зависимости от той или иной ситуации может вызывать на экран разные слайды.

Печать открываемого слайда в командную строку не спасает:
1. В журнале сообщений в командной строке хранится ограниченное количество строк:
2. Определять, какой слайд вызван на экран в данный момент, надо в другой Lisp-программе.

Сохранять это имя в глобальной переменной не желательно:
Во-первых, потому что надо реализовать и постоянно применять что-то вроде функции, которая бы записывала в данную переменную имя последнего вызванного файла только в том случае, если данный файл гарантировано вызвался на экран. Опять же, как определить, что требуемый файл на самом деле вызвался на экран.
Во-вторых, нет гарантии, что какая-то Lisp-программа чисто случайно не изменит значение этой глобальной переменной.

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

Мутновата постановка задачи...
Определись сам что хочешь.

Андрей Дудинский пишет:

1. В журнале сообщений в командной строке хранится ограниченное количество строк:

Что мешает писать собственный протокол слайдов?

Андрей Дудинский пишет:

если данный файл гарантировано вызвался на экран

Он вызовется гарантированно, если он есть!
(findfile тебе в руки
VSLIDE - элементарная команда, которая тупо показывает СЛАЙД поверх чертежа

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

Андрей Дудинский пишет:

Подскажите, пожалуйста, как в Lisp определить, какой слайд вызван на экран в данный момент.

Никак. Ни Lisp ни сам AutoCAD после того как слайд выведен на экран понятия не имеет какой именно слайд был выведен. Так что единственная возможность - это хранить информацию о выведенном слайде самостоятельно, т.е. вывел - запомнил. Где именно запомнил зависит от того сколько долго нужно хранить эту информацию. Может быть достаточно в глобальной переменной, возможно в реестре или во внешнем файле.

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

Всем большое спасибо!
Раз ни Lisp ни сам AutoCAD после того как слайд выведен на экран понятия не имеет какой именно слайд был выведен, то, по-видимому, воспользуюсь одним из предложенных Вами вариантом.

Еще раз большое спасибо!!!