Добрый день, уважаемые форумчане!
Написал небольшой плагин, который должен выделить все объекты чертежа, а затем отправит в консоль ещё одну операцию, которая вызовет некий плагин. Плагин arx загружается автоматически, с ним проблем никаких нет.
Добавил запись в реестр, чтобы dll автоматически загружалась при запуске Акада, всё отрабатывает как нужно, но команда выделения объектов и вызова нужного мне плагина происходит до того, пока чертеж успел загрузиться.. То есть, сначала появляется окошечко плагина, а затем уже загружается чертёж.
Следовательно, мне нужно сначала подписаться на событие EndDwgOpen, и затем уже выполнять свои команды. Вот код:
public class Program : IExtensionApplication
{
public void Initialize()
{
Application.DocumentManager.DocumentCreateStarted += DocumentManager_DocumentCreateStarted;
}
public void DocumentManager_DocumentCreateStarted(object sender, DocumentCollectionEventArgs e)
{
e.Document.EndDwgOpen += Document_EndDwgOpen;
}
private void Document_EndDwgOpen(object sender, DrawingOpenEventArgs e)
{
Application.ShowAlertDialog("DocumentIsOpen");
Document acDoc = Application.DocumentManager.MdiActiveDocument;
acDoc.SendStringToExecute("AI_SELALL ", true, false, false);
acDoc.SendStringToExecute("запуск_некоторого_плагина", true, false, false);
}
public void Terminate()
{
}
}
Но в таком случае не происходит ни выделения всех объектов, ни запуска моего плагина.. Но событие отлавливается, поскольку ShowAlertDialog всплывает! Почему такое может быть? У кого-нибудь есть предположения?
P.S. Извините, не нашёл тэг с подсветкой синтаксиса для кода.