| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Что прописать в acad.lsp чтобы всегда загружались пользовательские лисп команды?

Что прописать в acad.lsp чтобы всегда загружались пользовательские лисп команды?

Ответ
Поиск в этой теме
Непрочитано 15.11.2011, 12:23 #1
Что прописать в acad.lsp чтобы всегда загружались пользовательские лисп команды?
overband
 
Инженер-конструктор
 
Москва
Регистрация: 25.02.2008
Сообщений: 142

Здравствуйте! Вопрос заключется в следующем. Есть набор лисп файлов и сделанные с их использованием команды автокад. Если добавить эти файлы в автозагрузку в акаде, то команды работают отлично, но иногда по разным причинам список автозагрузки в акаде слетает (смена профиля, изменение рабочего пространства и еще разные причины, которые я отследить не сумел) и команды естественно перестают работать. Так вот как сделать чтобы свои лисп файлы подгружались с автокад ВСЕГДА, т.е. вне зависимости от настроек, профилей и т.д.? Кажется это можно прописать в acad.lsp. Но как конкретно я к сожалению не нашел. Уважаемые программисты-лисперы, если не жалко выложите примерчик файла acad.lsp с автозагрузкой для файлов лисп (названия для примера) one.lsp, two.lsp, three.lsp, допустим лежащих в папке c:\commands. Заранее огромное спасибо!!!

P.S. Если есть другие решения данной проблемы, буду признателен за совет!
Просмотров: 17415
 
Непрочитано 15.11.2011, 12:25
#2
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,663


Используй функцию "load".
Profan вне форума  
 
Автор темы   Непрочитано 15.11.2011, 13:02
#3
overband

Инженер-конструктор
 
Регистрация: 25.02.2008
Москва
Сообщений: 142


если не сложно можно пример ее использования?
overband вне форума  
 
Непрочитано 15.11.2011, 13:17
#4
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,663


Добавь в конце файла acad.lsp строки
(load "one.lsp")
(load "two.lsp")
(load "three.lsp")
Папку c:\commands надо прописать в пути доступа AutoCAD к файлам поддержки.
Настроить AutoCAD так, чтобы файл acad.lsp загружался с каждым чертежем.
Вместо файла acad.lsp можно использовать файл acad.mnl (записать там те же строки).
Profan вне форума  
 
Непрочитано 15.11.2011, 14:33
#5
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 38,703


Вообще-то лучше не редактировать acad*.lsp. Намного проще сделать свой лисп и засунуть его либо в автозагрузку, либо (для варианта подгрузки собственного меню) использовать mnl-файл.
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 15.11.2011, 14:53
#6
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,906
<phrase 1= Отправить сообщение для VVA с помощью Skype™


LISP. Общее. Загрузка файла. Вызовы функций Посты #47 и #48
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 15.11.2011, 16:47
#7
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,834
<phrase 1=


В случае малого количества файлов: "one.lsp"; "two.lsp"; "three.lsp", наверное проще всего воспользоваться автозагрузкой.
Я тоже не любитель использования файла acad.lsp.
Но вот если создать свой acad.lsp (а не портить стандартный), использовать СВОЙ профиль, где папка с ТВОИМ acad.lsp будет первой путях,
то очень может быть...
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Непрочитано 15.11.2011, 19:13
#8
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,663


Стандартного файла именно acad.lsp в последних версиях не существует. А по поводу автозагрузки автор темы выразил сомнение в первом сообщении.
Profan вне форума  
 
Непрочитано 16.11.2011, 00:58
#9
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,834
<phrase 1=


Цитата:
Сообщение от Profan Посмотреть сообщение
автор темы выразил сомнение в первом сообщении.
В первой теме были в куче "кони, люди".
Категорически против того
Цитата:
Сообщение от overband Посмотреть сообщение
чтобы свои лисп файлы подгружались с автокад ВСЕГДА, т.е. вне зависимости от настроек, профилей и т.д.?
Поэтому акцентировал внимание на СОБСТВЕННОМ профиле и СОБСТВЕННОМ acad*.lsp
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...

Последний раз редактировалось Alan, 27.01.2013 в 19:15.
Alan вне форума  
 
