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

23/05/2016

Отладка AutoCAD 2017 с использованием Visual Studio 2015

В настоящее время разработчики не могут полноценно отлаживать .NET модули в AutoCAD 2017 с использованием VS 2015. Как объясняется в статье Киана Уомсли для VS 2013 http://through-the-interface.typepad.com/through_the_interface/2013/11/debugging-autocad-using-visual-studio-2013.html, обходной путь для этой проблемы – это или включить отладку для машинного кода, или использовать режим совместимости в VS 2015.
Опубликовано 23.05.2016     Читать далее >>>
23/05/2016

Завершение сеанса AutoCAD

В AutoCAD.NET API есть метод “Application.Quit()” для завершения сеанса AutoCAD. Однако в настоящее время “Application.Quit()” не позволяет сохранить все пользовательские установки профиля (например, активную вкладку Ленты). Одним из альтернативных методов для завершения сеанса AutoCAD может быть запуск команды _QUIT (ВЫХОД) при помощи метода “SendStringToExecute”

Опубликовано 23.05.2016     Читать далее >>>
18/05/2016

Значения атрибутов из раскрывающегося списка

Я периодически получаю запросы от разработчиков, которые хотят задать свой собстенный набор значений параметров для использования их в надстройках и для ограничения выбора возможных значений в ползовательском интерфейсе.

Опубликовано 18.05.2016     Читать далее >>>
18/05/2016

Как обновить выбранные поля не выполняя регенерацию всего чертежаАвтор: Александр Ривилис

Вопрос: Мне необходимо выполнить обновление некоторых полей в чертеже, но мне не хотелось бы выполнять полную регенерацию. Как это можно осуществить?

Ответ: В ObjectARX есть семейство функций acdbEvaluateFields, которые и позволяют обновить поля в чертеже. Пример использования функции acdbEvaluateFields смотрите ниже:

Опубликовано 18.05.2016     Читать далее >>>
10/05/2016

Как определить изменение вида в AutoCAD

Недавно один из партнеров ADN задал мне вопрос о том, как можно идентифицировать изменение вида в AutoCAD при выполнении зуммирования и панорамирования при помощи мыши. Чтобы отловить такое событие в ObjectARX следует использовать реактор редактора viewChanged() (AcEditorReactor::viewChanged()). А вот в AutoCAD.NET API эквивалентом этом реактору будет событие класса документа Document::ViewChanged
Опубликовано 10.05.2016     Читать далее >>>
07/05/2016

Как средствами ObjectARX получить точки пересечения кривой и плоскостиАвтор: Александр Ривилис

Вопрос: Имеется кривая (наследник AcDbCurve) и задана плоскость AcGePlane. Каким образом можно получить все точки пересечения кривой и плоскости?

Ответ: Для этой цели мы воспользуемся геометрической библиотекой. Во-первых, при помощи функции acdbConvertAcDbCurveToGelibCurve мы преобразуем AcDbCurve (и любого его наследника) в AcGeCurve3d. Во-вторых, воспользуемся классом AcGeCurveSurfInt для получения точек пересечения кривой и плоскости.

Ниже вы видите исходный код функции, которая запрашивает у пользователя кривую, начальный и конечный уровень для горизонтальных плоскостей и шаг между горизонтальными плоскостями. Результат её работы – желтые точки, отмечающие пересечение плоскостей и кривой.

Опубликовано 07.05.2016     Читать далее >>>
30/04/2016

Добавление иконки к имени команды без использования CUIXАвтор: Александр Ривилис

Вопрос: как программно добавить иконку для своей команды в контекстное меню, возникающее при наборе команды вручную? Один из способов мне известен – это регистрация команды в cuix-файле, как описано здесь: Adding Icon Next To Custom Command. Хотелось бы добиться такого же результата, но без создания cuix-файла.

Ответ: средствами ObjectARX это возможно. Думаю, что можно и при помощи AutoCAD .NET API, но понадобится активно использовать P/Invoke для большого числа функций из Win32 и ObjectARX. Я покажу здесь как это можно сделать при помощи ObjectARX:

