Разработка приложений на языке LISP — КиберПедия 

Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...

Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...

Разработка приложений на языке LISP

2021-06-30 49
Разработка приложений на языке LISP 0.00 из 5.00 0 оценок
Заказать работу

Несколько выполняемых совместно и связанных между собой LISP -программ можно объединить в один проект. Каждый такой проект может работать в исходных текстах или в компилированных файлах с расширением FAS. Компиляция проекта в единый FAS - файл дает преимущества по скорости загрузки и выполнения.

Новый проект создается по команде Project - New Project. После введения имени проекта открывается диалоговое окно Project Properties с двумя вкладками (рис.5.2).

 


Рис. 5.2. Диалоговые окна Project properties

Проекты открываются по команде Project - Open Project. Окно проекта содержит перечень файлов и панель инструментов с командами, аналогичными командам в меню (рис.5.3). Файлы открываются двойным щелчком на их имени. Загрузить весь проект можно, щелкнув по кнопке Load Project FAS. Можно работать также с каждым файлом в отдельности.


Рис. 5.3. Открытие файлов LSP из окна проекта

Другой вид приложений - VLX -приложения, в состав которых могут входить не только LSP -файлы, но и DSL -файлы диалоговых окон, FAS -файлы и текстовые TXT -файлы. Все включаемые компоненты собираются в единый файл приложения с расширением VLX. Для создания нового VLX -приложения нужно вызвать мастера по команде File - Make Application - New Application Wizard (рис.5.4). Выбор режима, определяющего тип приложения, возможен из двух вариантов: SIMPLE или EXPERT. Простое приложение может состоять только из LSP и FAS -файлов. В сложном приложении могут присутствовать также DSL, PRJ и TXT -файлы.


Рис. 5.4. Вызов мастера создания VLX-файлов

Загрузить файл можно по команде File - Load File, либо с консоли с помощью функции Load, либо в сеансе AutoCAD.

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

Для доступа к табличным объектам в языке AutoLISP используют функции: tblnext, tblobjname, tblsearch. В качестве названий таблиц в этих функциях могут фигурировать только следующие текстовые строки:

· BLOCK - таблица описаний блоков;

· LAYER - таблица слоев;

· LTYPE - таблица типов линий;

· STYLE - таблица текстовых стилей;

· DIMSTYLE - таблица размерных стилей;

· UCS - таблица именованных систем координат;

· VIEW - таблица именованных видов;

· VPORT - таблица конфигураций видовых экранов;

· APPID - таблица имен приложений.

Рассмотрим на примерах схему использования этих функций.

(setq listlay1 (tblnext "LAYER" T)) - возвращает список с данными первого слоя рисунка, например, такого типа:

((0. "Layer") (2. "0") (70. 0) (62. 7) (6. "Continuous")).

Это список точечных пар. DXF -коды означают:

· 0 - имя таблицы;

· 2 - имя слоя;

· 6 - тип линий примитивов слоя BYLAYER;

· 62 - цвет слоя по умолчанию;

· 70 - состояние слоя.

Для примитивов подобный список возвращает функция entget.

(setq listlay2 (tblnext "LAYER")) - возвращает список с данными второго слоя рисунка, например, такого типа:

((0. "Layer") (2. "Inner") (70. 4) (62. 4) (6. "Dashed")).

Еслизапуститьфункцию (setq lay2name (tblobjname "Layer" "Inner")), тоонавозвратит <Entity name:14ab234>. Теперь с помощью функции entget можно получить тот же список, что и для listlay2 в предыдущем примере.

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

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

Операции над словарями и их элементами осуществляют функции: dictadd, dictnext, dictremove, dictrename, dictsearch, namedobjdict. Здесь нет операции модификации записи. Поэтому при необходимости нужно вначале удалить старую запись. Затем добавить в словарь новую.

Файлы AutoLISP можно загрузить либо непосредственно в AutoCAD, либо в среде Visual LISP. Все файлы процедур должны иметь расширение. LSP. Однако для безопасности и ускорения работы процедуры AutoLISP можно компилировать в файлы проекта с расширением.PRJ или.VLX. Программа сначала загружает одноименные файлы с расширением.VLX. Если такого файла нет, то программа ищет файл. PRJ. Если и его нет, то загружается файл. LSP. Однако, если файл LSP более новый, чем другие, то он загрузится в первую очередь.

