Тема: В чем отличие файла acad.lsp от acaddoc.lsp?

В чем отличие файла acad.lsp от acaddoc.lsp. Я знаю, что acad.lsp загружается только один раз в начале сеанса AutoCAD, а acaddoc.lsp - в каждый рисунок при его открытии. Но что значит - один раз? Допустим, если я напишу в файле acad.lsp - (load "file.lsp"), то он загрузится только в 1-ый рисунок и все?

Re: В чем отличие файла acad.lsp от acaddoc.lsp?

Да, если в Опциях не установлен флажок Загружать acad.lsp с каждым чертежом. Я использую acaddoc.lsp для загрузки своих функций (команд) и некоторых настроек (системных переменных), которые хранятся в файле чертежа. А о грамотном использовании acad.lsp также интересно узнать подробно.

Re: В чем отличие файла acad.lsp от acaddoc.lsp?

Добрый время суток!
Я, например вообще не использую acad.lsp.  Предпочитаю сделать меню и в нем уже прописать необходимое, в MNL-файле.

Re: В чем отличие файла acad.lsp от acaddoc.lsp?

Хорошо, а как быть с файлом acad2000.lsp?
Если я пишу в нем
(load *.lsp)
(load *.vlx)
и т.д., то эти файлы грузятся во все рисунки.
Или может быть у acad2000.lsp другой принцип?

Re: В чем отличие файла acad.lsp от acaddoc.lsp?

> GRF
Насчет, acad2000.lsp не знаю, только его трогать не рекомендуют, потому и не пользуюсь им. Что касается acad.lsp, то совершенно точно он грузится только в первый файл, если в Опциях не установлен флажок "Загружать acad.lsp с каждым чертежом". Сейчас проверил специально. Более того, если изначально флажок установлен и загружен хотя бы один чертеж, а затем флажок снять и попытаться открыть еще один чертеж, то АКАД, как бы сомневаясь в правильности действий, выдаст запрос, типа "что делать то - читать acad.lsp все таки  в каждый чертеж, или только в первый?". Проверял на ACAD2002. Записал в acad.lsp строку (setq a "mytest"). Затем запустил АКАД и в каждом вновь открытом чертеже запросил значение !a. Все точно, как в хелпе.

Re: В чем отличие файла acad.lsp от acaddoc.lsp?

Не знаю почему не рекомендуют трогать файл acad2000.lsp,
но как мне кажется, хотя немного сомневаюсь, что страшного
в этом нет ничего.
Вот к примеру еще такая ситуация:
1.если в файле acad2000.lsp написать
  (vl-load-all "*.lsp")
  (vl-load-all "*.vlx") ;в пространстве имен рисунка
  то все нормально
2. если же написать (load "*.vlx"), работающее
   в собственном пространстве имен, то при
   открытии 2-го рисунка в командной строке
   появляется следующее =>
   error: LISP application is already loaded <имя>
В чем тут дело? Или может быть с помощью vl-load-all
вообще нельзя грузить *.VLX?

Re: В чем отличие файла acad.lsp от acaddoc.lsp?

vl-load-all загружает файл во все открытые в настоящее время документы и открытые в будущем в текущем сеансе АКАД (вольный перевод). Только vl-load-all делает все автоматом, а попробуйте загрузить *.vlx, работающее в собственном пространстве имен ручками, через Appload. Два раза подряд. Тот же эффект получите. А *.lsp можно перезагружать сколько угодно раз (в родном acad2002.lsp прописана как раз загрузка lsp-файла). Проверьте...
Кстати, а какое значение имеет в Вашем случае переменная ACADLSPASDOC? Скорее всего = 1. Угадал?

Re: В чем отличие файла acad.lsp от acaddoc.lsp?

В моем случае переменная ACADLSPASDOC имеет значение 0.
Да я и не об этом уже спрашивал. Я про acad2000.lsp.
Может там тоже какая-нибудь переменная есть?

Re: В чем отличие файла acad.lsp от acaddoc.lsp?

> GRF
Немного непонятно, в чем собственно проблема.
В первый чертеж всегда грузятся:

acad2000.lsp
acad.lsp
acad2000doc.lsp
acaddoc.lsp

Именно в таком порядке.
Во второй и все последующие:
если ACADLSPASDOC = 1, то все четыре файла;
если ACADLSPASDOC = 0, то все, кроме acad.lsp.
Как-то по другому повлиять на автозагрузку, помоему, нельзя. Либо эти файлы есть и они загружаются, либо их нет, и они не загружаются.
Если надо грузить именно *.vlx, то лучше всего в своем *.mnl написать:

(load "*.vlx")

Если почему-то надо использовать именно acad.lsp, то либо:

(setvar "ACADLSPASDOC" 0)
(vl-load-all "*.vlx")

либо:

(setvar "ACADLSPASDOC" 1)
(load "*.vlx")

Во всех остальных автозагрузочных файлах только:

(load "*.vlx")

Re: В чем отличие файла acad.lsp от acaddoc.lsp?

Согласен со Светой.
Все прогиможно грузить через меню (*.mnl), исключением могут быть только большие общие программы (оболчки в какойто мере), в которых пользователь работает почти постоянно во время сеанса
ЗЫ: Может это осталось от древних 286 машин с малой памятью :)

Re: В чем отличие файла acad.lsp от acaddoc.lsp?

Всем большое спасибо за подробные объяснения.
P.S. Особенно "leha". Такое хоть в книгу помещай.

Re: В чем отличие файла acad.lsp от acaddoc.lsp?

> GRF
Насчет книги не знаю, а вот в FAQ я его поместил. :)
Если что-то нужно исправить, пишите.