adfun.ru
| |
BIGLIB |
| большущая библиотека (9812 книг), можно не только прочитать но и скачать бесплатно |
|
| |
ФАНТАСТИКА |
| фентези,
фантастика, фантастические повести |
|
| |
ФИЛОСОФИЯ |
книги, которые заставляют
задуматься над окружающим тебя миром.
|
|
| |
МЕДИЦИНА |
медицинские книги,
методички,
народные лечебники |
|
| |
КУЛИНАРИЯ |
рецепты
тортов, консервирование,
все о спиртных
напитках. |
|
| |
СТИХИ |
| стихи популярных
и не очень авторов |
|
| |
ТВОРЧЕСТВО |
| народное творчество,
стихи, песни и т.д. |
|
| |
ЮМОР |
| анекдоты, приколы,
смешные истории |
|
| |
ЭРОТИКА |
| эротические рассказы,
книги о технике секса,
кама-сутра и др. |
|
|
| |
 |
Эта функция возвращает логическое ИЛИ списка выражений. OR оценивает
выражения слева направо до тех пор, пока не встретится выражение, вычи-
сляемое не в nil. Если такое найдено, OR прекращает дальнейшую оценку и
возвращает T. Если все выражения nil, OR возвращает nil.
Hапример:
(or nil 45 '()) возвращает Т.
(or nil '()) возвращает nil.
4.85 (osnap <точка> <строка-режим>)
Эта функция возвращает точку, которая является результатом
применения об'ектной привязки, задаваемой в <строке-режим> для точки
<точка>. <строка-режим> - строковая константа, состоящая из одного или
более идентификаторов об'ектной привязки, как, например, "midpoint",
"center" и т.д., разделенных запятыми.
Hапример:
(setq pt2 (osnap pt1 "midp"))
(setq pt2 (osnap pt1 "midp,endp,center"))
Если аргумент <точка> - 2-х мерная точка (список из двух действительных
чисел), то будет возвращена 2-х мерная точка. Если аргумент <точка>
- 3-х мерная точка (список из трех действительных чисел), то будет
возвращена 3-х мерная точка. Если ни одной точки, соответствующей
заданному <режиму> об'ектной привязки не найдено, будет возвращаться
nil.
4.86 pi
Это не функция, это константа pi. Ее значение принято 3.1415926.
4.87 (polar <точка> <угол> <расстояние>)
Эта функция возвращает точку, находящуюся под углом <угол> и на
расстояние <расстояние> от заданной <точки>. Точки - список двух
действительных чисел и <угол> выражается в радианах.
Hапример:
(polar '(1.0 1.0) 0.785398 1.414214) возвращает (2.000000 2.000000)
4.88 (prin1 <выражение> [<описатель файла>])
Эта функция выводит выражение <выражение> на экран и возвращает
<выражение>. <выражение> может быть любым выражением; не требуется,
чтобы оно было строковой константой. Если присутствует <описатель файла>
(и является описателем файла, открытого для записи), <выражение>
записывается в файл в то время, как оно появляется на экране. Печатается
только указанное <выражение>; не включается никаких пробелов и переходов
на новую строку. Hапример, дано:
(setq a 123)
(setq b '(a))
- 55 -
Руководство пользователя по АВТОЛИСПу
тогда:
(prin1 'a) печатает А и возвращает А
(prin1 a) печатает 123 и возвращает 123
(prin1 b) печатает (А) и возвращает (А)
(prin1 "Hello") печатает "hello" и возвращает "Hello"
Kаждый из выше приведенных примеров печатается на экране, т.к. не
был указан <описатель файла>. Предположим, что F - допустимый описатель
файла для файла, открытого для записи:
(prin1 "Hello" f)
запишет "Hello" в указанный файл и возвратит "Hello".
Если <выражение> - это строковая константа, включающая управляющие
символы, PRIN1 интерпретирует эти символы, как следующие, добавляя перед
ними знак "\":
\е для выхода (escape)
\n для перехода на новую строку (newline)
\r для ввода (return)
\t для табуляции (tab)
\nnn для символа, восьмеричный код которого nnn.
так:
(prin1 (chr 2)) печатает "\002" и возвращает "\002"
(prin1 (chr 10)) печатает "\n" и возвращает "\n"
PRIN1 может использоваться и без аргументов, тогда она возвращает
(и печатает) символ, называемый пустой строкой символов. Если Вы исполь-
зуете PRIN1 (без аргументов) в качестве последнего выражения определенной
пользователем функции, то когда функция завершит свою работу, все что
будет выведено на экран - это пустая строка, тем самым обеспечивая
"тихий" выход из функции.
Hапример, пусть:
(defun C:SETUP ()
(setvar "LUNITS" 4)
(setvar "BLIPMODE" 0)
(prin1)
)
тогда:
Command: SETUP
исполнит определенную пользователем команду, отвечая на запросы функции
SETVAR, и вернется к подсказке AutoCADа "Command:", не выводя на экран
никаких лишних сообщений.
4.89 (princ <выражение> [<описатель файла>])
Эта функция похожа на PRIN1 кроме того, что управляющие символы в
<выражении> печатаются без расширения. Вообще PRIN1 создана для печати
- 56 -
Руководство пользователя по АВТОЛИСПу
выражений путем, совместимым с функцией LOAD, в то время как PRINC будет
печатать их таким путем, чтобы они могли считываться функциями типа
READ-LINE.
lsp-4-9
4.90 (print <выражение> [<описатель файла>])
Эта функция похожа на PRIN1, кроме того что <выражение> печатается
с новой строки, а после <выражения> ставится пробел.
4.91 (progn <выражение>...)
Эта функция вычисляет каждое <выражение> последовательно и
возвращает значение последнего выражения. Вы можете использовать PROGN
для выполнения нескольких выражений там, где допускается выполнение
только одного. Hапример:
(if (= a b) (progn
(setq a (+ a 10))
(setq b (- b 10))
)
)
Функция IF нормально выполняет одно выражение "then" /тогда/, если
условие выполняется и не равно nil. В этом примере мы использовали
PROGN, чтобы выполнялось два выражения вместо одного.
4.92 (prompt <сообщение>)
Эта функция высвечивает сообщение в поле подсказок экрана и
возвращает nil. <сообщение> - строка символов. В системе AutoCAD с
двумя экранами PROMT высвечивает <собщение> на обоих экранах и поэтому
предпочтительно использовать PRINC. Hапример:
(prompt "Hовое значение: ")
высвечивает "Hовое значение: " на экране (экранах) и возвращает nil.
4.93 (quote <выражение>)
Возвращает выражение не выполняя его. Это может быть так же записано:
'выражение
Hапример:
(quote a) возвращает А
(quote сat) возвращает CАT
(quote (a b)) возвращает (А B)
'a возвращает А
'cat возвращает CАT
'(a b) возвращает А
(Последние три примера не будут работать, если их набрать
- 57 -
Руководство пользователя по АВТОЛИСПу
непосредственно с клавиатуры в ответ на запрос AutoCAD. Помните, что
такой ввод должен начинаться с "(" или "!" с целью интерпритации их как
выражений LISP.)
4.94 (read <строка>)
|
adfun.ru
|
|
|
|