Автор темы   Непрочитано 26.01.2013, 14:34
#10
overband

Инженер-конструктор
 
Регистрация: 25.02.2008
Москва
Сообщений: 142


Спасибо всем ответившим. Прошел год. К сожалению безболезненного решения по подгрузке файлов lsp вне зависимости от настроек автокада видимо нет. В любом случае есть свои "побочные" эффекты.
Лично я все-таки остановился на автозагрузке файлов. Проблему с большим количеством файлов решил путем компоновки большого количества отдельных файлов с командами в гораздо меньшее количество файлов созданных по принципу схожести выполняемых операций. Не всегда удобно в плане работы с ними, зато меньше файлов подгружать.

Еще хотел бы пояснить на примерах, для чего нужно было "чтобы файлы подгружались ВСЕГДА":
1 Пример: Конструктор не особо разбирающий в тонкостях настройки автокада попросил установить ему простую lisp программку для суммирования чисел из текстовых примитивов (как пример). Через какое-то время программка перестает работать и исчезает из автозагрузки потому что он что-то поменял в профиле, поставил доп. программу и т.п. Соответственно появляется проблемма этот lisp восстановить. Для знающего человека не проблема, но для большинства... А если таких людей много? Замучают!
2 Пример: Существуют lisp команды, которые созданы для поддержки выполнения Стандартов оформления в организации. Но каждый пользователь все равно уникален и захочет настраивать автокад немного по-своему. Запрещать это бессмысленно и не нужно. Но опять же в результате различных манипуляций lisp команды могут начать слетать. Хорошо если под рукой есть сисадмин и может быстро все исправить, но иногда он может быть в отпуске, заболеть, уйти на обед и не вернуться и т.д. Поэтому такие "неожиданности" будут очень портить жизнь рядовому конструктору.
Автоматизация упрощая одно, усложняет другое, но попробовав ее, отказаться уже невозможно .
overband вне форума  
 
Непрочитано 27.01.2013, 05:52
#11
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,550


Цитата:
Сообщение от overband Посмотреть сообщение
Конструктор не особо разбирающий в тонкостях настройки автокада попросил установить ему простую lisp программку для суммирования чисел из текстовых примитивов (как пример). Через какое-то время программка перестает работать и исчезает из автозагрузки потому что он что-то поменял в профиле, поставил доп. программу и т.п.
И где логика?
Цитата:
Сообщение от overband Посмотреть сообщение
Конструктор не особо разбирающий в тонкостях настройки автокада попросил установить ему простую lisp программку для суммирования чисел из текстовых примитивов (как пример). Через какое-то время программка перестает работать и исчезает из автозагрузки потому что он что-то поменял в профиле, поставил доп. программу и т.п. Соответственно появляется проблемма этот lisp восстановить. Для знающего человека не проблема, но для большинства... А если таких людей много? Замучают!
Невежество и жадность - главный бич человеческого бытия
gomer вне форума  
 
Непрочитано 27.01.2013, 07:29
#12
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 12,961


Цитата:
безболезненного решения по подгрузке файлов lsp вне зависимости от настроек автокада видимо нет.
Есть. Просто ты упорно не выполняешь то, на что тебе уже акцентировали внимание и "большими" буквами. Только реализовать это надо правильно. Можно сделать так, чтобы часть "программ" загружалась всегда, и чтобы пользователь мог что-то дополнительно подгрузить.

Полной "вне зависимости" достигать не надо. Должна быть одна основная "настройка" - профиль. Всё остальное прилагается.
ShaggyDoc вне форума  
 
Автор темы   Непрочитано 27.01.2013, 17:37
#13
overband

Инженер-конструктор
 
Регистрация: 25.02.2008
Москва
Сообщений: 142


