Dynamo - открытие нового экземпляра AutoCAD с помощью COM?

Автор Тема: Dynamo - открытие нового экземпляра AutoCAD с помощью COM?  (Прочитано 5160 раз)

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

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

Оффлайн Пашин ЕвгенийАвтор темы

  • ADN PRO
  • *
  • Сообщений: 662
  • Карма: 12
  • Skype: pashin.evgeniy
Коллеги, добрый день!

Подскажите, кто-нибудь пробовал запускать новый экземпляр приложения AutoCAD через Dynamo используя COM Description (ProgID).

В Dynamo я научился подключаться к текущему открытому экземпляру приложения AutoCAD, используя его COM description.

Код - Python [Выбрать]
  1. import clr
  2. import System
  3.  
  4. OUT = System.Runtime.InteropServices.Marshal.GetActiveObject("AutoCAD.Application")

Всё прекрасно, за исключением одного - я хочу сам создавать экземпляр приложения AutoCAD и уже к нему цепляться.

Подскажите, как это можно сделать?

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

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

Оффлайн Пашин ЕвгенийАвтор темы

  • ADN PRO
  • *
  • Сообщений: 662
  • Карма: 12
  • Skype: pashin.evgeniy
Здесь код на C#: http://through-the-interface.typepad.com/through_the_interface/2007/12/launching-autoc.html

Александр Наумович, спасибо Вам за попытку, но увы, это работает где угодно, кроме Dynamo.

Даже простой запуск файлов в Dynamo вызывает у меня недоумевание, поскольку в самом Iron Python это работает (import subprocess -> subprocess.call("Путь")), а вот Dynamo - не хочет это выполнять. В общем задал вопрос по Dynamo на форуме dynamobim.

Жду ответа.

Отмечено как Решение Пашин Евгений 03-05-2017, 11:38:52

Оффлайн Пашин ЕвгенийАвтор темы

  • ADN PRO
  • *
  • Сообщений: 662
  • Карма: 12
  • Skype: pashin.evgeniy
Не дождался.

Код - Python [Выбрать]
  1. from System import Activator, Type
  2. ac = Activator.CreateInstance(Type.GetTypeFromProgID('Autocad.Application'))
  3. ac.Visible=True
  4. ac.WindowState=3
  5. # Назначьте вывод переменной OUT.
  6. OUT = ac

Работает с любыми ProgId приложений: Excel, Word, Visio, NavisWorks, SolidWorks, SolidEdge, PowerMill и т.д.