10/11/2014
Пример использования Автозагрузки для запуска команды в AutoCAD
Инициализация AutoCAD UI из вашего метода .NET Initialize() не рекомендуется. Причина в том, что ваш .NET DLL может быть загружен при старте AutoCAD, и в этот момент определенным подсистемы AutoCAD (например, Лента, Палитры, COM и т.д.) еще не полностью инициализированы и обращение к ним может быть безуспешным.Обычное решение для этого случая – создание обработчика события для создания документов внутри метода Initialize() и уже в этом обработчике создать другой обработчик, который бы отслеживал вход в состояние Quiescent, в котором уже можно выполнять инициализацию.
Если использовать Автозагрузчик (Autoloader), всё это можно обработать автоматически, просто используя атрибут Commands::Command.StartupCommand для того, чтобы определить какая команда будет запущена при загрузке. Т.е.:
Код - XML: [Выделить]
- <?xml version="1.0" encoding="utf-8"?>
- <ApplicationPackage SchemaVersion="1.0" AutodeskProduct="AutoCAD" Name="MyTestApp" Description="FentyCAD demo app" AppVersion="1.0.0" FriendlyVersion="1.0.0" ProductType="Application" SupportedLocales="Enu" AppNameSpace="appstore.exchange.autodesk.com" Author="Fenton Webb" ProductCode="{17FFEEB3-D653-491D-97D3-40FC069FB967}" UpgradeCode="{1F07C18D-E5D9-4775-9A80-3E240CB4D1C3}">
- <RuntimeRequirements OS="Win32|Win64" Platform="AutoCAD|AutoCAD*" SeriesMin="R19.0" SeriesMax="R19.1" />
- <CompanyDetails Name="FentyCAD" Url="www.FentyCAD.com" Email="info@FentyCAD.com" />
- <Components Description="Any CPU DLLs">
- <RuntimeRequirements OS="Win32|Win64" Platform="AutoCAD|AutoCAD*" SeriesMin="R19.0" SeriesMax="R19.1" />
- <ComponentEntry AppName="FentiCADMain" Version="1.0.0" ModuleName="./Contents/Windows/MyApp.dll" AppDescription="Main App .NET DLL" LoadOnCommandInvocation="True">
- <Commands GroupName="FentyCAD_MAIN">
- <CommandLocal="_FCStartup" Global="FCStartup" Description="Команда использумая для инициализации моего приложения" StartupCommand="True" />
- </Commands>
- </ComponentEntry>
- </Components>
- </ApplicationPackage>
Обсуждение: http://adn-cis.org/forum/index.php?topic=1068
Опубликовано 10.11.2014