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

ADN Club => AutoCAD .NET API => Тема начата: Пашин Евгений от 29-03-2017, 14:58:19

Название: Dynamo - открытие нового экземпляра AutoCAD с помощью COM?
Отправлено: Пашин Евгений от 29-03-2017, 14:58:19
Коллеги, добрый день!

Подскажите, кто-нибудь пробовал запускать новый экземпляр приложения 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 и уже к нему цепляться.

Подскажите, как это можно сделать?
Название: Re: Dynamo - открытие нового экземпляра AutoCAD с помощью COM?
Отправлено: Александр Ривилис от 29-03-2017, 18:20:31
Здесь код на C#: http://through-the-interface.typepad.com/through_the_interface/2007/12/launching-autoc.html
Название: Re: Dynamo - открытие нового экземпляра AutoCAD с помощью COM?
Отправлено: Пашин Евгений от 30-03-2017, 08:43:05
Здесь код на 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.

Жду ответа.
Название: Re: Dynamo - открытие нового экземпляра AutoCAD с помощью COM?
Отправлено: Пашин Евгений от 03-05-2017, 11:38:49
Не дождался.

Код - 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 и т.д.