adfun.ru
 
BIGLIB
  большущая библиотека (9812 книг), можно не только прочитать но и скачать бесплатно
 
АСТРОЛОГИЯ
  книги по астрологии
 
КРИМИНАЛ
  книги про криминал
 
ДЕТЕКТИВЫ
  детективы известных
   писателей
 
ФАНТАСТИКА
  фентези, фантастика,   фантастические повести
 
ПРИКЛЮЧЕНИЯ
  книги про приключения,   путешествия
 
ПОЛИТИКА
  книги про политиков,   репрессии
 
ПСИХОЛОГИЯ
  разнообразная литература   по психологии
 
КЛАССИКА
  классическая литература
 
КОМПЬЮТЕРНАЯ
  ЛИТЕРАТУРА
  про компютерное железо,   документация, языки   программирования
 
РЕЛИГИЯ, АТЕИЗМ
  книги про религию
 
ФИЛОСОФИЯ
  книги, которые заставляют   задуматься над   окружающим тебя миром.
 
ЭНЦИКЛОПЕДИИ
  самые интересные   энциклопедии на
   разные темы
 
МЕДИЦИНА
  медицинские книги,   методички,
   народные лечебники
 
КУЛИНАРИЯ
  рецепты тортов,   консервирование,
  все о спиртных
  напитках.
 
СТИХИ
  стихи популярных и не   очень авторов
 
ТВОРЧЕСТВО
  народное творчество,   стихи, песни и т.д.
 
ЮМОР
  анекдоты, приколы,   смешные истории
 
ЛЮБОВНЫЙ РОМАН
  мир высоких чувств и   любовных грез
 
ЭРОТИКА
  эротические рассказы,   книги о технике секса,   кама-сутра и др.




adfun.ru
Rambler's Top100 Rambler's Top100
    НА ГЛАВНУЮ
    РЕФЕРАТЫ
    ТОСТЫ
    ТЕСТЫ
    АВТО
    ДЛЯ СТУДЕНТА
    КНИГИ
    КОНТАКТ
 
Руководство пользователя по АвтоЛиспу
Автор ""
Размер 218625 Байт
Страница 28 из 30
СКАЧАТЬ КНИГУ ЦЕЛИКОМ



                           - 88 -

            Руководство пользователя по АВТОЛИСПу


