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

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

Lisp. как сделать так чтобы лисп из acaddoc.lsp загружалсяпосле загрузки файла?

Ответ
Поиск в этой теме
Непрочитано 22.12.2016, 13:25 #1
Lisp. как сделать так чтобы лисп из acaddoc.lsp загружалсяпосле загрузки файла?
Composter
 
Отопление и вентиляция
 
Москва
Регистрация: 31.10.2008
Сообщений: 445

Добрый день . попытался автоматизировать процесс, у меня есть папка с пустым файлом dwg, в этой папке лежит файл acaddoc.lsp . вот его код
Код:
[Выделить все]
 (vl-load-com)
(defun recover_all_01 ( / pth filelst)
(setq pth  (strcat (getvar "DWGPREFIX") "recover\\"))
(setq filelst (vl-directory-files pth "*.dwg"))
(foreach file filelst (command "recoverall" (strcat pth file)) )
(princ)
)
(recover_all_01)
при запуске файла dwg , он выдает ошибку файл приложил.
если же самому набрать в строке (recover_all_01) , то все работает как надо.
подскажите что я делаю не так

Миниатюры
Нажмите на изображение для увеличения
Название: recover.png
Просмотров: 35
Размер:	58.9 Кб
ID:	181254  


Последний раз редактировалось Composter, 22.12.2016 в 14:40.
Просмотров: 1614
 
Непрочитано 22.12.2016, 14:17
#2
Кулик Алексей aka kpblc
Moderator

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


1. Версия ACAD?
2. Что с безопасностью?
3. Почему бы не дополнять стандартную последнюю выполняемую функцию s::startup?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 22.12.2016, 14:46
#3
Composter

Отопление и вентиляция
 
Регистрация: 31.10.2008
Москва
Сообщений: 445


1)автокад 2014
2)SECURELOAD 1 , соответвенно при загрузке файла автокад запрашивает загрузить acaddoc.lsp , отвечаю да. может еще что то нужно?
3)я хочу чтобы у меня была папка в котороую я закидываю файлы, а автокад обрабатывал без моего вмешательства и больше никуда не подгружая этот код.

я так понимаю что это из-за того что я запускаю процедуру автокада не дав еще полностью подгрузиться файлу.....хотя могу и ошибаться
Composter вне форума  
 
Непрочитано 22.12.2016, 15:56
#4
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от Composter Посмотреть сообщение
я так понимаю что это из-за того что я запускаю процедуру автокада не дав еще полностью подгрузиться файлу.
ИМХО так оно и есть.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 22.12.2016, 16:10
#5
Composter

Отопление и вентиляция
 
Регистрация: 31.10.2008
Москва
Сообщений: 445


а как-нибдь можно сделать чтобы скрипт из acaddoc.lsp (которые есть только в нем) загружался уже после загрузки файла ?
Composter вне форума  
 
Непрочитано 22.12.2016, 16:18
#6
Profan


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


Восстановление файла вообще желательно делать до его загрузки, поэтому в команде "_recover" по умолчанию и предлагается выбрать файл вручную.
Profan вне форума  
 
Автор темы   Непрочитано 22.12.2016, 16:24
#7
Composter

Отопление и вентиляция
 
Регистрация: 31.10.2008
Москва
Сообщений: 445


так я делаю восттановление файлов во вложенной папке,по отоношению к той папке где лежит acaddoc.lsp и dwg, а не самого файла
Composter вне форума  
 
Непрочитано 22.12.2016, 16:29
#8
Profan


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


Так сделай кнопку. Или ты думал, что восстановление кучи файлов вместе с внешними ссылками будет выполняться фоново?
Profan вне форума  
 
Непрочитано 22.12.2016, 16:32
#9
Кулик Алексей aka kpblc
Moderator

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


На adn-cis.org были статьи по загрузке приложений - советую почитать.
И да, порядок загрузки изменить невозможно.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 22.12.2016, 16:51
#10
Composter

Отопление и вентиляция
 
