Редактирование и запуск процедуры — КиберПедия 

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

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

Редактирование и запуск процедуры

2021-06-30 37
Редактирование и запуск процедуры 0.00 из 5.00 0 оценок
Заказать работу

Редактор Visual LISP автоматически раскрашивает набранный текст в зависимости от элемента синтаксиса:

· Голубой - встроенные функции и защищенные символы;

· Пурпурный - текстовые строки;

· Зеленый - целые числа;

· цвет морской волны - действительные числа;

· пурпурный на сером фоне - комментарии;

· красный - скобки;

· черный - нераспознанные элементы.

Для форматирования кода процедуры можно нажать кнопку Format Edit Window панели инструментов Tools или запустить команду Tools - Format Code in Editor. Если вы хотите форматировать только выделенный фрагмент процедуры, то нужно щелкнуть по кнопке Format Selection.

Типичные ошибки в синтаксисе (несоответствие скобок, неверное употребление функций и пр.) можно обнаружить, щелкнув по кнопке Check Edit Window (Check Selection). Результаты проверки отобразятся в окне Build Output.

При необходимости можно преобразовать выделенный операторный блок программы в комментарий нажатием кнопки Comment Block. Такая операция часто применяется при настройке программы.

Для выполнения процедуры в AutoCAD выполните следующие действия:

· загрузите код программы в активное окно AutoCAD щелчком по кнопке Load active edit window;

· в окне Console введите выражения (c:line10↵) - откроется окно AutoCAD с приглашением: Command: 'VLIDE Please click a point:;

· укажите точку любым способом - щелкните мышью по экрану или наберите координаты в командной строке. В пространстве модели будет построен отрезок. Затем снова откроется окно Visual LISP;

· щелкните в окне текстового редактора и сохраните файл в папке \AutoCAD 2007\Support как Line10.lsp.

Задание 2.1

Зумировать чертеж, растянув отрезок на весь экран

В.окне Visual LISP добавьте к файлу Line10.lsp команду (command "_zoom" "e" "")

Далее выполните следующие действия:

· загрузите процедуру щелчком по кнопке "Load edit active window ";

· перейдите в окно AutoCAD щелчком по кнопке "Activate AutoCAD";

· наберите в командной строке Line10↵;

· вернитесь в окно Visual LISP и сохраните файл;

· закройте окно Visual LISP.

Загрузка файла AutoLISP

Чтобы использовать в данном чертеже AutoCAD процедуру AutoLISP, необходимо ее в этот чертеж загрузить. Это можно сделать либо в среде AutoLISP, либо непосредственно в пространстве AutoCAD.

В среде AutoLISP нужно открыть файл по команде File - Open File. Для его загрузки, как описано выше, нужно выполнить команду Tools - Load Text in Editor.

В среде AutoCAD загрузить процедуру AutoLISP можно двумя способами. По первому способу для загрузки процедуры Line10.lsp нужно в командной строке набрать (load "line10")↵. Имя без расширения заключается в кавычки. Круглые скобки показывают интерпретатору командной строки, что это выражение AutoLISP. В ответ будет выдано имя функции. Протокол командной строки будет выглядеть следующим образом:

Command: (load "line10")

C:LINE10

Command:

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

Command: line10

Please click a point: _line Specify first point:

Specify next point or [Undo]: @10,0

Specify next point or [Undo]:

Command: nil

После запуска команды (load "line10") программа ищет файл Line10.lsp во всех каталогах (папках) поддержки. Маршруты поиска файлов поддержки можно просмотреть в диалоговом окне, открываемом по команде Tools - Options - Files (рис.2.2):


Рис. 2.2. Списки маршрутов поиска файлов поддержки

Маршруты поиска файлов поддержки можно редактировать: удалять, добавлять, изменять порядок списка. Рекомендуется создать отдельную папку LISP для файлов.lsp и ввести ее адрес в список маршрутов.

