Не работает appload autocad

ACAD командa _appload ?

Чтобы отправить ответ, вы должны войти или зарегистрироваться

Сообщения 13

#1 Тема от Valeri 18 сентября 2002г. 17:37:32

  • Valeri
  • Восстановленный участник
  • На форуме с 12 августа 2002г.
  • Сообщений: 41
  • Спасибо: 0

Тема: ACAD командa _appload ?

Есть ли возможность загрузить *.lsp приложение в ACADе командной строкой , минуя падающее меню ?

#2 Ответ от ShaggyDoc 19 сентября 2002г. 06:06:02

  • ShaggyDoc
  • Восстановленный участник
  • На форуме с 10 сентября 2001г.
  • Сообщений: 1,761
  • Спасибо: 0

Re: ACAD командa _appload ?

(load «имя_файла»)
если файл lsp, расширение не указывать. Если включен путь, слэши указывать двойными или обратными «c:\\xxx\\yyy» или «c:/xxx/yyy»
Если файл на путях поиска Автокада, путь можно не указывать

#3 Ответ от Valeri 19 сентября 2002г. 18:36:43

  • Valeri
  • Восстановленный участник
  • На форуме с 12 августа 2002г.
  • Сообщений: 41
  • Спасибо: 0
Читайте также:  Как починить направляющие выдвижного ящика

Re: ACAD командa _appload ?

Ок! Это понятно. А самой командой _appload «c:\\xxx\\yyy» в ACADе згрузиться никак нельзя?

#4 Ответ от ShaggyDoc 20 сентября 2002г. 06:34:42

  • ShaggyDoc
  • Восстановленный участник
  • На форуме с 10 сентября 2001г.
  • Сообщений: 1,761
  • Спасибо: 0

Re: ACAD командa _appload ?

Вопрос-то по программированию.

appload — диалоговая команда. Для того, чтобы загружать программы для «разового» или редкого использования. Когда их начинают использовать часто — включают в меню или автозагрузку. Тут и пригодится (load . ). Ее тоже в командной строке набирают обычно на стадии отладки, потом — в меню или автозагрузку.

Многие диалоговые команды автокада имеют вариант для командной строки (обычно с префиксом «-«). Это бывает нужно для программирования, детали можно уточнять в Help. APPLOAD такого варианта не имеет, потому, что нет смысла — есть ФУНКЦИИ загрузки load, arxload и т.п.

#5 Ответ от Sash 23 сентября 2002г. 09:00:46

  • Sash
  • Восстановленный участник
  • На форуме с 23 сентября 2002г.
  • Сообщений: 2
  • Спасибо: 0

Re: ACAD командa _appload ?

2 ShaggyDoc
А если мне требуется чтобы команда повторялась по нажатию правой кнопки мыши? Как я понимаю надо прописывать команду в acad.pgp типа c:mycomand? И получается, что при загрузке она попадет в оперативку и займет там лишнее место.

#6 Ответ от Павел, г. Пермь 23 сентября 2002г. 11:11:25

  • Павел, г. Пермь
  • Восстановленный участник
  • На форуме с 8 августа 2002г.
  • Сообщений: 157
  • Спасибо: 0

Re: ACAD командa _appload ?

Sash, место много жрать такая ссылка не будет.
А если тебе надо, чтобы по правй клавише команда повторялась, то есть вариант с ЛИСП файлом:
Имя файла RUN.lsp, либо при открытии сеанса запускаешь, либо в MNL-файле прописываешь загрузку.
(defun c:mycommand ()
(load «c:\\myProgs\\Myprogramm»)
;Здесь можно выбрасывать используемую функцию из памяти
(setq MyProgramm nil)
)
Эта команда mycommand, доступна, если ты загрузил файл содержащий эту функцию. И вызывается по нажатию правой клавиши мыши.

#7 Ответ от ShaggyDoc 23 сентября 2002г. 11:24:21

  • ShaggyDoc
  • Восстановленный участник
  • На форуме с 10 сентября 2001г.
  • Сообщений: 1,761
  • Спасибо: 0

Re: ACAD командa _appload ?

Мухи отдельно, котлеты отдельно.

1. Загрузка файла — разъяснено.

2. Что в загруженном файле? Обычно функции. Некоторые могут выполняться в процессе загрузки.

3. Что такое «команда». Это или «стандартная» команда Автокада (например «LINE»), или «пользовательская», определенная в загружаемом файле. Пользовательские функции-команды имеют определение вида (defun C:NAME () ). Обязательно без параметров. Отличие от обычных функций:
а) могут вызываться с клавиатуры без скобок (а функции только в скобках). Это преимущество, но сомнительное, так как запоминать сотни пользовательских команд невозможно. А если «обнилять», как советует Павел, вообще смысл пропадает.
б) ведут себя как стандартные, то есть нажатие Enter вызывает предыдущую команду (хоть стандартную, хоть пользовательскую)

