Урок первый: простейший плагин (перевод)

На этом занятии вы создадите свой первый простейший плагин для сохранения атрибутов блока направленными по оси Х в мировой системе координат.
Все демонстрационные видеоролики записаны для AutoCAD 2013, но при этом отлично подойдут и для более поздних версий.
для более поздних версий.
Шаги по созданию первого плагина.
1. Запустить среду разработки Visual Basic.
Откройте Visual Studio 2015. Примечание: Вы также можете использовать Visual Basic 2008/2010 Express если вы работает с AutoCAD 2012, но для AutoCAD 2013 требуется Visual Basic 2010 Express. Для работы с проектами под AutoCAD 2014-2016 необходим Visual Studio 2012 Express.
2. Создать проект в библиотеке классов.
В программе Visual Studio во вкладке «File» выбрать «New» и дальше выбрать «Project*» На вкладке «Templates» в левом окне выберете «Visual Basic» и далее «Autodesk». В среднем окне выберете «AutoCAD 2018 VB plug-in» (если вы не видите этого пункта в своём списке шаблонов, обязательно посмотрите необходимое программное обеспечение в вводной статье). В поле «Name:» введите KeepAttributesHorizontal. Затем нажмите «Ок».
* Если вы используете готовые примеры проектов, а не начинаете с нуля, как предлагает это руководство, предполагается, что вы установили AutoCAD в папку C: \ Program Files \ Autodesk \ AutoCAD 2018. Если папка установки отличается, то для того, чтобы отлаживать проекты, прочтите пункт «AutoCAD не установлен в папку по умолчанию».

3. Появилось диалоговое окно «AutoCAD .NET Wizard Configurator». Нажмите кнопку с изображением многоточия рядом с верхним текстовым полем; В диалоговом окне выберите папку, в которую извлекли содержимое SDK ObjectARX 2018, и выберете папку «inc». Во втором текстовом поле выберете папку установки AutoCAD – по умолчанию C: \ Program Files \ Autodesk \ AutoCAD 2018. Остальные параметры оставьте как есть и нажмите «Ок».

Visual Studio создаст шаблон проекта кода и отобразит код в коне.
4. Сохранить проект.
Во вкладке меню «File» выберите пункт «Save All».
5. Закрыть и снова открыть проект.
Во вкладке «File» выберите «Close Solution»; Затем снова в меня «File» выберите «Open», затем «Project/Solution» и выберите ваш файл. Эти действия необходимы, чтобы Visual Studio правильно проанализировал файлы проекта для функции IntelliSence.
6. Проверить ссылки.
В окне «Solution Explorer», находящемся справа, дважды кликните по «My project».

7. Visual Studio открыл настройки проекта. Перейдите во вкладку «References» и убедитесь, что файлы AcCoreMgd, AcDbMgd и AcMgd есть в списке и их пути заданы правильно.

Если названные выше фалы не указаны, нажмите галочку рядом с кнопкой «Add» и выберите «Reference» и затем добавьте нужные файлы. Затем выберите каждую ссылку в списке и проверьте, чтобы в окне «Properties» в правом нижнем углу для значения «Copy local» стояло значение «False».
8. Добавить код.
Дважды кликните по «myCommands.vb» в окне «Solution Explorer», чтобы отобразить окно редактирования кода. Удалите всё в этом окне. Чтобы освоить Visual Studio, включая использование таких функций как IntelliSense, рекомендуется самостоятельно переписать код из этого руководства в программу, а не копировать и вставлять его. Однако, если вы ограничены во времени вы можете просто скопировать и вставить код или загрузить готовый файл. Но это не даст практического опыта, поэтому не рекомендуется следовать этому пути.

Imports Autodesk.AutoCAD.Runtime
Imports Autodesk.AutoCAD.DatabaseServices
Imports Autodesk.AutoCAD.Geometry
 
Namespace HorizontalAttributes
 
    Public Class Commands
 
        ' Class variable to store the instance of our overrule
        Private Shared myOverrule As KeepStraightOverrule
 
        <CommandMethod("KeepStraight")>
        Public Shared Sub ImplementOverrule()
 
            'We only want to create our overrule instance once, 
            ' so we check if it already exists before we create it
            ' (i.e. this may be the 2nd time we've run the command)
             If myOverrule  Is Nothing Then
                'Instantiate our overrule class
                myOverrule = New KeepStraightOverrule
                'Register the overrule
                Overrule.AddOverrule(
                  RXClass.GetClass(GetType(AttributeReference)),
                  myOverrule, False)
            End If
            'Make sure overruling is turned on so our overrule works
            Overrule.Overruling = True
 
        End Sub
    End Class
 
    'Our custom overrule class derived from TransformOverrule
    Public Class KeepStraightOverrule
        Inherits TransformOverrule
 
        'We want to change how an AttributeReference responds to being
        ' transformed (moved, rotated, etc.), so we override its
        ' standard TransformBy function.
        Public Overrides Sub TransformBy(ByVal entity As Entity,
                                         ByVal transform As Matrix3d)
 
            'Call the normal TransformBy function for the attribute
            ' reference we're overruling.
            MyBase.TransformBy(entity, transform)
            'We know entity must be an AttributeReference because 
            ' that is the only entity we registered the overrule for.
            Dim attRef As AttributeReference = entity
            'Set rotation of attribute reference to 0 (horizontal)
            attRef.Rotation = 0.0
 
        End Sub
    End Class