Опубликовано 30.04.2016     Читать далее >>>
27/04/2016

Использование CustomExporter для 2D

Вопрос: Я пытаюсь получить двумерное представление заданного элемента в модели. При помощи CustomExporter я получаю все видимые элементы на 3D виде. Я читал несколько статей и в одной из них я прочел, что нужно использовать что-то вроде «переключение на двумерный план этажа и запросить представление этого элемента на заданном виде». Сейчас я застрял на этапе как мне получить нужный план этажа, если у меня их в модели несколько? Можете направить меня в нужное русло?

Опубликовано 27.04.2016     Читать далее >>>
24/04/2016

Форматирование плавающего числа в строку

В ObjectARX для конвертации плавающего числа в строку используется функция acdbRToS. Эта функция также заботится о преобразовании строки в нужный формат ("Архитектурные", "Десятичные", "Инженерные", "Дробные" и "Научные"), как показано в коде ниже.
Опубликовано 24.04.2016     Читать далее >>>
18/04/2016

Объединение блоков AutoCAD с использованием .NET API

Вопрос: У меня есть два блока с разными атрибутами, которые я хочу объединить в единый блок. При этом я не хочу создавать вложенные блоки. Как это можно осуществить при помощи AutoCAD .NET API?

Ответ: Вот C#-код, который использует метод Database.DeepCloneObjects() для создания нового блока на основе двух других:

Опубликовано 18.04.2016     Читать далее >>>
08/04/2016

Как получить границы области (Region)Автор: Александр Ривилис

Вопрос: Как средствами AutoCAD .NET API можно получить границы (контура) области (Region)?

Ответ: Для этой цели следует воспользоваться возможностями Brep .NET API. Пример получения граничных контуров ниже. Внешние контура красного цвета, внутренние - желтого.

Опубликовано 08.04.2016     Читать далее >>>
05/04/2016

AppPackage API в AutoCAD I/O API - Часть 2

Рассматриваются примеры AppPackage API в AutoCAD I/O API
Опубликовано 05.04.2016     Читать далее >>>
04/04/2016

AppPackage API в AutoCAD I/O API - Часть 1

Рассматриваются примеры AppPackage API в AutoCAD I/O API
Опубликовано 04.04.2016     Читать далее >>>
03/04/2016

WorkItem в AutoCAD I/O API - часть 2

Рассматриваются примеры использования API деятельности в WorkItem I/O API
Опубликовано 03.04.2016     Читать далее >>>
02/04/2016

WorkItem в AutoCAD I/O API - часть 1

Рассматриваются примеры использования API деятельности в WorkItem I/O API
Опубликовано 02.04.2016     Читать далее >>>
01/04/2016

API деятельности в AutoCAD I/O API - Часть 2

Рассматриваются примеры использования API деятельности в AutoCAD I/O API
Опубликовано 01.04.2016     Читать далее >>>
31/03/2016

API деятельности в AutoCAD I/O API - Часть 1

Рассматриваются примеры использования API деятельности в AutoCAD I/O API
Опубликовано 31.03.2016     Читать далее >>>
30/03/2016

Конвертация AcDb3DSolid в AcDbPolyFaceMesh средствами ObjectARXАвтор: Александр Ривилис

Вопрос: Стоит задача получить на основе AcDb3DSolid сеть AcDbPolyFaceMesh. Как это можно сделать?

Ответ: Ниже код, который позволяет это сделать. Возможны вариации в настройке AcBrMesh2dControl, определяющей насколько сеть будет повторять контуры твердого тела и какие элементы будут в основе этой сети.

Опубликовано 30.03.2016     Читать далее >>>
27/03/2016

Установка цвета всем граням твёрдого тела

Ниже вы видите код, который показывает как пройти по всем граням твердого тела и покрасить каждую из граней в свой цвет:
Опубликовано 27.03.2016     Читать далее >>>