Источник

AutoCAD

Автор:

Проблема

Причины:

Решение

Убедитесь, что команда доступна в программе или инструментарии.

Установите доступные обновления AutoCAD (см. раздел Установка обновлений, надстроек и дополнений).

C:\Program files\Autodesk\ \support\

  1. Нажмите кнопку ОК в окне «Настройка».
  • Отсутствует файл acad doc.lsp
    1. Откройте Проводник Windows и выполните поиск файла acad doc.lsp в папке установки AutoCAD. ​Путь: C:\Program Files\Autodesk\AutoCAD \Support\ .
    2. В командной строке введите НАСТРОЙКА, чтобы посмотреть, присутствует ли путь к файлу acad doc.lsp в списке «Пути доступа к вспомогательным файлам».
    3. В командной строке введите ЗАГПРИЛ и проверьте, загружен ли файл acad doc.lsp. Если нет, перейдите по указанному выше пути и загрузите файл acad doc.lsp.
  • Для пользовательских команд, настроенных с помощью редактора АПИ, следует добавить кнопки на панели инструментов или панели ленты либо вынести их в раскрывающееся меню. Кроме того, их можно определить с помощью процедур LISP и загрузить посредством команды ЗАГПРИЛ (недоступно в AutoCAD LT).
  • Если пользовательские команды добавляются с помощью надстройки, проверьте совместимость надстройки с AutoCAD, а затем удалите и повторно установите ее.
  • Восстановите настройки AutoCAD по умолчанию (см. раздел Восстановление настроек AutoCAD по умолчанию).

    Источник

    Как использовать лисп, опубликованный на форуме

    Примечание: AutoLISP программы могут быть запущены только на полной версии Автокада, они не работают под AutoCAD LT. (исключая случаи загрузки дополнительных приложений типа LT Extender и ему подобных, которые специально разработаны для запуска lisp и (или) arx приложений в среде AutoCAD LT.)

    Сохранение программного кода на своем компьютере

    С помощью курсора выделяем этот код и копируем его в буфер обмена, нажав правую кнопку мыши и выбрав пункт Копировать (или Ctrl+C).
    Запускаем «Блокнот» и вставляем наш код с помощью меню Правка >> Вставить (или Ctrl+V):

    После того как вставили код в блокнот, мы должны иметь что-то наподобие этого:

    Теперь мы должны сохранить файл. Файл можно назвать, как вам нравится, но расширение у него должно быть .LSP. Правильнее (но не обязательно) будет назвать файл так же, как названа команда в найденном Вами коде. Команде всегда предшествует префикс C: после слова defun. В примере выше видно, что команду назвали OFF2, соответственно файл называем off2.lsp. Таким образом, мы можем избежать беспорядка, т.к. будем знать, что в файле off2.lsp находится команда OFF2.
    Иногда в коде представлено несколько функций. Необходимо найти «главную». Такая функция либо имеет префикс С:, либо сам автор кода уточняет, что «использовать как «. В случае нескольких «главных» именование файла не может иметь никаких рекомендаций.

    Загрузка lisp файла

    Далее, запускаем Автокад и выбираем Сервис >> Автолисп >> Загрузить (Tools >> AutoLISP >> Load) или набираем в командной строке _appload.
    Мы должны увидеть диалоговое окно как представлено ниже:

    Используйте следующую последовательность, чтобы загрузить off2.lsp:

    1. Перейдите к папке, куда Вы сохранили lisp файл.
    2. Выберите файл, который Вы хотите загрузить из списка.
    3. Нажмите кнопку Загрузить.
      (Если все прошло удачно, Вы должны увидеть надпись «off2.lsp успешно загружено»)
    4. Нажмите кнопку Закрыть для завершения команды.

    Команда или функция ?

    Для начала необходимо определиться, что у нас: команда или функция?
    Немного теории.
    В описании практически любого кода есть такая строка, как

    и потом после нее чего-то там написано. Так вот то, что там написано и есть имя функции.
    Если первыми символами являются C:, то функция готова к вызову из командной строки. Если такого нет, то вызывать функцию надо, заключая ее имя в круглые скобки.
    Например, есть функция

    (defun c:test () )

    Ее вызывать (при условии, что она подгружена) с командной строки можно напрямую:

    И будут выполнены действия
    А вот такую:

    (defun test () )

    Можно будет вызывать только так:

    И будут выполнены действия .
    С точки зрения AutoCAD’a это 2 разных модуля.

    Запуск lisp программы

    Как только lisp файл загружен, Вы можете вызвать команду из командной строки. Команда вызывается по ее имени. В нашем примере необходимо набрать в командной строке OFF2.
    Запомните, имя команды содержит префикс C: после слова defun. Если Вы видите в коде:

    то в командной строке необходимо набрать без префикса C:.

    Tips: Вы можете также загрузить lisp файл путем перетаскивания (drag-and-drop) иконки файла в графическое окно открытого документа Автокада.

    AutoCAD ; error: no function definition:

    Если Ваша функция или команда не работает или завершает работу с сообщением как в примере ниже, то Вам может помочь простой способ.

    Команда: (vlax-get-acad-object)
    ; error: no function definition: VLAX-GET-ACAD-OBJECT

    Наберите в командной строке (vl-load-com) или (предпочтительнее) добавьте ее в начало lisp файла.

    Команда: (vl-load-com)

    Теперь ваш lisp должен работать без ошибок.

    Что такое это (vl-load-com) ?

    Данная функция загружает большое количество функций, входящих в расширение AutoLisp, позволяющее работать с объектами, свойствами, методами и событиями ActiveX. Признаком необходимости загрузки расширения AutoLisp является наличие в тексте Вашей программы функций, начинающихся с префиксов vla- (например vla-get-activedocument), vlax- (например vlax-get-acad-object), vl- (например vl-catch-all-apply) и vlr- (например vlr-pers).
    В любом случае никогда не помешает добавить (vl-load-com) в начало файла, чтобы избежать подобных ошибок.

    Организация библиотеки лисп файлов.

    Что делать, если набралось достаточное количество файлов? Каждый раз набирать _appload для загрузки того или иного приложения? Наиболее эффективным будет организация своей библиотеки. Для начала условимся, что все наши файлы будем складывать в одну папку. Например, D:\MyLisp. Пропишем эту папку в путях доступа Автокада. Для этого выбираем Сервис >> Настройка (Tools >> Options) или набираем в командной строке _options. Переходим на закладку Файлы (Files) и раскрываем список Путь доступа к вспомогательным файлам (Support File Search Path).
    Мы должны увидеть диалоговое окно, как представлено ниже:

    Используйте следующую последовательность, чтобы прописать папку в путях доступа:

    1. Нажмите кнопку Добавить.
    2. Нажмите кнопку Обзор и выберите целевую папку (в нашем случае , D:\MyLisp)
    3. Путь к папке должен появиться в диалоговом окне.
    4. Нажмите кнопку OK для завершения команды.

    Теперь наша папка прописана в путях доступа Автокада. Что это нам дает? Мы можем загружать наши файлы не указывая конкретного пути, а только имя файла.
    Мы можем набрать в командной строке (load » «) для загрузки необходимого кода, например (load «off2»). Заметьте, что добавлять расширение .lsp не обязятельно, хотя и не запрещается.
    И, наконец, самое главное — это позволит нам создать панели с кнопками для загрузки той или иной программы. Кнопка будет иметь следующее содержание:

    Вместо текста мы должны будем подставлять имя нужной нам команды, а вместо текста имя того файла, в котором эта команда сохранена. Напоминаю, что файл должен иметь расширение .lsp. Более подробно по организации меню можно почитать еще здесь http://www.kulichki.com/cadhlp/pdmnu.htm

    Автозагрузка файлов.

    Если есть необходимость загружать свои lsp файлы при открытии чертежа, то нужно добавить необходимые файлы в список автозаргузки.
    Запускаем Автокад и выбираем Сервис >> Автолисп >> Загрузить (Tools >> AutoLISP >> Load) или набираем в командной строке _appload.
    В открывшемся диалоговом окне жмем на кнопку Приложения рядом с изображение портфеля

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

    Они должны появиться в списке приложений.
    Теперь перечисленные файлы будут загружаться каждый раз при открытии рисунка.
    Важно понимать, что (по крайней мере в полной версии AutoCAD) загрузка приложений, помещенных в Автозагрузку (Startup Suite), как правило, выполняется во все профили и сессии AutoCAD’a.
    Кроме того, есть еще один момент. Если существует 2 или более файлов, в которых описаны функции с одинаковыми именами, выполняться будет та, которая загрузилась последней. Поскольку предсказать, в какой последовательности будет выполняться загрузка приложений, невозможно, подобных ситуаций следует избегать.

    Автор статьи: Владимир Азарко aka VVA

    Источник

Оцените статью