Главная страница эмблема email
Главная СПДС Авторская страница Косова Александра
Магадан, Омолонская ГРЭ,"Кубака"
пользователям AutoCAD 15-18 (Acad 2000 - 2012)
обновление 05.11.2004 СПДС. ПРИМЕРНАЯ СТРУКТУРА LISP ПРОГРАММЫ.


принципы •
структура FA  
загрузить FA  
функции  
примерная структура  
программа Setup  
новости сайта  
гостиная  
автора!!!  

Карта сайта


Учиться, учиться и еще раз учиться.
В.Ленин. (в этом он был прав)

Подробнее в подразделах:  

Состав программы
Структура программы
Запуск программы

 

Мне часто (даже порой чересчур) приходится выполнять демонстрационную графику. И наши боссы любят повторять фразу, которая в вольном переводе на русский звучит как "Даешь наглядность!" (Easy to see, easy to read.), вот и приходится изощряться, как правило выделять текст разного рода рамками. Конечно очень помогала в этом программа из Express, да и старая моя программа BOXTXT тоже выручала. Но...

Я решил убить сразу двух зайцев. Задача отрисовки рамок для текста хорошо подходит для демонстрации многих функций AutoLISP, приемов программирования, и организации программы. Предлагается Вашему вниманию программа с условным названием ABC_PRGNAME.

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

Из кирпичиков (функций и фрагментов кода) можно быстро составить свои программы. Берете темплет, переименуете имена, отсекаете лишнее, добавляете новое, влюбляетесь в свое детище и получаете программную Галатею.

Попробуйте добавить обработку MTEXT, сделать проверку на параллельность текста текущей системе координат, подправить ошибку при перемещении текста и рамки с отметкой не равной 0.0 и др. Программу в окончательном варианте можно посмотреть в действии скачав со странички загрузить FA.

Состав программы

В состав программы входят следующие файлы, которые можно открыть для просмотра:

ABC_PRGNAME.LSP - собственно программа на языке LISP
ABC_PRGNAME.DCL - определение диалоговых окон
ABC_PRGNAME.SET - определение параметров программы по умолчанию и сообщений.
ABC_PRGNAME.BMP - иконка к программе
ABC_FUNCTION.LSP - общий файл функций (для ряда программ разработчика)

Структура программы

В голове программы весьма желательно описать следующие выходные данные:

;* имя программы, ABC-общий префикс для комплекса программ разработчика,
 или иной, конечно
;* перечень ссылочных файлов: функций, файлов данных и др.
;* описание и назначение программы
;* ограничения в функциональности программы, что она не обрабатывает
;* версия AutoCAD
;* автор и его координаты, Email, сайт и пр.

В программе использованы следующие соглашения:

;* Имена функций пользователя набираем ЗАГЛАВНЫМИ буквами,
;*   а функций LISP - строчными, чтоб не путаться
;* ABC_ - префикс имени функций из файла функций, сразу видно где их искать
;* abc_ - префикс имени переменной, которую необходимо сохранять до закрытия
;*   чертежа, как правило основные параметры программы)
;* glob_ - префикс имени переменной, которую необходимо сохранять
;*   в течении жизни программы (переменныей вносятся в список за символом
;*   / в главной программе)
;*
;* Избыточность комментариев в программе объясняется учебными целями.

Команда программы и главная функция находятся в конце файла. Как правило код программы наращивается снизу вверх. При этом легко находятся как главные функции, так и те, которые в работе в настоящий момент.

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

Подготовительные действия:

  • загружается файл функций, применяемых во многих программах разработчика (если он не был загружен);
  • загружается SET файл c параметрами программы и сообщениями (на 2-х языках);
  • запоминается состояние системных переменных и назначается пользовательская функция обработки ошибок;
  • определяется индекс справки, вызываемой при нажатию на клавишу F1;
  • загружается файл с определениями диалоговых окон (DCL файл);
  • определяются параметры программы по умолчанию (в том числе из SET файла), выполняются проверка параметров на допустимость (при необходимости);
  • выдается сообщение о назначении программы и главных параметрах;
  • сообщение об опциях и возможных действиях пользователя (как правило в цикле).

Действия по завершению программы:

  • возврат системных переменных в первоначальное состояние;
  • передача управления в прежнюю функцию обработки ошибок;
  • выполнение других необходимых действий (статистика работы программы, обнуление функций, регенерация экрана и др.).

Запуск программы

При условии, что файлы программы размещаются в одном из каталогов поиска файлов (см.коаманду AutoCAD OPTIONS, Support file search path), загрузка и запуск программы из меню и иконок организуется следующим образом (если команда, функция и файлы переименованы, например, в BOXTXT):
меню:
ID__0BOXTXT [Рамки вокруг текстов. \tBOXTXT]^C^C^P(if(not c:boxtxt)(load "boxtxt"));boxtxt;
иконка:
ID__0BOXTXT [_Button("Рамки вокруг текстов. BOXTXT", "boxtxt.bmp", "ICON_24_BLANK")]^C^C^P(if(not c:boxtxt)(load "boxtxt"));boxtxt;
справочная строка:
ID__0BOXTXT [ОТРИСОВКА РАМОК ВОКРУГ ТЕКСТОВ, ПОЛУКРУГЛЫХ, ПРЯМОУГОЛЬНЫХ И СО СКРУГЛЕННЫМИ УГЛАМИ. BOXTXT.]

Запуск из командной строки после загрузки программы - имя команды (программы).

Файлы учебной программы можно скачать отсюда.скачать прямо отсюда.

Жду критики.

 



  при полном или частичном использовании материалов сайта ссылка на источник обязательна ©2002-2012