Для совместного использования функций в нескольких открытых чертежах вместо команды (load "ИМЯ ФАЙЛА") нужно применить команду (vl-load-all "ИМЯ ФАЙЛА"). Это эквивалентно помещению процедуры AutoLISP в файл acaddoc.lsp.

Второй способ загрузки процедуры AutoLISP состоит в использовании команды Tools -Load Application. Можно просто набрать в командной строке AppLoad. После запуска команды активизируется диалоговое окно Load/Unload Application (рис. 2.3). Для облегчения поиска нужно указать тип файлов lsp.


Рис. 2.3. Диалоговоеокно Load/Unload Application

Задание 2.2

Загрузка файла процедуры в чертеж

1. Откройте Блокнот и наберите в нем следующий текст:

2.;;; Coздание окружности радиусом 30 мм

3. (defun c:circle30 (/ pt);Creates a circle of radius 30

4. (princ "Please click a center: ")

5. (setq pt (getpoint))

6. (command "_circle" pt "30")

7. (command "zoom" "extents")

8.)

9. Сохраните файл как Circle30.lsp в папке AutoCAD 2010\Support.

10. Загрузите файл в чертеж, набрав в командной строке (load "Circle30")↵

11. По приглашению укажите центр окружности

12. Откройте файл Circle30.lsp в среде Visual LISP. Измените его так, чтобы с его помощью можно было бы построить прямоугольник. Обе точки должны задаваться пользователем.

13. Закрасьте контур прямоугольника красным цветом по команде ChProp. Сравните свой текст процедуры с таким вариантом:

14.(defun c:RecRed (/ startpt endpt)

15. (setq startpt (getpoint "Specify the start point:"))

16. (setq endpt (getpoint "Specify the end point"))

17.(command "_rectang" startpt endpt)

18. (command "_chprop" "_last" "" "_color" "t" "255,0,0" "")

19.(command "zoom" "extents" "")

20.)

Задание 2.3

Процедуры для трехмерного пространства

Откройте новый чертеж. В среде Visual LISP создайте две процедуры для построения трехмерных объектов. В конце команды ставится "" (Enter).

;;;Параллелепипед с параметрами:

;;;координаты начальной точки 0,0,0;

;;;габариты                      15,10,5;

;;;цвет                           red.

 

(defun c:box1 ();                                       определили функцию

(command "_box" "0,0,0" "_L" "15" "10" "5" "");         построили box

(command "_chprop" "_last" "" "_color" "_blue" ""); закрасилицветом blue

(command "_view" "_seiso" "");                установили юго-восточный вид

  (command "_zoom" "_extents" "");      растянули изображение на весь экран

)

 

;;;Гантель с параметрами:

;;;длина цилиндра Solid   30;

;;;центры сфер - центры оснований цилиндра;

;;;радиусы сфер 2,5.

 

(defun c:Gantel();                                      определили функцию

(command "_cylinder" "0,0,0" "2.5" "30" "");          построили цилиндр

(command "_sphere" "0,0,0" "10" "");                  построили первую сферу

(command "_sphere" "0,0,30" "10" "");                 построили вторую сферу

(command "union" "all" "" "");         объединили в одно тело все три фигуры

(command "_view" "_seiso" "");         установили юго-восточный вид

(command "_chprop" "last" "" "_color" "t" "255,0,0" "" ""); закрасиликрасным

(command "_zoom" "extents" "");          растянули изображение на весь экран

)

Проанализируйте эти процедуры. Запустите в модели AutoCAD команды chprop, view, union, zoom. Рассмотрите параметры этих команд. Установите рабочее пространство 3DModeling. Запустите процедуры. В процедуре Gantel фигура закрашивается красным. Исправьте процедуру так, чтобы закрашивался весь объект. Измените число изолиний на нуль по команде isolines. В процедуре с:box1 введите визуальный стиль Realistic. Закрасьте box цветом cyan.

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

Справочная система

Справку по любому термину AutoLISP можно получить в общей справочной системе AutoCAD. Но среда AutoLISP располагает своей справочной службой HELP (рис. 2.4).