Цитата:
Сообщение от gomer Посмотреть сообщение
И где логика?
Логика в том, что этому товарищу ДРУГИЕ знающие люди могут что-то понаставить. Это раз. А во-вторых, некоторые программки имеют инсталлер и у "не особо разбирающихся в тонкостях" хватает ума и способностей их самостоятельно установить. А потом выясняется, что программка пропала, потому что установили СПДС со своим профилем. А иногда действительно логики вроде бы нет, когда в настройки не лазили, ничего не меняли а программка исчезла из автозагрузки и хрен поймешь как это объяснить.
Цитата:
Сообщение от gomer Посмотреть сообщение
Невежество и жадность - главный бич человеческого бытия
Ну и где здесь невежество и жадность? Не вижу ни того ни другого.
Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Есть. Просто ты упорно не выполняешь то, на что тебе уже акцентировали внимание и "большими" буквами. Только реализовать это надо правильно. Можно сделать так, чтобы часть "программ" загружалась всегда, и чтобы пользователь мог что-то дополнительно подгрузить.
Полной "вне зависимости" достигать не надо. Должна быть одна основная "настройка" - профиль. Всё остальное прилагается.
Акцентировали внимание на том, что ПРЯМО ПРОТИВОПОЛОЖНО тому, о чем я спрашивал! И к чему такие акценты?
В том то вся и проблема - надо избавиться от зависимости от профиля! Чтобы говоря простым языком команда написанная на lisp была уравнена в правах с командами LINE СIRCLE и т.д.
Другой вопрос, что это невозможно и вполне вероятно неправомерно. Но это уже другая история.
Еще раз подчеркиваю, основная задача по сути заключается в поиске условно говоря "защиты от дурака" для lisp команд. Чтобы не было вероятности их "неподгружения".
Полной "вне зависимости" достигать не надо когда есть 3 грамотных сисадмина под рукой, а когда их нет, как в большинстве фирм в России, то конструкторы сами совмещают все возможные профессии и программирование в том числе. Поэтому, многие и работают на голых автокадах, потому что так хотя бы есть уверенность, что никакая из команд внезапно не "отвалится". А за эффективность работы у нас не доплачивают.
overband вне форума  
 
Непрочитано 27.01.2013, 18:06
#14
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,617


Если команда вызывается кнопкой, то загрузку нужного лиспа можно прописать в макросе этой кнопки. Например, так:
Код:
[Выделить все]
^C^C(if(null C:one)(Load "one.lsp"));one;
Папка с лиспами должна быть прописана в путях доступа. Плюс это даст прирост к скорости открытия чертежа, если файлов в автозагрузке много.

Последний раз редактировалось skkkk, 27.01.2013 в 18:39.
skkkk на форуме  
 
Непрочитано 27.01.2013, 18:34 skkkk
#15
perpetule


 
Регистрация: 23.09.2008
Волгоград
Сообщений: 810
<phrase 1= Отправить сообщение для perpetule с помощью Skype™


Это замечательно, большинство кнопок у меня сейчас так и оформлено, но есть еще *.arx, *.vlx, *.dll с ними то что делать? Help!
perpetule вне форума  
 
Непрочитано 27.01.2013, 18:45
#16
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,617


К сожалению, я не использую *.arx, *.vlx и *.dll - и не смогу подсказать на этот счет, но вопрос темы подразумевает только *.lsp.
skkkk на форуме  
 
Непрочитано 27.01.2013, 19:22
#17
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 38,703


Вот придумываете лисапед себе на голову... Все уже есть, и очень давно: http://autolisp.ru/2012/06/10/app-au...-another-path/
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 27.01.2013, 19:47
2 | #18
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,834
<phrase 1=


Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Должна быть одна основная "настройка" - профиль.
Полностью согласен.
О чём и писал в пп. 6,9
К сожалению в Автокад"е другого способа практически нет. Способ с *.mnl ИМХО менее универсален.
А вот из acad*.lsp (я обычно использую acaddoc.lsp) можно вызывать любой ЛИСП. Например:
Код:
[Выделить все]
(defun s::startup()
  (load "main.vlx" )
  (princ)
)
А там и меню подгрузить и что-то еще...
Что касается профиля/профилей
Первое, что я делаю после первого запуска установленного Автокада - это создаю профиль "по умолчанию",
но не тот, который создаёт сам Автокад в HCU\..........\Profiles\<<Профиль без имени>>
- а свой с именем acad. (который сохраняю еще и в файл acad.arg)
Тогда ярлык вызова Автокада выглядит так "D:\Program Files\AutoCAD 2008\acad.exe" /p "D:\Program Files\AutoCAD 2008\acad.arg"
И никаких дополнительных путей и текстов в автозагрузку в этот профиль не записываете.
Для чего это делается? Потом начинается "улучшение Автокада" разными сторонними ЛИСПами, но для этих улучшений сделайте свои поименованные профили.
Конструктор 1, сделает свой профиль - konstr1, со своими дополнительными путями, прожками и автозагрузками и т.д.
У меня вызывается так с одного рабочего стола Автокад "для электрика", "для технолога" и т.д.
Когда понадобится "чистый" Автокад, без всех приблуд, вы вызываете его вот тем самым вышеописанным ярлыком с профилем acad.
И будет Вам счастье, а не вопросы "Как избавиться от CS Studio или прога - Конструктор 1?", если она вам в этот момент не нужна
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Непрочитано 27.01.2013, 20:10 наверно так
#19
perpetule


 
Регистрация: 23.09.2008
Волгоград
Сообщений: 810
<phrase 1= Отправить сообщение для perpetule с помощью Skype™