Как только вы создаете новые функции и переменные , их имена заносятся
в оглавление ATOMLIST. Вы можете изъять любое ,обозначенное вами, из
того что есть в оригинале, прерыванием ATOMLISTа . Будьте внимательны,
однако, не прерывайте системных функций , иначе вы окажетесь в тупике.

       Если вы поместите следующую функцию в ваш "acad.lsp" файл:

       (defun C:CLEAN ()
          (setq atomlist (member 'C:CLEAN atomlist))
          'DONE
       )

у вас будет возможность ввести команду CLEAN , всегда , когда вы хотите
сделать ATOMLIST аккуратным и получить обратно участок памяти node,
используемый всеми вашими функциями и переменными. Если  C:CLEAN послед-
няя функция в вашем "acad.lsp" файле , функции, которые вы определяете
ранее в файле, будут сохранены , когда вы введете CLEAN. Функция CLEAN
сбрасывает только подпоследовательно определяемые( subsequently-defined)
функции и переменные, таким образом, все , что вы в " acad.lsp" опре-
делили раньше, обработается как системно определяемые функции.

       ЗАПОМНИТЕ. Механизм ATOMLIST нестандартная особенность LISPа и
       может быть изменена в будущих версиях AutoLISPа. К тому же, техни-
       ка прерывания ATOMLISTа не може
       т быть использована , когда имеется
       возможность листания виртуальных функций. Смотри следующий раздел.


       6. 3.    Виртуальные страничные функции

       Если применение вашего AutoLISPа становится слишком большим ,
чтобы быть впору имеющемуся участку памяти node (установленному пере-
менной SET в LISPHEAP , как описано выше), вы можете использовать
перелистыватель виртуальной функции AutoLISPа, чтобы позволить рост ва-
шей программы. Чтобы сделать это, просто выполните функцию:

       (vmon)

перед первым DEFUN в вашей программе. Это позволит виртуальной функции
разбить память на страницы, для остатка сеанса AutoCAD Drawing Editor.
Однажды позволенная , функция разбиения памяти на страницы  не отключает-
ся. Только функции, созданные через функции DEFUN ,следующие
за функцией VMON, подходят для разбиения памяти на страницы , а,
если у вас функции DEFUN перед VMON , они не будут разбивать память на
страницы и еще могут вызвать на терминал сообщение:

       "Insufficient node space"   Недостаточно памяти node

      После того , как функция VMON выполнится,  AutoLISP будет перелис-
тывать страницы  редко используемых функций, всякий  раз когда они за-
пускаются из памяти, и автоматически читать их снова, когда они понадо-
бятся. Вам не нужно беспокоиться об этом перелистывании,так как оно уп-
равляется автоматически, и это ясно из  вашей программы.Эти функции вре-
менно перекачиваются в файл , через который управляется файл перелисты-
вателя страниц AutoCADа. Итак , когда вы имеете достаточно расширенную
или продленную память, обычно эта память будет перекачивать функции и




                           - 89 -

            Руководство пользователя по АВТОЛИСПу


выдаст результат намного быстрее , чем свопинг(перекачка)на диск.
       Запомните, что система с виртуальной памятью только листает функ-
ции: однако, вы должны иметь достаточный участок node памяти для разме-
щения всех списков (data lists) , использующихся в вашей программе, а
также функций и имен переменных. Следовательно, хотя листание страниц
позволяет прогнать большую программу со много меньшей памятью, вы ,одна-
ко, должны установить оптимальный размер участка heap и набор LISPHEAP
соответственно. То же самое относится к размеру участка stack и к набо-
ру LISPSTACK при работе с виртуальной памятью.


       Технические замечания

       Следующая информация полезна только опытным хакерам (программис-
там ) LISPа. Новички и те, кто играют, как правило, могут( и должны) иг-
норировать эту дискуссию.


       После того , как функция VMON выполнится, все функции DEFUN зани-
мают новый участок node памяти, называемый таблица страниц (page table),
в начале каждого списка функции. Этот node участок добавляется перед
списком, содержащим формальные аргументы. Участок памяти page table node
используется исключительно,как перелистыватель страниц ,и в любом случае,
им нельзя манипулировать пользователю программ. Функция TYPE возвращает
PAGETB в эти участки памяти node.





Когда программа AutoLISP загружается из участка памяти node, ме- ньше всего используемая функция сбрасывается записью ее в стра- ничный файл (paging file) , сохраняя адрес страничного файла в таблице страниц, и освобождая весь участок памяти node, занимаемый функцией, следующей за таблицей страниц. В таблице страниц маркируется та функция, которая сброшена. Когда сброшенная функция вычислена, она снова считыва- ется из страничного файла( возможно откачивание других функций) по при- оритету выполнения. Когда функция списана из страничного файла, последующие откачки просто освобождают этот участок hode памяти. Нет необходимости удалять функцию , так как она всегда присутствует в файле. В AutoLISPе функции, созданные с помощью DEFUN, являются просто списками, и ими можно манипулировать как со списками. Программы , которые делают это , должны быть осведомлены об операции перелистывания страниц ( или не применяйте VMON). Прежде всего,функции, создаваемые с помощью функции DEFUN, имеют в начале участок памяти node таблицы страниц ( page table), так что , вы должны перескочить его, если будете сканировать фу- нкцию. Если вы создаете функцию сами для себя , как список( обходя DEFUN), она будет работать прекрасно,но она не подойдет для свопинга ( перекачивания) , поэтому вы можете легко запустить ее из памяти, если вам это удобнее. Наоборот, вы можете поместить функцию в память , переопределяя ее без таблицы страниц. Например, чтобы помес- тить функцию, определенную DEFUNом с именем ZORP,в память,вы должны ис- пользовать: (setq zorp (cdr zorp)) чтобы удалить применение таблицы страниц. Таблицы страниц печатаются про- сто как пробел , когда вы используете функцию PRINT. Вы можете определить, когда функция перекачиваема, проверив, имеется ли пробел после первой левой скобки: если так , она перекачиваема. Если вы пытаетесь сканировать функцию, как данные, и откачи- вать ее, вы должны найти только таблицу страниц в списке функции. Проход- - 90 - Руководство пользователя по АВТОЛИСПу ная функция не будет перекачена- только вычисливши ее, можно сделать это. Итак, если вы создаете функции и модифицируете их с хитростью, организуй- те их как списки , вместо использования функции DEFUN, или используйте трюк,приведенный выше, чтобы поместить их в память. Список символов, известных AutoLISPу, называется ATOMLIST. Есть возможность хитрой программе манипулировать этим списком, чтобы исправить пробел или сканировать все символы. ( Как отмечено в предыдущей главе, это не стандартная особенность LISPа, и она может быть изменена в буду- щих версиях AutoLISPа.) Когда функция откачивается , она преобра- зуется в пути , это предполагает что ATOMLIST, не будет изменен до тех пор, пока функция не откачается ( если разбиения памяти на страницы нет на этом пути, функция занимает гораздо больше места на диске и идет в пять раз медленней). Чтобы быть уверенным , что ATOMLIST не изменится, когда листание действительно имеется, доступ к ATOMLISTу блокируется перемещением ATOMLISTа из списка символов ,доступнх пользователю. Если вы используете виртуальную функцию листания страниц, оставьте ATOMLIST в покое. Если вы действительно хотите , чтобы у вас были неприятности, вы можете это сделать. Вы можете создать свою собственную функцию, включая таблицу страниц, из любой другой функции. Вы должны присвоить ATOMLISTу собственную переменную и изменить ее после того , как AutoLISP стартует для листания страниц. Вы можете даже придумать что-нибудь бо- лее творческое и ужасное. Однако , такое поведение может быть отмщено разрушением вашей программы; это не может повредить AutoLISPу или Auto- CADу. Итак, если вы хотите нести потери, вперед. Глава 7 СООБЩЕНИЯ ОБ ОШИБКАХ Ниже приведен список сообщений об ошибках, которые вы время от времени увидите, когда вы пишете или выводите функции AutoLISPа. Если функция "ERROR" определена не пользователем ("ERROR" связана с nil), ошибка является стандартной акцией , тогда эти сообщения выводятся на экран дисплея в виде: error: message ошибка:сообщение следом за прослеженнй функцией. Если существует пользователь-определитель функции "ERROR", эта функция , называемая сообщением, пройдет только в качестве аргумента. Функции, отклоняемые AutoCADом Аргументы проходящих в AutoCAD функций недействительны ( таких, как функции GETVAR "NOSUCH" или SETVAR с только читаемыми системными переменными), или функция, переходящая сама в себя, недействительна в текущем контексте. - 91 - Руководство пользователя по АВТОЛИСПу


Страницы : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 [28] 29 30


adfun.ru









Форум раскрутка сайта и интернет-реклама
реклама - рекламное агентство -
Интернет PR агентство чат и форум
волчат знакомства - сайт знакомств
бесплатные компьютерные игры
фото знакомства
новые стеклопакеты -
качественное остекление балконов
портал - пластиковые окна -
закажите окна пвх в Москве

частная стоматология в Москве:
надежная стоматологическая клиника
протезирование зубов и
отбеливание зубов в стоматологии
Музыка - скачать mp3 музыка
каталог партнерские программы
ручной бесплатный обмен ссылками цифровые камеры цифровые фотоаппараты -
цифровые видеокамеры

театры - заказ билетов в театр -
магазин - продажа компьютеров
в Москве форум Испания - жилье -
недвижимость в испании

турфирма - испания туры
Переводы - бюро переводов
Законы - закон о товарных знаках,
Грузовые перевозки. АсМАП. Дальнобой закон о рекламе
Интернет казино
реклама на форуме и контекстная реклама
на Яндексе Баннерная сеть и
интернет каталог сайтов Holiday.Ru
Форумы политика, лучшие анекдоты
знакомства.