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

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

Как сделать так, чтобы ЛИСПы не надо было перезагружать?

Ответ
Поиск в этой теме
Непрочитано 20.10.2006, 15:30 #1
Как сделать так, чтобы ЛИСПы не надо было перезагружать?
bimari
 
проектирование дорог
 
Riga
Регистрация: 18.10.2006
Сообщений: 25

Проблема: все лиспы после того как были appload'ены и Acad был закрыт и заново открыт, надо перезагружать заново... Не практично Что сделать, чтобы не возвращаться к этой однообразной процедуре?
Просмотров: 5586
 
Непрочитано 20.10.2006, 15:39
#2
gest

GEODATA Engineering S.p.A.
 
Регистрация: 11.02.2005
Монино
Сообщений: 686


Добавь их в автозагрузку и при старте када они буду автоматически подгружаться.
gest вне форума  
 
Непрочитано 20.10.2006, 15:42
#3
Кулик Алексей aka kpblc
Moderator

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


Поискать и использовать автозагрузчик. Один из вариантов: http://www.autocad.ru/cgi-bin/f1/board.cgi?t=19612AN
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 20.10.2006, 16:47
#4
Zouss


 
Регистрация: 14.03.2006
Сообщений: 863


варианты:
- если лисп повешен на кнопку или пункт меню - простенькая проверка типа
Код:
[Выделить все]
(if (not c:имякоманды) (load "путь к файлу"))
имякоманды
- можно все загрузки затолкать в acad.lsp или acaddoc.lsp в функцию S::startup, но почему-то у местных гуру данный способ энтузиазма не вызывает
- затолкать все лиспы в файл имядефолтногоменю.mnl и все будет загружаться при загрузке имядефолтногоменю.mnu, правда как в дветыщщишестом не знаю как дела обстоят, говорят там какой-то cui с меню
- в диалоговом окне load/unload applications есть группа под названием startup suite, где список автозагрузки вы можете настроить виЖуально
Zouss вне форума  
 
Непрочитано 20.10.2006, 17:17
#5
favorite

инженер
 
Регистрация: 05.12.2005
Москва
Сообщений: 425


Может я чего то не понял, но так помойму appload
там contents -партфель и там их загружаешь, больше перезагружать не надо будет.
favorite вне форума  
 
Непрочитано 20.10.2006, 17:28
#6
Кулик Алексей aka kpblc
Moderator

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


Но! Стоит поменять хоть один символ в полном имени файла, и все, кирдык, он не загрузится.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 20.10.2006, 17:39
#7
Zouss


 
Регистрация: 14.03.2006
Сообщений: 863


аха, а эсть способы с этим кирдыком боротся?
Zouss вне форума  
 
Непрочитано 20.10.2006, 17:47
#8
Кулик Алексей aka kpblc
Moderator

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


ZZZ по ссылке сделал функцию, которая может искать все загружаемые файлы по определенному пути с учетом вложенных папок (хоть по всему диску, или по всем), формировать список из них и - вперед (load filename) и все. Перемещай, переобзывай, все что угодно делай
У меня все мои лиспы именно так и грузятся.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 20.10.2006, 18:04
#9
Zouss


 
Регистрация: 14.03.2006
Сообщений: 863


сильно

грузятся всей мешпухой каждый раз?
Zouss вне форума  
 
Непрочитано 23.10.2006, 08:38
#10
Кулик Алексей aka kpblc
Moderator

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


Ага. Это лично мне (подчеркиваю - лично мне!) оказалось проще, чем в процессе работы постоянно отлавливать - загружена или нет та или иная функция. Путь прописывается при установке в реестр, лоадер читает его оттуда и вперед
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 24.10.2006, 09:49
#11
gest

GEODATA Engineering S.p.A.
 
Регистрация: 11.02.2005
Монино
Сообщений: 686


kpblc Не подскажешь возможно прописать в программу ZZZ путь к папке с приложениями, чтобы при старте када автоматически подгружались все приложения, без запуска функции. Т.е. полность автоматизировать процесс запуска.
gest вне форума  
 
Непрочитано 24.10.2006, 10:18
#12
Кулик Алексей aka kpblc
Moderator

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