в конец
acad*.lsp

;---------------------------------------------------------------------------------------
;c:\Program Files\Autodesk\AutoCAD 2011\Support\acad2011.lsp
;;; TC71 2012-07-03
;;; (load "NAME.lsp")
(load "1-LOAD-ME-TC71")
;
;-------------------------------------------------------------------------
;
;
;;; (load "NAME") ; без .lsp
(load "CF")
(load "flatten")
(load "Flatten2")
(load "math")
(load "pltools")
(load "CopyBlock-VVA")
(load "AsmiTools-Mpl")
(load "AsmiTools_Talon")
(load "AsmiTools_Ttc")
(load "color sheme")
(load "00003-Kr_DeleteAllObjectScale-V001")
(load "LOADQSP")
(load "LSTATT")
(load "norm-blocks")
(load "page_setup")
(load "PL_Lib")
(load "PL_XRefChgr")
(load "rename-all-blocks-in-all-docs-in-select-folder")
(load "SUMMATOR")
(load "z0")
(load "FAST_SELECT")
(load "layout")
(load "get-last-select")
(load "NumInc")
(load "DDCHPROP")
(load "DTextTL")
(load "easyplot")
(load "LTEXTRACT")
;
;
;---------------------------------------------------------------------------------------
;
;; Silent load.
(princ)


1-LOAD-ME-TC71.lsp

;;;
;;; предварительно записываем файл (acad2011.lsp) в
;;; c:\Program Files\Autodesk\AutoCAD 2011\Support\acad2011.lsp
;;; в нем (acad2011.lsp) прописаны
;;; *.lsp в автозагрузку (из папок по путям доступа) в том числе (в конце)
;;; файл который вы сейчас читаете (load "1-LOAD-ME-TC71")
;;;
;;; здесь подгружаются *.arx
;;; (arxload "NAME.arx")
(arxload "DWGConvert2010x64.arx")
(arxload "ExplodeProxy2010x64.arx")
(arxload "GsTest.arx")
;(arxload "MdiTab18.arx")
; (arxload "qqarx.arx")
; (arxload "qqdelphidll.arx")
; (arxload "SelSim2010x64.arx")
;
(setvar "CMDECHO" 1)
;
;;;
;;; здесь подгружаются *.vlx
;;; (load "NAME.vlx")
(load "sysvar.vlx")
;(load "viewsblk.vlx") не срабатывает, грузить через портфель
;
(princ)

Последний раз редактировалось perpetule, 27.01.2013 в 20:22.
perpetule вне форума  
 
Непрочитано 27.01.2013, 20:19
#20
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 38,703


perpetule, тэги [code][lisp][/lisp][/code] придуманы не просто так.
P.S. Когда количество файлов превысит все допустимые пределы, каково будет редактировать такой файлик?
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Что прописать в acad.lsp чтобы всегда загружались пользовательские лисп команды?

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разработка ПОС, искусство проектирования Tyhig Технология и организация строительства 117 25.11.2021 17:38
Какой язык перспективен для инженера-конструктора с условием The_Mercy_Seat Программирование 705 17.03.2021 14:19
запуск программы из AutoCADа kminas Программирование 19 15.06.2012 13:42