Выполнение кода при запуске Autocad

Автор Тема: Выполнение кода при запуске Autocad  (Прочитано 2912 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

Оффлайн KsarrikАвтор темы

  • ADN OPEN
  • Сообщений: 35
  • Карма: 2
Добрый день. Возможно ли запускать выполнение кода автоматически при запуске Autocad?? Просто есть необходимость в открытии и обработке файлов dwg в не рабочее время, без участия пользователя, например через планировщик заданий запускается autocad в не рабочее время и автоматически плагином запускается обработка файлов dwg.
Например чтобы открыть документ код:
Код - C# [Выбрать]
  1. [CommandMethod("OpenTest")]
  2.         public void OpenTest()
  3.         {
  4.             try
  5.             {
  6.                 DocumentCollection docMgr = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager;
  7.                 Document ndoc = docMgr.Open(@"C:\Users\ivanov\Work\\Проект для выгрузки.dwg", false);
  8.                 if (ndoc != null)
  9.                 {
  10.                     docMgr.MdiActiveDocument = ndoc;
  11. //обработка документа
  12.                 }
  13.             }
  14.             catch (System.Exception ex)
  15.             {
  16.                 Application.DocumentManager.MdiActiveDocument.Editor.WriteMessage(ex.ToString());
  17.             }
  18.         }
  19.  

Нормально работает если приложение уже запущено, но я не знаю как запустить его выполнение автоматически при запуске Autocad.
Если я использую этот код в методе Initialize() приложения, то ничего не происходит.

Либо как другой вариант запуск выполнения кода по таймеру.
Возможно ли такое реализовать?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Выполнение кода при запуске Autocad
« Ответ #1 : 06-05-2022, 09:57:35 »
Ksarrik,
Намного логичнее выглядит (с учетом того, что взаимодействие с пользователем не требуется) вместо AutoCAD использование AcCoreConsole.exe который бы запускался Планировщиком заданий Windows (ну или своим exe-приложением)
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн KsarrikАвтор темы

  • ADN OPEN
  • Сообщений: 35
  • Карма: 2
Re: Выполнение кода при запуске Autocad
« Ответ #2 : 06-05-2022, 10:03:49 »
У меня приложение написано уже для Civil3D и  при запуске по кнопке все успешно работает, теперь думаю как это реализовать автоматически, поскольку получил такое задание.

Отмечено как Решение Ksarrik 06-05-2022, 10:19:30

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Выполнение кода при запуске Autocad
« Ответ #3 : 06-05-2022, 10:10:01 »
У меня приложение написано уже для Civil3D и  при запуске по кнопке все успешно работает, теперь думаю как это реализовать автоматически, поскольку получил такое задание.
Как ты загружаешь свое приложение в Civil3D? Если используешь Autoloader (PackageContents.xml), то достаточно указать StartupCommand и команда запустится после загрузки твоего приложения.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн KsarrikАвтор темы

  • ADN OPEN
  • Сообщений: 35
  • Карма: 2
Re: Выполнение кода при запуске Autocad
« Ответ #4 : 06-05-2022, 10:18:19 »
Я использую Autoloader, а StartupCommand указывается в PackageContents.xml??

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Выполнение кода при запуске Autocad
« Ответ #5 : 06-05-2022, 10:20:15 »
Я использую Autoloader, а StartupCommand указывается в PackageContents.xml??
Да. https://adndevblog.typepad.com/autocad/2012/04/autoloader-the-startupcommand-parameter.html
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн KsarrikАвтор темы

  • ADN OPEN
  • Сообщений: 35
  • Карма: 2
Re: Выполнение кода при запуске Autocad
« Ответ #6 : 06-05-2022, 10:59:23 »
В дополнение к данному вопросу (чтобы не создавать новую тему). А как запустить Civil3D через Process.Start() и открыть конкретный файл? Просто я смотрю ярлык Civil3D он указывает как я понимаю на Acad.exe. Если на одном пк установлен и Autocad 2022 и Civil3d 2022, оба запускаются с одного файла acad.exe. То как передать аргумент, что нужно запускать именно Civil3D а не Autocad?
Причем почему то при запуске:
Код - C# [Выбрать]
  1. Process.Start(@"C:\Program Files\Autodesk\AutoCAD 2022\Acad.exe", @"C:\Users\strelnikovdv\Work\Скачка\Проект для выгрузки nwc.dwg");
  2.  
Он почему то выдает что файл не существует, хотя он существует.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Выполнение кода при запуске Autocad
« Ответ #7 : 06-05-2022, 11:10:23 »
Просто я смотрю ярлык Civil3D он указывает как я понимаю на Acad.exe. Если на одном пк установлен и Autocad 2022 и Civil3d 2022, оба запускаются с одного файла acad.exe. То как передать аргумент, что нужно запускать именно Civil3D а не Autocad?
Смотри ключ  /product в ярлыке и передавай правильный: https://knowledge.autodesk.com/ru/support/autocad/learn-explore/caas/sfdcarticles/sfdcarticles/RUS/Startup-switches-for-AutoCAD.html
Он почему то выдает что файл не существует, хотя он существует.
Подозреваю что не хватает двойных кавычек в начале и конце имени файла.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн KsarrikАвтор темы

  • ADN OPEN
  • Сообщений: 35
  • Карма: 2
Re: Выполнение кода при запуске Autocad
« Ответ #8 : 06-05-2022, 11:33:28 »
Спасибо. Как я понял должно быть что-то вроде этого:
Код - C# [Выбрать]
  1. Process.Start(@"C:\Program Files\Autodesk\AutoCAD 2022\Acad.exe", @"""C:\Users\strelnikovdv\Workкачка\Template.dwg"" /product C3D");
  2.  

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Выполнение кода при запуске Autocad
« Ответ #9 : 06-05-2022, 11:35:21 »
Спасибо. Как я понял должно быть что-то вроде этого:
Код - C# [Выбрать]
  1. Process.Start(@"C:\Program Files\Autodesk\AutoCAD 2022\Acad.exe", @"""C:\Users\strelnikovdv\Workкачка\Template.dwg"" /product C3D");
  2.  
Скорее так:
Код - C# [Выбрать]
  1. Process.Start(@"C:\Program Files\Autodesk\AutoCAD 2022\Acad.exe", "/product C3D " + @"""C:\Users\strelnikovdv\Workкачка\Template.dwg"");
  2.  

Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение