Сообщество программистов Autodesk в СНГ

ADN Club => AutoCAD .NET API => Тема начата: Yusuf от 11-11-2020, 15:15:20

Название: Получить путь к папке расположения pc3 файлов
Отправлено: Yusuf от 11-11-2020, 15:15:20
Подскажите как получить путь C:\\Users\\имя пользователя\\AppData\\Roaming\\Autodesk\\версия autocad\\R23.0\\enu\\Plotters\\DWG To PDF.pc3. У меня есть свой pc3 файл хочу чтобы пользователи закинули его в свои папки где лежат pc3, потом читать оттуда форматы листов, если ли возможность хранить этот файл в одном месте где то на сервере и задавать в настройки печати SetPlotConfigurationName  путь сервера, пробовал указывать абсолютный путь, ругается?
Название: Re: Получить путь к папке расположения pc3 файлов
Отправлено: Александр Ривилис от 11-11-2020, 15:26:44
На AutoLisp - так:
Код - Auto/Visual Lisp [Выбрать]
  1. (getenv "PrinterConfigDir")
С использованием AutoCAD .NET API попробуй так:
Код - C# [Выбрать]
  1. HostApplicationServices.Current.GetEnvironmentVariable("PrinterConfigDir");
Только учти, что там может быть не один путь. И если их несколько, то они разделяются точкой с запятой.
Название: Re: Получить путь к папке расположения pc3 файлов
Отправлено: Александр Ривилис от 11-11-2020, 15:28:08
пробовал указывать абсолютный путь, ругается?
Как ругается? И может быть неправильно задавал путь к серверу?
Название: Re: Получить путь к папке расположения pc3 файлов
Отправлено: Yusuf от 11-11-2020, 15:36:30
Как ругается? И может быть неправильно задавал путь к серверу?
так пробовал \\\\server\\Users\\DWG To PDF.pc3" и так @"\\server\Users\DWG To PDF.pc3", "eInvalidInput" говорит
Название: Re: Получить путь к папке расположения pc3 файлов
Отправлено: Yusuf от 11-11-2020, 15:41:05
На AutoLisp - так:
Код - Auto/Visual Lisp [Выбрать]
  1. (getenv "PrinterConfigDir")
С использованием AutoCAD .NET API попробуй так:
Код - C# [Выбрать]
  1. HostApplicationServices.Current.GetEnvironmentVariable("PrinterConfigDir");
Только учти, что там может быть не один путь. И если их несколько, то они разделяются точкой с запятой.
ура, у меня показывает правильно, а как учесть эти пути если их несколько и найти свой файл или обозвать DWG To PDF.pc3 как то по другому и искать его?
Название: Re: Получить путь к папке расположения pc3 файлов
Отправлено: Александр Ривилис от 11-11-2020, 15:45:57
Во-первых, начни с этого, если собираешься помещать pc3-файл на сервер: https://knowledge.autodesk.com/ru/support/autocad/learn-explore/caas/sfdcarticles/sfdcarticles/RUS/Use-plotter-configuration-files-from-network.html
Во-вторых, переименовать точно придётся иначе непонятно какой файл будет найден.

Название: Re: Получить путь к папке расположения pc3 файлов
Отправлено: Yusuf от 11-11-2020, 15:56:18
Во-первых, начни с этого, если собираешься помещать pc3-файл на сервер: https://knowledge.autodesk.com/ru/support/autocad/learn-explore/caas/sfdcarticles/sfdcarticles/RUS/Use-plotter-configuration-files-from-network.html
Во-вторых, переименовать точно придётся иначе непонятно какой файл будет найден.
спасибо, а от версии Autocad надеюсь не зависят pc3 файлы, а можно ли это все сделать программно, изменять на 300 компьютерах буду долго наверно. Видел от Кулика видео как управлять autocad через acaddoc.lsp, там можно прописать это все?
Хмм, опять возникает вопрос acaddoc.lsp тоже наверно зависит от версий и потом в первый раз все равно всем надо указывать чтобы читали acaddoc.lsp файл с сервера.
Название: Re: Получить путь к папке расположения pc3 файлов
Отправлено: Александр Ривилис от 11-11-2020, 16:04:45
а от версии Autocad надеюсь не зависят pc3 файлы
Вообще-то, насколько я помню, зависят.
Видел от Кулика видео как управлять autocad через acaddoc.lsp, там можно прописать это все?
Зачем lisp, если ты можешь это же сделать в своём приложении. Допустим, ты переименовал файл "DWG To PDF.pc3" в "DWG To PDF - Yusuf.pc3" и поместил на сервер, в известную тебе папку. Дальше при загрузке своей сборки ты лезешь в эту папку и копируешь этот файл в первый из каталогов в PrinterConfigDir. Ну а в своей программе используешь уже в качестве имени "DWG To PDF - Yusuf.pc3". Только не забудь и про pmp-файл, который нужно поместить в этот каталог: (getenv "PrinterDescDir")
Название: Re: Получить путь к папке расположения pc3 файлов
Отправлено: Yusuf от 11-11-2020, 16:07:51
Дальше при загрузке своей сборки ты лезешь в эту папку и копируешь этот файл в первый из каталогов в PrinterConfigDir. Ну а в своей программе используешь уже в качестве имени "DWG To PDF - Yusuf.pc3". Только не забудь и про pmp-файл, который нужно поместить в этот каталог: (getenv "PrinterDescDir")
оо крутое решение подсказали а то я хотел заставить пользователей копировать в ручную, еше раз спасибо
Название: Re: Получить путь к папке расположения pc3 файлов
Отправлено: Yusuf от 11-11-2020, 16:14:44
Дальше при загрузке своей сборки ты лезешь в эту папку и копируешь этот файл в первый из каталогов в PrinterConfigDir.
а при копировании не попросит админ права?
Название: Re: Получить путь к папке расположения pc3 файлов
Отправлено: Александр Ривилис от 11-11-2020, 16:17:52
Yusuf,
Нет. Этот каталог у каждого пользователя свой и должен быть доступен на уровне обычного пользователя. Иначе AutoCAD бы не запускался.
Важно чтобы был доступ на чтение к тому файлу (или файлам) на сервере, который ты собираешься копировать.