Загpузить файл "Circle. LSP " в AutoCAD можно следующими способами:

· из командной строки выражением LISP (load "circle");

· командой appload - откроетсяокно Load/Appload Applications. Если файл будет использоваться постоянно, то его нужно добавить в набор Start Suit с помощью кнопки Content. Эту операцию можно выполнить путем перетаскивания пиктограммы файла в окне Load/Appload Applications. Процедура будет загружаться при каждом запуске программы AutoCAD;

· командой Tools - AutoLISP - Load Application - откроетсядиалоговоеокно Load/Appload Applications;

· командой Tools - Load Application - откроетсяокно Load/Appload Applications.

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

(load "c:/Programm Files/AutoCAD 2007/Support/Circle") или(load "c:\\Programm Files\\AutoCAD 2007\\Support\\Circle")

Обычно все процедуры AutoLISP сохраняют в одном каталоге. Этому каталогу создают маршрут доступа к файлам поддержки по команде Tools - Options - Files - Support File Search Path - Add - Browse.

Программа AutoCAD автоматически загружает четыре файла AutoLISP. Первые два - системные ACAD2010. LSP и ACADDOC2010. LSP. Два других файла предназначены для пользователей: ACAD. LSP и ACADDOC. LSP. Пользователи могут загружать в эти файлы любое количество процедур.

При открытии нескольких чертежей можно по -разному организовывать процедуры AutoLISP в зависимости от того, применяются ли они ко всем чертежам или к чертежу, открытому первым. Файл ACAD. LSP загружается только для первого чертежа. Файл ACADDOC. LSP загружается при открытии каждого чертежа.

Порядок загрузки файлов:

· ACAD2010. LSP

· ACAD. LSP

· ACADDOC2010. LSP

· ACADDOC. LSP

Файлы AutoLISP, загруженные для одного конкретного чертежа со своими переменными, не будут доступны в остальных чертежах. Для совместного использования функций в нескольких чертежах вместо команды (load "circle") нужно применить команду (vl-load-all "circle"). Действие функций файла будет распространяться не только на все открытые чертежи, но и на все чертежи, которые будут открыты в данном сеансе.

Упражнение

Создайте приветствие на экране. Загрузитев файл C:\Programm Files\AutoCAD2010 \Support\acad. lsp такуюпроцедуру:

(defun c:tex (/) (command "-view" "_top" "_vscurrent" "_2dwireframe" "_regen") (entmake (list '(0. "TEXT") '(8. "0") '(100. "AcDbText") '(10 0.0 0.0 0.0)                    '(40. 2.5) '(1. "Hello") '(7. "Standard")                      )) (command "_zoom" "_e"))(c:tex)

Проанализируйте каждую группу списка свойств текстового примитива.

Ключевые термины

Сущность объекта (entity) - список параметров объекта в базе данных.

Имя сущности (entity name) - параметр сущности с кодом DXF, равным -1.

Набор объектов - совокупность объектов, выделенных по команде ssget (Selection Set Get - получение набора выделения).

Файлы инициализации - четыре файла AutoLISP, автоматически загружаемые в AutoCAD. Для пользователей предназначены два файла: ACAD. LSP и ACADDOC. LSP.

Проект - несколько выполняемых совместно и связанных между собой LISP -программ.

Краткие итоги

Любой объект AutoCAD описывается в базе данных программы списком своих параметров. С помощью функций доступа и модификации возможно редактирование этих параметров и изменение объекта.

Вопросы

1. Какие элементы образуют структуру языка AutoLISP?

2. Какие элементы образуют структуру данных, используемых в процедурах?

3. Как получить информацию об объекте AutoCAD?

4. Какие функции организуют ввод данных пользователем?

5. Как работают процедуры с функциями доступа и модификации?

6. Как создать FAS - и VLX -приложения?

Внимание! Если Вы увидите ошибку на нашем сайте, выделите её и нажмите Ctrl+Enter.

© Национальный Открытый Университет "ИНТУИТ", 2021 | www.intuit.ru


 

Национальный Открытый Университет "ИНТУИТ": www.intuit.ru

Валерий Пакулин


Поделиться с друзьями:

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...

Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.016 с.