Возможно. Если коротко, методика, честно слизанная с ruCAD'a и немного переделанная:
Делается инсталлер (с помощью того же InnoSetup), который прописывает в реестр в строго определенное место (к примеру, HKEY_LOCAL_MACHINE\Software\MyAdds_I_PUST_ONO_PODAVITSA) путь, куда установлены дополнения. Потом этот путь читается в том же самом mnl, к примеру, и подставляется для функции ZZZ.
Можно, используя AcadInstall, и автозагрузку прописать, но я в свое время отказался (возможно, не навсегда) от такого загрузчика и перевел все в mnl. Пока работает
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 24.10.2006, 10:27
#13
gest

GEODATA Engineering S.p.A.
 
Регистрация: 11.02.2005
Монино
Сообщений: 686


Спасибо, только создание инсталлятора для меня пока неподъемная задача.
gest вне форума  
 
Непрочитано 24.10.2006, 10:41
#14
Кулик Алексей aka kpblc
Moderator

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


Так там в принципе ничего сложного нет:
качаем innosetup с http://www.jrsoftware.org/isinfo.php (я дополнительно пользуюсь ISTools (http://www.istool.org/default.aspx/) - прибамбас для innosetup, делает скрипт установки в графическом режиме. После того, как закачаешь, подсунь такой пример ISTools'y:
Код:
[Выделить все]
[Setup]
SolidCompression=true
AppCopyright=МОЕ
AppName=Мои дополнение и пусть оно подавится
AppVerName=Нехай будет 1.1.165
VersionInfoVersion=1.1.165
PrivilegesRequired=admin
DefaultDirName={pf}\CADAdds
DefaultGroupName=CADAdds
ShowLanguageDialog=no
OutputBaseFilename=MyAdds
UninstallLogMode=overwrite
DisableFinishedPage=false
DisableReadyPage=true
UsePreviousTasks=true
UsePreviousGroup=true
AppendDefaultGroupName=true
WindowShowCaption=false
WindowStartMaximized=false
WindowResizable=false
LanguageDetectionMethod=locale
ShowTasksTreeLines=false
DisableStartupPrompt=false
;InfoBeforeFile=history.txt
InternalCompressLevel=ultra
[Files]
Source: lsp\_kpblc*.lsp; DestDir: {app}\lsp; Flags: recursesubdirs; Components: main
Source: dcl\*.DCL; DestDir: {app}\dcl; Flags: recursesubdirs; Components: main
Source: Menu\*.mnu; DestDir: {app}\menu; Components: main
Source: Menu\*.dll; DestDir: {app}\menu; Components: main; Flags: replacesameversion recursesubdirs
Source: Blocks\*.dwg; DestDir: {app}\blocks; Flags: recursesubdirs; Components: main
Source: arx\*.arx; DestDir: {app}\arx; Flags: recursesubdirs replacesameversion; Components: main
Source: *.shx; DestDir: {app}; Components: main
Source: tp2005\*.*; DestDir: {app}\tp2005; Components: tp2005; Flags: recursesubdirs
Source: Tp2005\*.*; DestDir: {app}\tp2006; Components: tp2006; Flags: recursesubdirs
Source: Menu\*.mnl; DestDir: {app}\menu; Components: main
Source: lsp\kpblc*.lsp; DestDir: {app}\lsp; Flags: recursesubdirs; Components: main
[Registry]
Root: HKLM; Subkey: SOFTWARE\CADAdds\CAD; ValueType: string; ValueName: RootDir; ValueData: {app}; Flags: uninsdeletekey; Components: main
Root: HKLM; Subkey: SOFTWARE\CADAdds\CAD; ValueType: string; ValueName: ToolPaletteDir16.1; ValueData: {app}\tp2005; Flags: uninsdeletekey
Root: HKLM; Subkey: SOFTWARE\CADAdds\CAD; ValueType: string; ValueName: ToolPaletteDir16.2; ValueData: {app}\tp2006; Flags: uninsdeletekey
Root: HKCU; Subkey: SOFTWARE\CADAdds\CAD; ValueType: string; ValueName: Ver; ValueData: 1.2.13; Flags: uninsdeletekey
[Components]
Name: Main; Description: Основная часть; Flags: fixed; Types: custom full compact
Name: tp2005; Description: Палитры инструментов 2005; Types: custom full
Name: tp2006; Description: Палитры инструментов 2006; Types: custom full
Только запускать не вздумай! Походи по закладкам, посмотри, что откуда и с какими правилами берется и засовывается. Все достаточно просто Скрипт пишется один раз и потом только множатся версии
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Как сделать так, чтобы ЛИСПы не надо было перезагружать?

Размещение рекламы