Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...
Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...
Топ:
Оценка эффективности инструментов коммуникационной политики: Внешние коммуникации - обмен информацией между организацией и её внешней средой...
Особенности труда и отдыха в условиях низких температур: К работам при низких температурах на открытом воздухе и в не отапливаемых помещениях допускаются лица не моложе 18 лет, прошедшие...
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов...
Интересное:
Наиболее распространенные виды рака: Раковая опухоль — это самостоятельное новообразование, которое может возникнуть и от повышенного давления...
Уполаживание и террасирование склонов: Если глубина оврага более 5 м необходимо устройство берм. Варианты использования оврагов для градостроительных целей...
Как мы говорим и как мы слушаем: общение можно сравнить с огромным зонтиком, под которым скрыто все...
Дисциплины:
2021-06-30 | 37 |
5.00
из
|
Заказать работу |
|
|
Редактор 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 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!