МЕНЮ


Фестивали и конкурсы
Семинары
Издания
О МОДНТ
Приглашения
Поздравляем

НАУЧНЫЕ РАБОТЫ


  • Инновационный менеджмент
  • Инвестиции
  • ИГП
  • Земельное право
  • Журналистика
  • Жилищное право
  • Радиоэлектроника
  • Психология
  • Программирование и комп-ры
  • Предпринимательство
  • Право
  • Политология
  • Полиграфия
  • Педагогика
  • Оккультизм и уфология
  • Начертательная геометрия
  • Бухучет управленчучет
  • Биология
  • Бизнес-план
  • Безопасность жизнедеятельности
  • Банковское дело
  • АХД экпред финансы предприятий
  • Аудит
  • Ветеринария
  • Валютные отношения
  • Бухгалтерский учет и аудит
  • Ботаника и сельское хозяйство
  • Биржевое дело
  • Банковское дело
  • Астрономия
  • Архитектура
  • Арбитражный процесс
  • Безопасность жизнедеятельности
  • Административное право
  • Авиация и космонавтика
  • Кулинария
  • Наука и техника
  • Криминология
  • Криминалистика
  • Косметология
  • Коммуникации и связь
  • Кибернетика
  • Исторические личности
  • Информатика
  • Инвестиции
  • по Зоология
  • Журналистика
  • Карта сайта
  • АвтоЛИСП - реализация языка программирования

    следующими значениями:

    |INITGET Bits |Значение |

    |1 |не допускает нулевой ввод |

    |2 |не допускает нулевые значения |

    |4 |не допускает отрицательных значений |

    |8 |не проверяет границы,даже если действует |

    | |limcheck |

    |16 |вводит точки 3D раньше,чем точки 2D |

    Биты могут складываться вместе в любой комбинации для создания

    значений от 0 до 31. Если пользователь при вводе определенных режимов

    ошибается (например, вводит нулевое значение, когда оно не допускается),

    АвтоКАД выдаст на экран сообщение и попросит пользователя повторить

    попытку. Например:

    (initget (+ 1 2 4))

    (setq age (getint "How old are you?") : возраст

    "Сколько вам лет?"

    получит возраст пользователя, автоматически повторив попытку, если

    пользователь введет ноль, отрицательное число или нулевое значение. Если

    параметр не задан, предполагается ноль (нет режимов). Специальные

    контрольные значения принимаются на обработку только теми функциями GETxxx,

    для которых они имеют смысл (как показано в таблице):

    |Функция |INITGET control bits honored (принимаемые на обработку |

    | |контрольные байты функции INITGET) |

    | |No null |No zerro |No neg. |No limits |3D hoints |

    |GETINT |( |( |( | | |

    |GETREAL |( |( |( | | |

    |GETDIST |( |( |( | | |

    |GETANGLE |( |( |( | | |

    |GETORIENT |( |( |( | | |

    |GETPOINT |( | | |( |( |

    |GETCORNER |( | | |( |( |

    |GETKWORD |( | | | | |

    |GETSTRING | | | | | |

    |GETVAR | | | | | |

    Необязательный параметр функции INITGET определяет список

    ключевых слов опции, которые будут проверены следующими требованиями

    GETxxx, если пользователь не ввел ожидаемый тип данных ввода (например,

    точку для GETPOINT). Если ввод пользователя соответствует одному из

    ключевых слов этого списка, это ключевое слово вводится с помощью

    функции GETxxx как результат функции STRING. Программа пользователя

    может контролировать ключевые слова и выполнять желаемые действия для

    каждого из них. Если ввод пользователя не ожидаемого типа и не

    соответствует ни одному из ключевых слов, АвтоКАД попросит повторить

    попытку. Список ключевых слов должен быть следующей формы: "KEY1 KEY2 KEY3

    ABBREV3". Отдельные ключевые слова определены пробелами. Сокращения

    (аббривиатура) необязательны, есть два метода их определения.

    Необходимая часть может быть написана заглавными буквами, а остальная

    - с применением нижнего регистра; или необходимая часть может быть

    повторена, отделенная от ключевого слова запятой. Второй способ

    предназначен для облегчения применения иностранных языков, где

    переключение регистров может быть затруднено или вообще невозможно. В

    каждом методе длина необходимой части - минимальная длина, которая

    должна точно соответствовать. (Для метода разделителя-запятой

    предполагается, что строка аббревиатуры - правильное подмножество начала

    ключевого слова).

    Например: "LTYPE,LT" и "LType" - эквивалентные спецификации. Каждая

    означает, что вводы пользователя типа "LTYPE", "LTYP", "LTY" или "LT"

    применяемы, но "L"- недостаточно, а "LTSCALE" и "LTYPEX" не соответствуют.

    Рассмотрим следующие, определенные пользователем функции

    (defun getnum (ix)

    (initget 1 "Pi Two-pi")

    (setq x (getreal "Pi/Two-pi/:"))

    (cond((eqx "Pi") pi)

    ((eq x "Two-pi")(*2.0 pi))

    (T x)

    )

    )

    Этот INITGET запрещает нулевой ввод и создает список из двух

    ключевых слов "Pi" и "TWO-Pi". Затем применяется GETREAL для получения

    целых чисел, издавая подсказку "Pi/Two-pi/:", результат

    перемещения в локальном символе Х.

    Если пользователь вводит число, это число возвращается функцией

    GETNUM. Однако, если пользователь вводит ключевое слово "Pi" ( или

    просто "P"), функция GETPOINT возвращает ключевое слово "Pi". Функция COND

    обнаруживает это и, в данном случае, вводит значение Pi. Ключевое слово

    "Two-pi" обрабатывается аналогично. Созданные с помощью INITGET

    контрольные пометки и ключевые слова применяются только со следующим

    GETxxx вызовом, а затем автоматически отбрасываются. Это позволяет очистить

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

    4.61.(inters [])

    Функция INTERS исследует две линии и вводит точку их пересечения,

    или ноль, если они не пересекаются. и - конечные точки первой

    линии, а и - конечные точки второй линии. Если присутствует

    необязательный параметр и он равен нулю, линии считаются

    бесконечными по длине, INTERS вводит точку пересечения даже если она

    находится вне конца одной или обеих линий. Если параметр опущен

    или он - ноль, точка пересечения должна находиться на обеих линиях или

    INTERS введет ноль. Например, задано:

    (setq a'(1.0 1.0) b'(9.0 9.0))

    (setq c'(4.0 1.0) d'(4.0 2.0))

    тогда:

    (inters a b c d) введет nil

    (inters a b c d T) введет nil

    (inters a b c d nil)введет (4.000000 4.000000)

    4.62.(itoa )

    Эта функция вводит переход целых чисел в строку. Например:

    (itoa 33) вводит "33"

    (itoa -17) вводит "-17"

    4.63 (lambda ...)

    LAMBDA определяет "анонимную" функцию. Обычно она применяется когда

    заголовок при определении новой функции не выравнен. Она также помещает

    функцию на то место, где она должна применяться. LAMBDA вводит значение

    последнего и часто применяется вместе с APPLY и/или MAPCAR для

    выполнения функции в списке. Например:

    (apply '(lambda (x y z)

    (* x (-y z)

    )

    '(5 20 14)

    ) вводит 30

    или:

    (mapcar '(lambda (x)

    (setq counter (1 + counter))

    (* x 5)

    )

    '(24 -6 10.2)

    ) вводит (10 20 -30 51.000000)

    4.64.(last)

    Эта функция вводит последний элемент . должен быть

    не нулевым. Например:

    (last '(a b c d e)) вводит E

    (last '(a b c (d e))) вводит (DE)

    Как показано, LAST может вводить как атом, так и список. На

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

    координаты Y точки. Пока это истинно для 2D точки (список из двух

    действительных чисел), LAST введет координату Z для 3D точки. Для

    того,чтобы ваша функция работала как следует, задавая точки 2D и 3D, мы

    советуем вам применять CADR для получения координаты Y и CADDR для

    получения координаты Z.

    4.65.(length )

    Эта функция вводит целое число, обозначающее номер элемента в

    . Например:

    (length '(a b c d) вводит 4

    (length '(a b (c d)) вводит 3

    (length '()) вводит 0

    4.66.(list ...)

    Эта функция берет любое количество выражений () и соединяет

    их вместе, вводя список. Например:

    (list 'a 'b 'c) вводит (A B C)

    (list 'a '(d c) 'd) вводит (A (B C) D)

    (list 3.9 6.7) вводит (3.90000 6.70000)

    В АвтоЛИСПе эта функция часто применяется для определения переменных

    точек 2D и 3D (список из двух или трех действительных чисел).

    4.67. (listp )

    Эта функция вводит T, если - список, и nil в противном

    случае. Например:

    (listp '(a b c)) вводит T

    (listp 'a) вводит nil

    (listp 4.343) вводит nil

    4.68.(load )

    Эта функция загружает файл выражений АвтоЛИСПа и вычисляет эти

    выражения. - строка, которая представляет имя файла без

    расширения (расширение ".lsp" допускается). может включать

    префикс с каталогом, как в "/function/test1" ("функция/тест 1"). В

    системах MS-DOS/PC-DOS также допускается имя накопителя (например, a: c:) и

    вы можете использовать мертвый ход вместо предшествующей косой черты (но

    помните, что вы должны применять "\\" для получения одной косой черты в

    строке).

    Если операция удачна, LOAD вводит имя последней определенной в

    файле функции. Если операция дает сбой, LOAD введет имя файла в виде

    строки.

    Например, предположим, что файл "/fred/test1.lsp" содержит DEFUN

    функции MY-FUNС, а файл "test2.lsp" не существует:

    (load "/fred/test1") вводит MY-FUNC

    (load "test2" вводит "test"

    Функция LOAD не может быть вызвана внутри другой функции ЛИСПа.

    Она должна быть введена непосредственно с клавиатуры (или из меню, или

    файла сценария /script file/), пока не активна никакая другая функция

    ЛИСПа.

    Каждый раз, когда начинается сеанс работы графического редактора

    АвтоКАДа, АвтоЛИСП загружает файл "acad.lsp", если он существует. Вы

    можете записать на этот файл определение или наиболее часто употребляемые

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

    редактировать чертеж.

    4.69.(log )

    Эта функция вводит в виде действительного числа естественный log

    . Например:

    (log 4.5) вводит 1.504077

    (log 1.22) вводит 0.198850

    4.70.(logand ...)

    Эта функция вводит результат логического подразрядного AND/И

    списка . должны быть целыми, результат также будет целым

    числом. Например:

    (logand 7 15 3) вводит 3

    (logand 2 3 15) вводит 2

    (logand 8 3 4) вводит 0

    4.71.(logior )

    Эта функция вводит результат логического подразрядного включающего

    OR/ИЛИ списка . должны быть целыми, результат будет также

    целым числом. Например:

    (logior 1 2 3) вводит 7

    (logior 9 3) вводит 11

    4.72.(lsh )

    Эта функция вводит логическое подразрядное смещение

    битами . и должны быть целыми

    числами, результат также целое число. Если

    положительное число, смещается влево, если отрицательное -

    вправо. В обоих случаях "нулевые" биты смещаются внутрь, а биты,

    сдвигаемые наружу без сохранения выдвигаемых разрядов, не учитываются

    (shift in/shift out). Если "один" бит смещен внутрь или наружу (into/out)

    от вершины (16-ого ) бита целого числа, его знак меняется. Например:

    (lsh 2 1) вводит 4

    (lsh 2 -1) вводит 1

    (lsh 40 2) вводит 160

    (lsh 16384 1) вводит -32768

    4.73.(mapcar ...)

    MAPCAR вводит результат выполненной с индивидуальными

    элементами через , подаваемые как параметры .

    Количество должно соответствовать количеству параметров,

    требуемых . Например:

    (mapcar '1+'(10 20 30) вводит (11 21 31)

    Это эквивалентно

    (1 + 10)

    (1 + 20)

    (1 + 30)

    Кроме этого MAPCAR вводит список результатов. Аналогично:

    (mapcar '+'(10 20 30)'(4 3 2) вводит (14 23 32)

    эквивалентно:

    (+10 4)

    (+20 3)

    (+30 2)

    Функция LAMBDA может определить "анонимную" функцию, которую выполнит

    MAPCAR. Это полезно, когда некоторые параметры функции - константы или

    подаются некоторыми другими путями. Например:

    (mapcar '(lambda (x)(+ x 3))'(10 20 30) вводит (13 23 33)

    и

    (mapcar '(lambda (x y z)

    (* x (-y z)

    )

    '(5 6)'(20 30)'(145.0)

    ) вводит (30 150.000000)

    4.47.(max ...)

    Эта функция вводит самое большое из заданных . Каждое

    может быть действительным или целым. Например:

    (max 4.07 -144) вводит 4.070000

    (max -88 19 5 2) вводит 19

    4.75.(member )

    Эта функция ищет из имеющихся в наличии и

    вводит остаточные члены , начиная с первого, имеющегося в наличии

    . Если в нет нужных , MEMBER вводит ноль.

    Например:

    (member 'c '(a b c d e) вводит (C D E)

    (member 'q '(a b c d e) вводит nil

    4.76.(menucmd )

    Функция MENUCMD снабжает средствами программы для переключения между

    подстраницами в меню АвтоКАДа. Таким образом, программа ЛИСПа может

    работать во взаимодействии с объединенным файлом меню, каждый раз при

    необходимости ввода пользователя, выводя на экран соответствующие подменю

    варианты/альтернативы. Параметр функции MENUCMD имеет следующую

    форму:

    section - submenu (секция - подменю)

    где

    section определяет секцию/раздел меню. Действительны следующие

    имена:

    S - для меню экрана (SCREEN)

    B - для клавишного меню (BUTTONS)

    T1-T4 - для меню планшета (TABLET) от 1 до 4

    A1 - для AUXI меню.

    submenu определяет какое из подменю активно. Имя должно быть или одним из

    знаков/обозначений меню (без "**") в текущем загруженном файле меню, или

    именем секции основного меню. Для дальнейшей информации см. Главу 5.

    Обратите внимание, что начальная "S", применяемая для ссылки на подменю в

    файле меню, здесь не применяется. Например:

    (menucmd "S = OSNAP")

    вызовет на экран подменю "OSNAP" (предполагая, что такое подменю

    существует в текущем файле меню). Аналогично:

    (menucmd "B" = "MY-BUTTONS")

    определит "MY-BUTTONS" для кнопочного меню. MENUCMD всегда вводит nil.

    4.77.(min ...)

    Эта функция вводит самое маленькое из заданных . Каждое

    должно быть действительным или целым. Например:

    (min 683 -10.0) вводит -10.000000

    (min 73 2 48 5) вводит 2

    4.78.(minusp )

    Эта функция вводит T, если - действительное или целое число

    и вычисляется к отрицательному значению, иначе она вводит nil. Для других

    типов функция не определяется. Например:

    (minusp -1) вводит T

    (minusp -4.293) вводит T

    (minusp 830.2) вводит nil

    4.79.(not )

    Эта функция вводит T, если выражение - нулевое и ноль в противном

    случае. Как правило, функция NULL применяется для списков, а NOT

    применяется для других типов данных в сочетании с некоторыми типами

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

    (setq a 123)

    (setq b "string")

    (setq c nil)

    тогда:

    (not a) вводит nil

    (not b) вводит nil

    (not c) вводит T

    (not '()) вводит T

    4.80.(nth )

    Эта функция вводит "nth" элемент , где - номер вводимого

    элемента (нулевой - первый элемент). Если больше, чем задано в

    , вводится nil. Например:

    (nth 3 '(a b c d e)) вводит D

    (nth 0 '(a b c d e)) вводит A

    (nth 5 '(a b c d e) вводит nil

    4.81.(null )

    Эта функция вводит Т, если близок к нулю, иначе она введет

    nil. Например, заданы следующие назначения:

    (setq a 123)

    (setq b "string")

    (setq c nil)

    тогда:

    (nul a) вводит nil

    (nul b) вводит nil

    (nul c) вводит T

    (nul '()) вводит T

    4.82.(numberp )

    Эта функция вводит T, если - целое или действительное

    число, иначе она вводит ноль. Например, заданы назначения:

    (setq a 123)

    (setq b 'a)

    тогда:

    (numberp 4 ) вводит T

    (numberp 3.8348) вводит T

    (numberp "Howdy") вводит nil

    (numberp 'a) вводит nil

    Страницы: 1, 2, 3, 4, 5, 6


    Приглашения

    09.12.2013 - 16.12.2013

    Международный конкурс хореографического искусства в рамках Международного фестиваля искусств «РОЖДЕСТВЕНСКАЯ АНДОРРА»

    09.12.2013 - 16.12.2013

    Международный конкурс хорового искусства в АНДОРРЕ «РОЖДЕСТВЕНСКАЯ АНДОРРА»




    Copyright © 2012 г.
    При использовании материалов - ссылка на сайт обязательна.