Тема: ошибка: настройка переменной AutoCAD была отвергнута 2
или может кто знает, в какой переменной хряняться пути к вспомогательным файлам печати? (если такая переменная вообще существует)
спасибо
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → LISP → ошибка: настройка переменной AutoCAD была отвергнута 2
Чтобы отправить ответ, вы должны войти или зарегистрироваться
или может кто знает, в какой переменной хряняться пути к вспомогательным файлам печати? (если такая переменная вообще существует)
спасибо
ммм....я понимаю, что в реестре, тогда как мне изменить эти пути программно, т.е. в LISPе?
Спасибо.
(vl-registry-read) на пару с (vl-registry-write)
> Natik
Попробуйте посмотреть
Сервис-Настройка-Путь к вспомогательным файлам печати
И проверьте заданные там значения.
получить пути
(vl-load-com) (defun Test (Path / FilesObj) (setq FilesObj (vla-get-Files (vla-get-Preferences (vlax-get-acad-object)))) (list (vla-get-PrintSpoolerPath FilesObj) (vla-get-PrinterConfigPath FilesObj) (vla-get-PrinterDescPath FilesObj) (car (list (vla-get-PrinterStyleSheetPath FilesObj) (vlax-release-object FilesObj) ) ) ) )
ну а что би изменить вместо get - put
> Кулик Алексей aka kpblc
> Vovka
спасибо! посмотрю..сейчас пробую настроить свой профиль и тогда после установки его ставить....опять же, получается одно лишнее действие..
> Alan
смотреть их - не помогает, надо их ставить свои.
и все -таки я замучилась с этими путями, вот в с профилем идея уже кажется лучше, потому что пути на каждом компьютере будут отличаться хотя бы пользователем...как же я сразу не подумала...и задать их мне кажется уже нереальным, как вы думаете?? сейчас я вручную прописала эти три пути, которые не рабочие, в нужной версии развертки и экспортировала этот профиль, т.е. сохранила файл arg. И сейчас возникла проблема: как этот профиль установить по умолчанию????
спасибо заранее.
cprofile только для чтения.
что делать?
И сейчас возникла проблема: как этот профиль установить по умолчанию????
Самый простой способ в ярлыке (у меня профиль и темплет):
"D:\Program Files\AutoCAD 2006\acad.exe" /p "D:\Program Files\ПАРКС2006\parks2006.arg" /t "D:\Program Files\ПАРКС2006\acad-par.dwt"
или программно для той же программы:
"D:\Program Files\ПАРКС2006\Starter.exe"
Программный выбор профиля на форуме был
путь к профилю пользователя Windows можно узнать с помощью (getenv "USERPROFILE")
> Alan
я честно не нашла на форуме, может вы помните где или ссылочка есть?....ну и не менять же мне свойства ярлыка вручную на каждом компе....я же говорю, мне надо это все дело автоматизировать, уже почти все готово и только пути к файлам печати нерабочие!! их там всего три...мне нужно что-нибудь такое, чтобы записать код в acaddoc и acad и чтобы все автоматически ставилось, что надо.
> Vovka
ок, спасибо, сейчас посмотрю, я полагаю, что утановить - setenv....если что еще напишу))
ничего не могу придумать...может быть еще что-нибудь можно сделать?
Если втупупю:
(defun set-paths (lst / files) ;| * Установка путей поддержки плоттеров * Параметры вызова: lst список вида: '(("spool" . <Printer spooler file location>) ; nil -> Использовать ; каталог temp ("config" . <Printer config search path>) ; nil -> ; (vl-registry-read (strcat "HKEY_LOCAL_MACHINE\\" (vlax-product-key)"\\aeccabinet\\directories")"NIWPLOTTERS") ("style" . <Printer style sheet path>) ; nil -> ; (vl-registry-read (strcat "HKEY_LOCAL_MACHINE\\" (vlax-product-key)"\\aeccabinet\\directories")"NIWPLOTSTYLES") |; (vl-load-com) (setq files (vla-get-files (vla-get-preferences (vlax-get-acad-object)))) (vl-catch-all-apply '(lambda () (vla-put-printspoolerpath files (cond ((cdr (assoc "spool" lst))) (t (vla-get-tempfilepath files)) ) ;_ end of cond ) ;_ end of vla-put-printspoolerpath ) ;_ end of lambda ) ;_ end of vl-catch-all-apply (vl-catch-all-apply '(lambda () (vla-put-printerconfigpath files (cond ((cdr (assoc "config" lst))) (t (vl-registry-read (strcat "HKEY_LOCAL_MACHINE\\" (vlax-product-key) "\\aeccabinet\\directories" ) ;_ end of strcat "NIWPLOTTERS" ) ;_ end of vl-registry-read ) ) ;_ end of cond ) ;_ end of vla-put-PrinterConfigPath ) ;_ end of lambda ) ;_ end of vl-catch-all-apply (vl-catch-all-apply '(lambda () (vla-put-printerstylesheetpath files (cond ((cdr (assoc "style" lst))) (t (vl-registry-read (strcat "HKEY_LOCAL_MACHINE\\" (vlax-product-key) "\\aeccabinet\\directories" ) ;_ end of strcat "NIWPLOTSTYLES" ) ;_ end of vl-registry-read ) ) ;_ end of cond ) ;_ end of vla-put-PrinterStyleSheetPath ) ;_ end of lambda ) ;_ end of vl-catch-all-apply ) ;_ end of defun
Ногами прошу не бить за корявость кода
P.S. Примеры вызова:
(set-paths '(("spool" . "c:\\printer") ("config" . "c:\\printer\\config") ("style" . "c:\\printer\\style")))
....я туплю...но не пойму, какие пути тут устанавливаются?...кажется у меня в автокаде ничего не произошло...
> Кулик Алексей aka kpblc
сейчас я спрошу очень глупый вопрос, )) а где вызывать эту функцию и куда ее сохранить, чтоб все работало?
> Кулик Алексей aka kpblc
а еще...вот ..в каждом компе свои пути будут...как это учесть? я же не смогу вызвать эту ф-цию с конкретными путями, потому что в другом месте они будут другие, так?
а может тогда так:
(setq rrrr (getenv "USERPROFILE"))
(set-paths '(("spool" . "vl-symbol-value 'rrrr")))
-это неправильно конечно, нужно как-то установить путь так, чтобы там профиль, который мы получили, был + \\plot styles к примеру....
но здесь точечная пара и как чтобы полученная строка туда вставлялась?....
Я не очень понимаю, потому что обычно плоттеры устанавливаются в %AllUsers%, а не в текущего пользователя.
Все это бесполезно.
Я понял, почему может не сработать мой код - в "чистом" каде ветки реестра могут быть другими. Я-то проверял на ADT...
> Natik
Вернемся к самому началу. Какая версия Автокада?
Ставился под Админом, работает под Пользователем?
У меня ИМХО чёткое мнение: Автокад поставлен криво. До ЛИСПа далеко.
Не хотите в форум, пишите на почту. А где вы обитаете (город)?
> Кулик Алексей aka kpblc
да, они у меня и у всех из моей развертки в AllUsers, но так почему-то они не работают, а когда я меняю на текущего пользователя - работают, просто папок в AllUsers для плоттеров нету...не знаю почему так получается, может мне как-нибудь эти папки туда добавить?
> Alan
ну что Вы такое говорите!!! Я сама АДМИН своего компа, мне дольше объяснять Вам будет зачем все это...
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → LISP → ошибка: настройка переменной AutoCAD была отвергнута 2
Форум работает на PunBB, при поддержке Informer Technologies, Inc