End Namespace

При желании вы также можете удалить файл «MyPlugin.vb» из проекта. Это не имеет значения – код внутри файла не производит никаких действий.
Не беспокойтесь о деталях кода, вы подробно изучите их в 3-м уроке. Сейчас достаточно знать, что зелёный текст – это комментарии. Это не сам программный код – это текст, объясняющий, что делает код. Крайне важно писать подробные комментарии в ваших проектах – даже лучшие программисты забывают, что их код должен был делать, когда возвращаются к нему через полгода. Если вы сейчас прочитаете комментарии, то получите представление о том, что делает код.
9. Сохраните файл.
Во вкладке «File» нажмите «Save All».
10. Постройте проект.
Код, который вы написали, выполнен в форме, понятной человеку. Чтобы код стал понятным для компьютера, вам нужно его перевести или построить.
В программе во вкладке «Build» выберите «Build KeepAttributesHorizontal», чтобы скомпилировать и создать плагин. Осле успешного создания кода появится сообщение «Build Succeeded».

Вот оно! Вы только что создали свой первый плагин для AutoCAD. Давайте запустим его, чтобы посмотреть, что он делает.
Запуск плагина
1. Запустите AutoCAD.
2. Откройте файл. blockswithattributes
3. Загрузите ваш плагин в AutoCAD.
Наберите «NETLOAD» в командной строке AutoCAD и нажмите Enter. С помощью диалогового окна навигации найдите файл, который вы построили в Visual Studio (с расширением .dll) и нажмите «Открыть».

4. Протестируйте плагин.
Наберите «KEEPSTRAIGHT» в командной строке и нажмите «Enter» – эта команда запускает программу, записанную в плагине. Теперь поведение всех атрибутов блоков во всех чертежах, открытых в AutoCAD определяется плагином. Чтобы увидеть это, поверните или используйте команду «ROTATE», для поворота блоков в BlockWithAttributes.dwg. Когда вы вращаете блок, вы видите, что атрибуты блока остаются параллельными оси X в МСК.
Примечание: все изменения атрибутов являются постоянными. Не сохраняйте чертёж, если вы не хотите сохранить изменения.

Поздравляю! Вы только что написали свой первый плагин для AutoCAD. Код вы подробно рассмотрите в уроке 3.
Прежде чем перейти к следующим урокам, давайте вернёмся к вещам, которые мы пропустили ранее, начиная с базовых концепций программирования и преимуществ, которые оно даёт в повседневной работе.
Дополнительные темы
Введение в программирование
Код Visual Basic .NET, который вы только что выполнили для изменения атрибутов блоков на чертеже, составляет менее 30 строк (без учёта пустых строк и комментариев). Это небольшой код, работающий аналогично любой внутренней команде AutoCAD. Если кто-то другой увидит ка работает ваш плагин, он подумает, что это новая функция AutoCAD. Программирование позволяет записать логику определённого действия один раз, а затем каждый раз, при новом выполнении операции получать преимущество во времени и трудозатратах.
Что такое программирование?
Простой ответ таков: компьютерное программирование – это процесс создания последовательности инструкций, чтобы заставить компьютер что-то сделать. Вы можете рассматривать свою программу как последовательность инструкций. В последующих уроках вы научитесь интерпретировать то, что различные строки кода говорят компьютеру.
Если вам нужно объяснить, что такое компьютер маленькому ребёнку, можете сказать: компьютер – это инструмент, который выполняет предоставленные ему инструкции. Программирование – это один из способов дать инструкции компьютеру. Внутри компьютер видит эти инструкции в виде числового ряда (машинный код). Набор понятных человеку инструкций, который вы видели в начале урока, называется исходным кодом, и компьютер преобразует этот код в машинный код, который он может читать и исполнять. Последовательность таких инструкций (или кода), написанных для выполнения конкретной задачи, называется программой, а набор таких программ и соответствующих данных называется программным обеспечением. AutoCAD – один из таких программных продуктов.
Исходный код может быть написан на разных языках, так же как люди используют разные языки для общения. Язык, который вы будете использовать при изучении данного руководства называется Visual Basic .NET, который так же называют VB.NET для сокращения (.NET).
Примечание: Visual Basic .NET – это новейшая версия Microsoft Visual Basic. Не путайте его с Visual Basic 6 или Visual Basic для приложения (VBA), который намного старше и не настолько мощный, как Visual Basic .NET.
Что такое API?
API – это аббревиатура интерфейса прикладного программирования (Application Programming Interface): способ, которым программист может общаться с программным продуктом. Например AutoCAD API – это способ, которым программисты могут работать с AutoCAD, и устанавливает, какие функции программист может использовать в AutoCAD. Например, вы можете запрограммировать AutoCAD, чтобы добавить строку в чертёж, поскольку AutoCAD предоставляет функциональность для этого через свой API.

Коммерческие компании – разработчики программного обеспечения, такие как Autodesk, часто распространяют набор библиотек, которые пользователи могут использовать в своих собственных программах для взаимодействия с определённым программным продуктом, таким как AutoCAD, и расширять его функционал. Этот набор известен как API программного продукта.
Тип программы, которую вы пишите для взаимодействия с программным продуктом и расширяющей его функциональность, будет зависеть от того, как был разработан API и какие возможности были вам предоставлены (посредством API).
Что такое плагин?
Программный плагин – это тип программного модуля (или файла), который добавляет функциональность программному продукту, как правило в форме команды автоматизирующей выполнение задач или настраивающей поведение программы. Когда речь идёт о плагине для AutoCAD, вы также можете услышать термин «аддон» или «приложение» – имеется в виду модуль, содержащий код, который использует API AutoCAD. AutoCAD загружает такие плагины и использует их для настройки своего поведения при определённых условиях, например, когда выполняется конкретная команда пользователем плагина.
AutoCAD не установлен в папку по умолчанию.
Предполагается что вы установили AutoCAD в папку C: \ Program Files \ Autodesk \ AutoCAD 2018. Если папка установки AutoCAD отличается, то для отладки проектов вы должны сделать следующее:
– Создайте новый проект с помощью шаблона AutoCAD .NET Wizard (как описано в уроке 1) и скопируйте код из завершённого проекта в новый проект.
– Отредактируйте фалы проекта вручную, как описано ниже.
Ручное редактирование файлов проекта.
Ограничением Visual Studio является то, что некоторые параметры проекта недоступны для редактирования посредством пользовательского интерфейса. Одной из этих скрытых настроек является расположение исполняемого файла AutoCAD (acad.exe), в который вы загружаете подключаемый модуль .NET, для отладки. Чтобы это исправить нужно сделать следующее:
– Откройте папку проекта и найдите файл .vbproj.user. Для примера с названием MyBonusPlugin вам нужен файл: MyBonusPlugin \ MyBonusPlugin \ MyBonusPlugin.vbproj.user.
– Откройте этот файл в блокноте или в любом другом текстовом редакторе.
– Найдите строку с текстом: «C: \ Program Files \ Autodesk \ AutoCAD 20xx \ acad.exe»
– Везде, где встречается этот текст, замените его на фактический путь к файлу acad.exe.
– Сохраните файл. Теперь вы можете запустить AutoCAD из своего отладчика, как и для нового проекта, созданного с помощью AutoCAD .NET Wizard.
Ниже приведён пример содержимого файла .vbproj.user, в котором показана строка, которую необходимо заменить (убедитесь, что вы обновили путь к фалу в соответсвии с версией AutoCAD, в которой вы работаете):

<?xml  version=”1.0″ encoding=”utf-8″?>

<Project  ToolsVersion=”4.0″ xmlns=”http://schemas.microsoft.com/developer/msbuild/2003″>

<PropertyGroup>

<ReferencePath>C:\ObjectARX 20xx\inc;C:\ObjectARX 20xx\inc\inc-win32</ReferencePath>

<PublishUrlHistory />

<InstallUrlHistory />

<SupportUrlHistory />

<UpdateUrlHistory />

<BootstrapperUrlHistory />

<ErrorReportUrlHistory />

<FallbackCulture>en-US</FallbackCulture>

<VerifyUploadedFiles>false</VerifyUploadedFiles>

</PropertyGroup>

<PropertyGroup  Condition=”‘$(Configuration)|$(Platform)’ == ‘Debug|AnyCPU'”>

 

StartProgram>C:\Program Files\Autodesk\AutoCAD 20xx\acad.exe</StartProgram>

<StartAction>Program</StartAction>

</PropertyGroup>

<PropertyGroup  Condition=”‘$(Configuration)|$(Platform)’ == ‘Release|AnyCPU'”>

<StartAction>Program</StartAction>

<StartProgram>C:\Program Files\Autodesk\AutoCAD 2017\acad.exe</StartProgram>
</PropertyGroup>

</Project>

Файлы для скачивания:
lesson1_AutoCAD_2018_projects
lesson1_archive_2017_and_earlier_project_files
Оригинал статьи: http://usa.autodesk.com/adsk/servlet/index?siteID=123112&id=18162797

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.