Рис. 2.4. Диалоговое окно справки AutoLISP

В справке три основных раздела, относящихся к программированию на AutoLISP:

· AutoLISP Reference (Справочникпо AutoLISP). Здесь собраны все команды и все функции AutoLISP;

· Visual LISP Developer's Guide (Руководстворазработчикана Visual LISP). Здесь содержатся все основные алгоритмы с примерами применения языка на практике;

· Visual LISP Tutorial (Учебник по Visual LISP) - хорошее пособие для начинающих пользователей.

Задание 2.4

Найти в справке основные операторы для работы с числами и текстом.

Вокне Visual LISP for AutoCAD выберитекоманду HELP - Visual LISP Help Topics - Содержание - AutoLISP Functions -Operators. В левой части окна откроется список операторов, а в правой части помещены комментарии и примеры (рис. 2.5). Например, об операторе сравнения (= numstr [numstr]...) сказано, что он применим и к числам и к тексту. Здесь numstr - число или строка. Оператор возвращает значение TRUE, если аргументы или строки равны, иначе возвращает NIL.

Примеры:

(= 4 4.0)           returns T,     (= 499 499 500)      returns nil,

(= 20 388)          returns nil,          (= "me" "me")        returns T,

(= 2.4 2.4 2.4)     returns T,     (= "me" "you")       returns nil.


Рис. 2.5. Диалоговое окно справочной системы

Синтаксис AutoLISP

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

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

(ОПЕРАТОР ПАРАМЕТР1 ПАРАМЕТР2 ПАРАМЕТР3 ПАРАМЕТР4)

(ФУНКЦИЯ АРГУМЕНТ1 АРГУМЕНТ2 АРГУМЕНТ3 АРГУМЕНТ4)

Рассмотрим для примера арифметические операторы для операций с числами. Арифметические операторы имеют следующие обозначения:

· + сложение;

· - вычитание;

· * умножение;

· / деление.

Наберите в командной строке следующее выражение (sqrt (- (* 5.5 9.5) 3.25)) ↵

Здесь (sqrt num) - функция, возвращающая вещественный корень квадратный из целого или вещественного числа num.

Вначале производится умножение, затем вычитание, затем извлекается корень квадратный. В ответ программа выдаст число 7.0.

В качестве другого примера рассмотрим строковые функции

· STRCAT функция конкатенации, объединяет строки-операнды;

· SUBSTR возвращает часть строки. Первый аргумент задает строку, второй - позицию первого символа, третий - количество символов подстроки.

· STRLEN возвращает количество символов строки, включая пробелы.

Наберите в командной строке такие выражения. Оставьте пробелы после I и Love.

(strcat "I " "Love " "You" ".")↵

(substr "I love you." 3 4) ↵

(strlen "I love you.") ↵

Программа дастответы: "I Love You.", "love", 11

Приведем еще несколько функций для работы с числами.

Функция Описание
= Сравнение на равенство. Возвращает True, если аргументы равны между собой. Иначе возвращает nil.
/= Сравнение на неравенство. Возвращает True, если аргументы не равны между собой. Иначе возвращает nil.
< Сравнение меньше. Возвращает True, если каждый аргумент численно меньше следующего. Иначе возвращает nil.
> Сравнение больше. Возвращает True, если каждый аргумент численно больше следующего. Иначе возвращает nil.
<= Сравнение меньше или равно. Возвращает True, если каждый аргумент численно меньше или равен следующему. Иначе возвращает nil.
>= Сравнение больше или равно. Возвращает True, если каждый аргумент численно больше или равен следующему. Иначе возвращает nil.

Полный список функций можно найти в справке AutoLISP в разделе AutoLISP Developer's Guide - Appendxes - AutoLISP Function Synopsis - Basic Functions (рис. 2.6).


увеличить изображение
Рис. 2.6. Список базовых функций в справочной системе Auto Lisp

Более подробное описание языка AutoLISP приведено в следующей лекции.

Упражнения

