Можно ли в консольном приложении работать с AutoCad как com-объектом

Автор Тема: Можно ли в консольном приложении работать с AutoCad как com-объектом  (Прочитано 11787 раз)

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

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Борис_САвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 238
  • Карма: 3
Написал такой код для загрузки файла чертежа:
Код - C# [Выбрать]
  1. using System;
  2. using Autodesk.AutoCAD.ApplicationServices;
  3. using Autodesk.AutoCAD.DatabaseServices;
  4. using Autodesk.AutoCAD.EditorInput;
  5. using Autodesk.AutoCAD.Geometry;
  6. using Autodesk.AutoCAD.Runtime;
  7.  
  8. namespace PackageNormaAuditApp
  9. {
  10.     public class DwgParser:IParser
  11.     {
  12.         public override bool OpenFile(string filePath)
  13.         {
  14.             string localFile;
  15.             try
  16.             {
  17.                 dynamic app = Application.AcadApplication;
  18.                 app.ActiveDocument.Utility.GetRemoteFile(filePath, out localFile, true);
  19.                 return true;
  20.             }
  21.             catch (System.Exception e)
  22.             {
  23.                 Logger.Log("Ошибка открытия файла: " + e.Message, ILogger.Severities.Error);
  24.                 string message = String.Format("Ошибка открытия файла \"{0}\". {1}\n{2}\n{3}",
  25.                     filePath, e.Message, e.StackTrace.TrimStart(), Environment.NewLine.Trim());
  26.                 Logger.Log(message, ILogger.Severities.Error);
  27.                 return false;
  28.             };
  29.         }
  30.     }
  31. }
На операторе dynamic app = Application.AcadApplication; получаю исключение: "Среда выполнения Common Language Runtime обнаружила недопустимую программу."
Проект - Class Library.
Где я не прав?

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Написал такой код для загрузки файла чертежа:
Загружается в AutoCAD или в AcCoreConsole? Если второе, то и не должно работать, о чем я сразу сказал.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Борис_САвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 238
  • Карма: 3

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Загружаю в AutoCAD.
Возможно в проекте используется не та версия .NET Framework.
Вторая возможная причина - проблема с инсталляцией AutoCAD.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Борис_САвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 238
  • Карма: 3
Есть такая гипотеза. У меня есть работающий проект (плагин), в котором есть тот же оператор
dynamic app = Application.AcadApplication;
Там он прекрасно работает. Отличие в одном. Там изначально запускается AutoCAD.
Поэтому есть объект AcadApplication.
Здесь же AutoCAD не запущен, поэтому AcadApplication пуст.
Наверно, его нужно как-то создать.

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Здесь же AutoCAD не запущен, поэтому AcadApplication пуст.
Как не запущен, если ты пишешь, что "Загружаю в AutoCAD"??? Если он загружен в AutoCAD, то AutoCAD уже запущен. А если не запущен, то ты не можешь пользоваться сборками AutoCAD .NET API из него. Мы это уже повторяли многократно...
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Борис_САвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 238
  • Карма: 3
Предварительно запускать AutoCAD необязательно.
Саша, это твои слова, или я что-то не понял.

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Предварительно запускать AutoCAD необязательно.
Саша, это твои слова, или я что-то не понял.
Не понял вообще ничего. И сбил меня с толку. Я уже не понимаю с чем ты хочешь работать и как.
Эта тема называется "Можно ли в консольном приложении работать с AutoCad как com-объектом". Ответ я дал сразу  - НЕТ! Больше в этой теме ничего не должно было быть. Если есть другие вопросы - создавай новую тему и формулируй четко вопросы.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение