Урок второй: знакомство со средой разработки (перевод)

На предыдущем уроке вы узнали, как повысить производительность AutoCAD, подключив плагин, созданный из короткого кода Visual Basic .NET.
.NET (или .NET Framework) – это технология, созданная Microsoft, позволяющая программистам создавать и расширять приложения. Программист может использовать .NET Framework для создания нового приложения с нуля, для реализации связи или взаимодействия между двумя приложениями или для расширения приложения путём подключения плагинов (как мы делаем для AutoCAD). Если вы хотите узнать больше, вы можете найти информацию в разделе «Дополнительные темы».
А сейчас мы более подробно рассмотрим построение и выполнение кода из предыдущего урока.
Что значит «строить» код?
Код написанный в Visual Studio в уроке 1, представляет собой набор понятных человеку инструкций (исходный код), который необходимо преобразовать в код, который может быть понят и выполнен компьютером. Выполняемая операция «build» делает именно это: она упаковала полученный исполняемый код в библиотеку DLL (Dynamic-Link Library), которая может быть загружена в AutoCAD.
На изображении показан итоговый файл в формате DLL вместе с соответствующей базой данных отладки программы (она предоставляет дополнительную информацию при устранении проблем работы DLL), которую вы создали с помощью Visual Studio в уроке 1. Путь к папке, в которую компилируется DLL прописан в Visual Studio и по умолчанию записывается в подпапку bin\Release или bin\Debug в папке Visual Studio (в зависимости от того выполняли ли вы операцию «Debug» – об этом мы поговорим далее).

Выбор языка программирования и инструмента разработки.
Так же как люди общаются на разных языках, вы доступна возможность написать плагин для AutoCAD на нескольких языках: в этом руководстве мы остановимся на Visual Basic .NET – это мощный язык программирования общего назначения. Visual Basic .NET особенно популярен среди людей, которые учатся программировать, так как синтаксис языка проще, чем у многих других языков (например C# или С++).
Для написания кода Visual Basic .NET существует ряд инструментов. Их множество: от инструментов с открытым исходным кодом, таких как SharpDeveloper и MonoDeveloper до профессиональной среды разработки Microsoft Visual Studio. Это руководство предполагает, что вы используете Visual Studio Community, бесплатную версию Visual Studio для создания приложений Visual Basic .NET.
Visual Studio Community – это интегрированная среда разработки (IDE – Integrated Development Environment), поскольку она состоит из различных инструментов, меню и панелей инструментов, которые облегчают создание и управление кодом.
Система проекта в Visual Studio Community содержит файлы решений (Solution) и проектов (Project files), а также элементы проекта (Project items), отдельные файлы, относящиеся к проектам. Решение (Solution) представляет из себя контейнер для одного или нескольких проектов. Каждый проект, в свою очередь, может считаться контейнером для элементов проекта, таких как исходные фалы, иконки и т.д. – большинство из которых скомпилируется в результирующий исполняемый файл (EXE или DLL). Visual Studio Community представляет собой обозреватель решений, который организует и отображает содержимое загруженного решения в формате дерева.

Интерфейс Visual Studio Community содержит текстовый редактор и редактор интерфейсов. Они отображаются в главном окне в зависимости от типа редактируемого файла. В текстовом редакторе вы вводите код Visual Basic .NET для своего плагин для AutoCAD. Этот редактор предоставляет расширенные функции, такие как IntelliSense и разборка кода на разделы, а также классические возможности редактирования текста, такие как закладки (метки) и отображение номеров строк.
IntelliSence – важнейшая функция программ Visual Studio, которая значительно повышает производительность программиста: она автоматически предлагает варианты написания кода на основе набираемых объектов кода и букв. Вы уже видели IntelliSence в работе, когда вводили код в уроке 1. Это одна из причин, по которой мы не просто копировали и вставляли текст.
Очевидно, что одной из ключевых особенностей Visual Studio Community является его способность записывать код Visual Basic .NET в исполнительный файл. Во время процесса сборки файла компилятор языка выполняет различные проверки и анализирует код. Одна из проверок – соответствие кода синтактическим правилам языка Visual Basic .NET. Компилятор также выполняет и другие проверки, например, была ли определена переменная или нет. Обнаруженные ошибки выводятся в специализированное окно, которое находится в нижней части экрана. Если вы допускали ошибки при вводе кода из первого урока, то видели работу этого окна, когда собрать ваш плагин.

Обзор Visual Studio Community.
Здесь пойдёт речь о тех действиях, которые вы выполняли в Visual Studio Community на предыдущем уроке. Однако мы рассмотрим их в контексте того, что вы только что узнали о программировании в целом и о создании кода.
1. В первом шаге вы просто запустили Visual Studio Community.
2. Далее вы создали новый проект Visual Basic .NET для плагинов AutoCAD.
3. Поскольку язык программирования, используемый в этом руководстве – Visual Basic .NET, вы работаете с Visual Basic в Visual Studio Community, и поэтому вы увидите Visual Basic в разделе Installed Templates в диалоговом окне New Project. Шаблон для создания плагинов AutoCAD представляет собой шаблон библиотеки классов с некоторыми дополнительными настройками.
В центре диалогового окна вы видите различные типы приложений, которые вы можете создать; Вы выбираете шаблон в соответствии с типом приложения, которое вы хотите создать.
Имя, введённое в нижней части экрана, используется для идентификации проекта.
3. Был создан пустой проект, содержащий стандартные ссылки на основные компоненты .NET и ссылки на три файла, определяющие API AutoCAD (AcCoreMgd.dll, AcMgd.dll и AcDbMgd.dll). Также в проект включены два файла Visual Basic .NET ((MyCommands.vb и MyPlugin.vb), вероятно вы удалили файл MyPlugin.vb из проекта, так как в данном руководстве он не нужен). Эти файлы содержат простой шаблонный код. Щелчок по одному из этих фалов в Solution Explorer отобразит содержащийся в нём код в окне текстового редактора.
4. Вы просмотрели раздел References в My Project и проверили правильно ссылок на AcCoreMgd.dll, AcMgd.dll и AcDbMgd.dll (Примечание: AcCoreMdg.dll нужен для AutoCAD версии 2013 и выше).
5. Во время сохранения были созданы физические файлы на жёстком диске компьютера, что даёт возможность открывать и редактировать их в дальнейшем. Вы закрыли и повторно открыли проект, чтобы Visual Studio Community правильно проанализировал файлы проекта.
6. AcCoreMgd.dll, AcMgd.dll и AcDbMgd.dll содержат определения API AutoCAD, которые наиболее часто используются в плагинах. Вы всегда будете ссылаться на эти файлы в ваших проектах плагинов для AutoCAD. Конечно иногда придётся ссылаться и на другие файлы.
– AcMgd.dll содержит API для управления самим приложением AutoCAD – определение пользовательских команд для открытия, закрытия документов, печати и т.д.
– AcDbMgd.dll содержит API для создания, редактирования или запроса содержимого файла DWG.
– Начиная с AutoCAD 2013 API находившиеся в файле AcMdg.dll были разделены между AcMdg.dll и AcCoreMgd.dll. AcCoreMgd.dll содержит API-интерфейсы, связанные с регистрацией приложений AutoCAD (такие как выбор рабочего пространства, команды и ключевые слова), а AcMgd.dll содержит связанные с пользовательским интерфейсом API (такие как диалоги).
Когда вы создали проект плагина AutoCAD, в диалоговом окне AutoCAD.NET Wizard Configurator эти файлы были выбраны по умолчанию (их нельзя исключить из выбора). Также там были предоставлены варианты включения других файлов определения API, но мы их проигнорировали.
7. Затем вы добавили код Visual Basic .NET, используя API AutoCAD в свой проект. Другими словами, вы предоставили AutoCAD инструкции о том, как изменять поведение атрибутов блока при его повороте.
При написании кода, не плохо бы создавать сборки (Build) чтобы проверить, есть ли ошибки в коде. При этом не обязательно чтобы код был полным или функциональным. Такой подход поможет избежать длительного исправления кода в последующем, а также у вас всегда будут сохранённые файлы перед началом сборки.
Чтобы создать сборку внутри Visual Studio Community, выберете Build Solution в раскрывающемся меню Build.
Если процесс сборки прошёл успешно, в нижнем левом углу приложения Visual Studio Community появиться сообщение build Succeeded. Если в коде будут найдены ошибки, Visual Studio Community отобразит список ошибок с пояснениями. Так же ошибки в коде будут подчёркнуты синим цветом. Вот пример выделения ошибки, специально добавленной в код, написанный вами на уроке.

В этом уроке вы познакомились с тем, что происходит, когда вы создаёте проект, а также изучили справочную информацию о Visual Basic .NET и Visual Basic Community.
Дополнительные материалы.
Visual Studio Community и Visual Studio Professional.
Для целей этого руководства вы используете Visual Studio Community. Это бесплатная версия Visual Studio, и поэтому это отличный инструмент для начала обучения. Microsoft позиционирует Microsoft Visual Community как решение для студентов, и людей для кого программирование является дополнительным заработком или хобби. Хотя эта версия и предоставляет большинство функций Visual Studio Professional, таких как IntelliSence, но имеет и ряд ограничений. Например, в базовой версии меньше шаблонов проектов и имеются ограничения возможностей отладки и устранения неполадок кода. Если вы собираетесь вплотную заняться разработкой плагинов, в том числе коммерческих, мы рекомендуем вам инвестировать средства в более функциональную версию Visual Studio.
*Существует несколько «профессиональных» версий Visual Studio. Посетите сайт Microsoft посвящённый Visual Studio для получения дополнительной информации.
Что такое .NET?
Оставшаяся часть урока насыщена техническим жаргоном. Не волнуйтесь, если не поймёте что-то при первом прочтении. ВЫ начнёте разбираться в терминах, когда познакомитесь с .NET после написания нескольких собственных плагинов.
.NET Framework – это программная среда, ставящаяся поверх операционной системы Windows и представляет собой базовую платформу с библиотеками и службами для всех приложений .NET. Она включает в себя функции управления памятью, сбора мусора, общая система типов, библиотеки классов и т. д.
* Разновидности .NET также доступны и в других операционных системах, будь то проект с открытым исходным кодом Mono или Microsoft Silverlight, но мы не будем углублять в этот вопрос.
Из чего состоит .NET Framework?
В основе framework лежит два основных компонента:
1. Common Language Runtime (CLR) – это механизм выполнения в .NET Framework, ответственный за управление выполнением кода. Именно поэтому код, написанный для этой среды, также известен как управляемый код. Все управляемые коды выполняются под контролем CLR, но что это значит? CLR управляет кодом, предоставляю основные функции, такие как управление памятью (в том числе автоматическое освобождение памяти компьютера для нужд других задач, когда она уже больше не требуется), обработку ошибок (или исключений), управление использованием нескольких потоков выполнения программы и обеспечение правила использования разных типов объектов. CLR является фундаментом .NET Framework.
2. Библиотека классов .NET Framework. Как следует из названия, это библиотека типов объектов, которые могут быть использованы на основании кода приложения .NET. Приложения .NET предназначены для Windows (будь то командная строка или графический интерфейс пользователя), WEB или мобильные устройства. Эта библиотека доступна для всех языков, использующих .NET Framework.
Как упоминалось выше, CLR повышает надёжность кода, гарантируя, что код соответствует системе общих типов (CTS). CTS гарантирует, что весь код .NET – независимо от языка – использует один набор типов объектов и может работать в одной среде. Именно эта функция позволяет вам писать приложения на выбранном вами языке, и при этом использовать компоненты кода, написанные программистами с использованием языков .NET.
Исполняемые файлы
Когда вы собираете код в exe-файл, он компилируется в код Common Intermediate Language (CIL, также именуемый MSIL) с использованием компилятора. CIL – это независимый от процессора набор команд, который может быть выполнен CLR в операционных системах Windows. CIL переносится в 32 и 64-разрядные системы и в некоторой степени в не Windows операционные системы. Код CIL, сгенерированный из вашего из исходного кода VB, затем был упакован в сборку .NET. Эта сборка представляет собой библиотеку кода CIL, хранящуюся в формате Portable Executable (PE) (который содержит как CIL, так и связанные с ним метаданные). Сборки могут быть либо сборками процессов (EXE), либо сборками библиотек (DLL).
В этом руководстве вы сосредоточитесь на разработке определённого вида плагина AutoCAD: сборка процессов (EXE), которая связана с AutoCAD. Из-за трудоёмкости, связанной с их разработкой, вы не будете тратить время на просмотр AutoCAD Addlns, которые обычно являются сборками библиотек (DLL), которые загружаются и исполняются в памяти AutoCAD. Одна из причин того, что внедрение EXE для работы с AutoCAD проще, чем разработка Addln, связана с его пользовательским интерфейсом: исполняемые файлы не нужно интегрировать в пользовательский интерфейс AutoCAD, например, добавляя кнопки в ленту.
Запуск исполняемых файлов
Во время выполнения сборки .NET, CIL (находящийся в сборке) передаётся компилятором CLR just-in-time (JIT) для генерации собственного (или машинного) кода. Компиляция JIT CIL в собственный код происходит во время выполнения приложения. Поскольку во время выполнения не требуется весь код, компилятор JIT преобразует CIL только тогда, когда это требуется для экономии времени и памяти. Также он сохраняет все сгенерированные коды в памяти, делая их доступными в дальнейшем без необходимости перекомпиляции.
В конце этого процесса собственный код запускается процессором компьютера.
Если вы хотите получить более подробную информацию о процессе создания приложений .NET, обратитесь к библиотеке MSDN.

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

На этом занятии вы создадите свой первый простейший плагин для сохранения атрибутов блока направленными по оси Х в мировой системе координат.
Все демонстрационные видеоролики записаны для 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

Руководство по созданию первого плагина для AutoCAD (перевод)

Обзор руководства по созданию первого плагина для AutoCAD.
Являетесь ли вы продвинутым пользователем AutoCAD заинтересованным в повышении производительности? Хотели бы вы автоматизировать или расширить возможности AutoCAD, но являетесь новичком в программировании? Тогда это руководство для вас.
Данная инструкция предназначено для самостоятельного обучения и плавного входа в мир программирования. Это универсальный путь для пользователей, которые знают продукты Autodesk, но абсолютные новички в программировании. Вы будете работать с интерфейсом программирования AutoCAD.NET (API) и языком программирования Visual Basic.NET для создания плагина – модуля, загружаемого в AutoCAD для расширения его функциональности. По завершению этого руководства вы поймёте основы программирования .NET и способы их применения в AutoCAD.
Продукт: AutoCAD 2018*
Язык программирования: Visual Basic.NET
Программный интерфейс (API): AutoCAD.NET API
*Это руководство разработано для стандартного AutoCAD 2018. Однако все эти этапы применимы к любому вертикальному продукту, построенному на базе AutoCAD (AutoCAD Architecture, AutoCAD Civil 3D и т.д.). API AutoCAD.NET является общим для всех этих продуктов; каждая вертикаль добавляет собственный специализированный API поверх API AutoCAD.NET. Прилагаемый код будет работать и в AutoCAD 2013, 2014, 2015, 2016 и 2017.
Обзор
В интернете множество ресурсов, на которых можно узнать о API AutoCAD.NET. Однако эти ресурсы предназначены для людей знакомых с программированием. Это руководство отличается: оно не требует никаких дополнительных знаний о программировании и тем не менее помогает быстро создать свой первый плагин, не загружая вас деталями. У вас будет работающее приложение в течении часа с момента начала знакомства с этим материалом, независимо от вашего нынешнего уровня знаний о программировании.
Руководство начнётся с описания преимуществ кастомизации программного обеспечения Autodesk, прежде чем перейти к занятиям, посвящённым использованию API AutoCAD.NET. Занятия начнутся с создания рабочего плагина, затем будут даны подробные объяснения основополагающих принципов и будущего развития функциональности плагина.
Преимущества кастомизации AutoCAD
Время – деньги! Чем эффективнее вы выполняете рутинные операции, тем более конкурентоспособны на рынке. В этом кроется ключевое преимущество кастомизации: адаптация программного обеспечения с целью оптимизации или автоматизации рабочих процессов. Autodesk предоставляет мощные API и SDK (комплекты разработки программного обеспечения), которые позволяют вам получить большую отдачу от ваших инвестиций в программное обеспечение Autodesk, адаптировав его к потребностям вашего бизнеса – кастомизацией существующих функций или добавлением новых.
AutoCAD имеет четыре разных API – .NET, LISP, ActiveX и ObjectARX (С++). В этом руководстве используется .NET, так он предоставляет самую мощную и современную среду программирования – сочетание всеобъемлющий API AutoCAD .NET с самыми современными средствами программирования (Microsoft .NET Framework и Microsoft Visual Studio). .NET даёт вам доступ к любому из языков программирования совместимых с .NET (Visual Basic .NET, С#, F# и т.д.) для разработки плагинов. Хотя у каждого языка программирования есть свои сильные стороны, Visual Basic .NET является наилучшим выбором для новичков: он прост в изучении и использовании; он является наиболее удобочитаемым для человека; и (как и любой другой язык .NET), он даёт вам полный доступ к базе Microsoft .NET Framework. Как только вы освоите это руководство и наберётесь опыта работы с Visual Basic .NET, вы сможете перейти к решению более сложных задач, связанных с языком программирования.
Программирование может быть очень полезным. Надеемся, что вы тоже это почувствуете по завершению этих уроков. Наслаждайтесь!
Краткое описание плагина.
Данная инструкция описывает команду, которая позволяет вставлять в чертёж блок с атрибутами, которые всегда остаются параллельны оси Х независимости от угла поворота блока. То есть атрибуты блока всегда остаются горизонтальными в МСК (мировая система координат).
Горизонтальное положение текста для читателя является общим требованием, и этот простой плагин облегчает его выполнение. Готовый плагин можно легко расширить, чтобы охватить другие объекты аннотаций, такие как однострочный и многострочный текст; и отображать текст всегда горизонтально по отношению к видовому экрану, а не только к МСК.
Необходимое программное обеспечение.
1. AutoCAD.
Или любой другой продукт на базе AutoCAD. Данное руководство применимо ко всем продуктам на основе AutoCAD.
2. Microsoft® Visual Studio® Community.
В данном руководстве будет использоваться Visual Basic Express, но вы можете использовать любую профессиональную версию Visual Studio 2015. Некоторые элементы пользовательского интерфейса могут отличаться в зависимости от версии.
3. ObjectARX SDK.
ObjectARX SDK включает в себя документацию для AutoCAD .NET API и некоторые важные файлы, на которые будет ссылаться наш проект Visual Studio. Он также включает в себя ряд примеров проектов .NET (SDK содержит документацию и файлы для API ObjectARX (C++) b .NET API. Не стоит беспокоиться о всей документации для С++ – .NET намного проще).
4. Мастер-файлы AutoCAD.NET.
Мастер-файлы – это простые шаблоны, которые можно использовать для быстрого создания новых проектов AutoCAD .NET (Visual Basic или С#). Важно отметить что пользователи Visual Basic Express настраивают проект для запуска AutoCAD из отладчика – но это невозможно сделать из пользовательского интерфейса Visual Studio Express.

Оригинал статьи: http://usa.autodesk.com/adsk/servlet/index?siteID=123112&id=18162650