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

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     Читать далее >>>
01/04/2016

Медицинский анализ в Fusion 360

Рассматриваются особенности нового функционала Autodesk Fusion 360
Опубликовано 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     Читать далее >>>
09/03/2016

Управление форматом вывода данных чисел в Панели свойств AutoCADАвтор: Александр Ривилис

Управление форматом вывода данных чисел в Панели свойств AutoCAD

В статье Как показать правильно числовое значение в Панели Свойств (OPM)? в общих чертах описывается возможность управлять форматом вывода числовых значений в Панели свойств. Всё более-менее просто если свойство статическое. В этом случае имеется возможность указать формат числа в idl-файле. А вот в случае динамического свойства требуется выполнить специальную подготовку. Форматом вывода управляют методы GetCurrentValueName и GetCurrentValueType. Вот пример, обеспечивающий независящее от единиц представление действительного числа:

Опубликовано 09.03.2016     Читать далее >>>
26/02/2016

Превращение всех элементов в DirectShape

Новый интересный пример использования DirectShape предоставил наь Nikolay Shulga, старший инженер из команды разработчиков Revit.

Вот что он пишет:

26/02/2016

Особенности работы с макросами

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

Далее, привожу текст с его слов:

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

Как показать диалоговое окно редактирования поля (Field) средствами .NETАвтор: Александр Ривилис

Вы можете показать диалоговое окно AutoCAD редактирования поля, используя функцию “AcFdUiInvokeFieldDialog” из ObjectARX при помощи P/Invoke. При помощи этой функции можно показать диалог и вернуть объект поля, выбранный пользователем, переданный как первый параметр. Код ниже показывает как это сделать:

Опубликовано 24.02.2016     Читать далее >>>
22/02/2016

Полное подавление пользовательского интерфейса AutoCAD из .NET

В первой статье из этой серии, мы видели, как отключить AutoCAD ленту. Во второй статье мы увидели как скрыть панели AutoCAD (с некоторыми оговорками). В этом посте мы собираемся показать как сделать всё намного лучше и проще при помощи одной строки кода.

Но прежде всего, хотелось бы сказать большое спасибо что большой "спасибо" James Meading и Alexander Rivilis, которые помогли нам.

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

Но к полуночи, Alexander показал MFC код, который полностью подавляет пользовательский интерфейс AutoCAD но более низком уровне: подавляет полностью окно AutoCAD со всеми элементами интерфейса без необходимости скрывать что-либо.

Я посмотрел на код Alexander’а и обнаружил, что его несложно сделать работающим и в C# при помощи P/Invoke. И вот так этот код выглядит сейчас:

Опубликовано 22.02.2016     Читать далее >>>