Регистрация: 31.10.2008
Москва
Сообщений: 445


Цитата:
Сообщение от Profan Посмотреть сообщение
Так сделай кнопку. Или ты думал, что восстановление кучи файлов вместе с внешними ссылками будет выполняться фоново?
ну так оно так в этом лиспе выполняется. только это можно сделать после загрузки файла.

Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
На adn-cis.org были статьи по загрузке приложений - советую почитать.
И да, порядок загрузки изменить невозможно.
спасибо уже видел, но там все через автозагрузку

придется вручную запускать лисп. надо только ahk прикрутить чтобы закрывал файл после проверки и автоматически переходил к следующему

а окошко которое появляется после recoverall нельзя подавить?

----- добавлено через ~6 ч. -----
не сразу понял что сделать надо динамическую кнопку.
вот смотрите, я написал следущее
Код:
[Выделить все]
(vl-load-com)

(defun recover_all_01 ( / pth filelst)
(setq pth  (strcat (getvar "DWGPREFIX") "recover\\"))
(setq filelst (vl-directory-files pth "*.dwg"))
(foreach file filelst (command "recoverall" (strcat pth file)) )
(princ)
)
(defun C:recover_all_01()(recover_all_01))

(defun create_toolbar ( / )
(vla-add(vla-get-toolbars (vla-item (vla-get-menugroups (vlax-get-acad-object))   "ACAD"   )        )"temp758")
(vla-addtoolbarbutton(vla-item(vla-get-toolbars (vla-item (vla-get-menugroups (vlax-get-acad-object))"ACAD"))"temp758") 0 "recovery" "recovery" "recover_all_01 " )
(vla-addtoolbarbutton(vla-item(vla-get-toolbars (vla-item (vla-get-menugroups (vlax-get-acad-object))"ACAD"))"temp758") 1 "unload" "unload" "unload_toolbar ")
(princ)
)
(defun C:create_toolbar()(create_toolbar))

(defun unload_toolbar ( / )
(vla-delete (vla-item(vla-get-toolbars (vla-item (vla-get-menugroups (vlax-get-acad-object))"ACAD"))"temp758"))
)
(defun C:unload_toolbar()(unload_toolbar))

(create_toolbar)
он почему то загрузился 1 раз при запуске файла (т.е. подгрузилась панель ), а в следующие разы ничего не загружалось. что у меня не так?

Последний раз редактировалось Composter, 22.12.2016 в 16:58.
Composter вне форума  
 
Автор темы   Непрочитано 23.12.2016, 16:01
#11
Composter

Отопление и вентиляция
 
Регистрация: 31.10.2008
Москва
Сообщений: 445


допилил еще ahk скрипт ,который закрывает окно без участия пользователя.

инструкция
содержимое архива кудаете в любую папку, файлы для проверки ошибок кидать во вложенную папку, после этого запустить файл. он запустит acaddoc.lsp, который подгрузит панель с 2 кнопками: 1) провести проверку 2) удалить панель .
чтобы вручную не закрывать окно рекомендую устнановатиить Autohotkey и запусутить файл closewindow.ahk, который будет автоматически закрывать появляющиеся окна. его действие можно прекратить клавишей F12 либо через час он самоликвидируется
Вложения
Тип файла: zip Recoverall.zip (83.0 Кб, 9 просмотров)
Composter вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Lisp. как сделать так чтобы лисп из acaddoc.lsp загружалсяпосле загрузки файла?

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
AUTOCAD 2010 перестал переключаться в многооконный режим. Проблемы с переменными Андрей Х. AutoCAD 24 27.05.2015 10:17
почему не работает lisp Jonas LISP 11 25.01.2012 18:41
Плохо работает OTRACK(ОТС-ОБЪЕКТ) в 3D начиная с 2008 Акада. Astartes AutoCAD 3 18.01.2012 11:55
Lisp. не работает программа ndrsrv LISP 2 17.04.2011 21:33
Lisp (отрисовка колонны) не работает dextron3 LISP 5 26.07.2008 20:14