Создать программы AutoLISP по приведенным текстам. Изменить параметры. Сохранить файлы в новой папке LISP. Включить папку в маршруты поддержки.

1. Построение домика с крышей по заданным размерам. После построения замкнутого многоугольника запускаем команду зумирования с параметром Extents.

2. (defun c:domik ()

3.     (command "_pline" "0,2" "0,0" "2,0" "2,2" "2.5,2" "1,3" "-0.5,2" "0,2" "")

4.     (command "_zoom" "_e"))

5. Построение линии длиной 50 от указанной точки вдоль оси Y. Попробуйте дополнить программу: как в предыдущем задании, зумированием растяните изображение на весь экран.

6. (defun c:line50 (/ pt);Creates a line of length 50 relative Y

7.   (princ "Please click a point:")

8. (setq pt (getpoint))

9.   (command "_line" pt "@0,50" "")

10.)

11. Построение окружности радиуса 30 с центром в указанной точке. Измените программу. Введите в параметры вторую переменную rad. Значение этой переменной также должно запрашиваться.

12.(defun c:circle30 (/ pt);Creates a circle of radius 30

13. (princ "Please click a point: ")

14.(setq pt (getpoint))

15. (command "_circle" pt "30" "")

16.)

17. Построение красной линии между указанными точками

18.(defun c:redline (/ startpt endpt)

19. (setq startpt (getpoint "Select the redline start point:"))

20. (setq endpt (getpoint "Select the redline end point"))

21.(command "_line" startpt endpt "")

22. (command "_chprop" "_last" "" "_color" "red" "")

23.)

24. Последняя команда CHPROP (Изменить свойства) имеет много параметров. Поэтому посмотрите протокол прохождения в AutoCAD этой процедуры:

25.Command: redline

26.Select the redline start point:Select the redline end point_line Specify first

27.point:

28.Specify next point or [Undo]:

29.Specify next point or [Undo]:

30.Command: _chprop

31.Select objects: _last 1 found

32.Select objects:

33.Enter property to change

34.[Color/LAyer/LType/ltScale/LWeight/Thickness/Material]: _color

35.New color [Truecolor/COlorbook] <BYLAYER>: red

36.Enter property to change [Color/LAyer/LType/ltScale/LWeight/Thickness/Material]:

37.Command: nil

38. Запустите отдельно команду CHPROP, чтобы закрасить линию желтым цветом. Программа подсказывает, по какой форме задать цвет Truecolor: Red,Green, Blue:. Поэтому желтый цвет нужно задать как 255,255,0.Протокол операций будет выглядеть следующим образом:

39.Command: chprop

40.Select objects: 1 found

41.Select objects:

42.Enter property to change [Color/LAyer/LType/ltScale/LWeight/Thickness/Material]: c

43.New color [Truecolor/COlorbook] <BYLAYER>: t

44.Red,Green,Blue: 255,255,0

45.Enter property to change [Color/LAyer/LType/ltScale/LWeight/Thickness/Material]:

46.Command: *Cancel*

47. В задании 2.3 была создана процедура построения гантели с двумя сферами. Дополните процедуру дополнительными построениями, так чтобы получилась фигура, изображенная на рис. 2.7.


Рис. 2.7. Рисунок для построения

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

IDE - Integrated Development Environment - интегрированная среда разработки, часть пользовательского интерфейса.

Visual Lisp - среда AutoCAD для программирования на языке Auto Lisp.

Маршрут поиска файлов поддержки - список адресов файлов, в которых программа производит поиск заданных процедур.

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

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

Вопросы

1. Какоткрыть Visual LISP Editor?

2. Какие окна и панели инструментов имеет Visual LISP Editor?

3. Какие элементы процедуры заключаются в круглые скобки?

4. Как отделяются комментарии?

5. Как загружаются файлы Auto LISP в программу AutoCAD?

6. Как добавить файл в список маршрутов поиска файлов поддержки?

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

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


 

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

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


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

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...

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

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

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...



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

0.077 с.