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

1 2 3 4 5 6 7 8 9 10  
07/02/2017

Пример SubEntity из ObjectARX SDK 2009 для версии 2017Автор: Александр Ривилис

Вопрос: В ObjectARX SDK 2009 имелся пример SubEntity, который демонстрирует возможность работы с подобъектами, добавление их свойств в Панель свойств (OPM) и т.д. К сожалению этот пример не входит в состав ObjectARX SDK версий позднее 2009-ой. Можно ли его адаптировать к версии ObjectARX SDK 2017?

Ответ: Этот пример, адаптированный для ObjectARX SDK 2013, привёл Balaji Ramamoorthy здесь

Мне оставалось адаптировать его для ObjectARX SDK 2017. Результат работы можете посмотреть здесь: SubEntity2017.zip

Опубликовано 07.02.2017     Читать далее >>>
21/01/2017

Изменения в методе AcadAppInfo::writeToRegistry в AutoCAD 2017

В AutoCAD 2017 в методе AcadAppInfo::writeToRegistry, параметры Boolean удалены. Это потому что нет гарантии, что AutoCAD запущен с соответствующими привилегиями для записи в Local Machine, что всегда проблематично через API. Теперь writeToRegistry работает аналогично writeToRegistry(false, true) в AutoCAD 2016. (Пишем для текущего пользователя в секцию AutoCAD).

Опубликовано 21.01.2017     Читать далее >>>
21/12/2016

Создание фильтра примитивов унаследованных от полилинийАвтор: Александр Ривилис

Вопрос: У меня есть собственные примитивы, унаследованные от AcDbPolyline. Я хочу иметь возможность фильтровать их, а также другие типы полилиний (AcDb2dPolyline и AcDb3dPolyline), при помощи функции acedSSGet. Я пробовал создавать фильтр при помощи такого кода:

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

Московская конференция "День Разработчика Autodesk 2016"

Московская конференция «День Разработчика Autodesk 2016»

Уважаемые коллеги, приглашаем вас 26 января 2017 г на очередную конференцию «День Разработчика Autodesk 2016». Если вы планируете или уже разрабатываете приложения с использованием технологий Autodesk, хотите узнать, в каком направлении Autodesk развивает свои облачные и десктопные API, то эта конференция для вас.

На этот раз девиз конференции: «Data at the Center». Это новый подход к работе с данными, который стал возможным благодаря облачным технологиям. Отдельно мы рассмотрим Autodesk Forge, платформу для решения инженерных и бизнес-задач, объединяющую новое поколение облачных API и веб сервисов.

В ходе конференции вы узнаете свежие новости о разработке приложений для облачных и десктопных платформ Autodesk, мы подробно остановимся на новых возможностях Data Management API, Model Derivative API, Viewer, Design Automation API, 3D Print API, BIM 360 API, Reality Capture API и Fusion 360 Client API и, конечно же, не забудем про наши десктопные платформы AutoCAD, Revit, Civil 3D, Inventor, Vault. Отдельно расскажем об использовании онлайн-магазина приложений Autodesk App Store для популяризации ваших приложений.

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

Как в ObjectARX выбрать грани 3DSOLID и изменить им цветАвтор: Александр Ривилис

Оказалось, что на такой, казалось бы простой и распространенный вопрос найти примера в интернете не удается. Более того несколько функций, которые я использовал для решения этой задачи входят в состав ObjectARX SDK начиная с версии 2008, но никогда ни в одном примере не фигурировали. Есть готовые примеры как найти выбранную грань 3DSOLID, но они очень громоздки, зависят от ПСК, точки зрения, точки указания и т.д. В этом же примере всё очень просто и лаконично и основывается на функции обычного выбора примитивов acedSSGet:

Опубликовано 21.10.2016     Читать далее >>>
29/09/2016

Динамические размеры в AcEdJig с использованием ObjectARXАвтор: Александр Ривилис

Вопрос:
Не могу найти готовые примеры использования динамических размеров в AcEdJig в интернете и в ObjectARX SDK, а описания этого процесса в документации ObjectARX SDK нет. Подскажите как их использовать? Хочется иметь возможность использовать динамические размеры по аналогии с тем, как это делается в командах AutoCAD.

Ответ:
В составе ObjectARX SDK 2007 и 2008 был пример Grip, в котором разъяснялась техника использования динамических размеров. К сожалению этот пример отсутствует в более новых версиях ObjectARX SDK. Я адаптировал этот пример для AutoCAD 2017 и ObjectARX SDK 2017.

Для проверки загрузите этот пример, перестройте приложение и загрузите grip.arx в AutoCAD 2017. Запустите команду RECTJIG и вы увидите как можно задать размеры по горизонтали и вертикали в динамических размерах.

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

Создаем ассоциативный массив с помощью ObjectARX

В этой статье мы рассмотрим возможность создания объекта МАССИВ (Array) используя три класса параметров для создания ассоциативного массива унаследованных от класса AcDbAssocArrayCommonParameters:
  1. AcDbAssocArrayPathParameters
  2. AcDbAssocArrayPolarParameters
  3. AcDbAssocArrayRectangularParameters

который может использоваться для изменения параметров ассоциативного Прямоугольного Массива, Массива по Траектории и Кругового Массива независимо от типа массива.

AcDbAssocArrayActionBodyэто ассоциативное действие, которое выполняется для управления или позиционирования массива примитивов, основанное на параметрах массива.

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

Создание простой полигональной сети

Это пример создания простой полигональной сети при помощи ObjectARX. Если используется конструктор AcDbPolygonMesh() без каких-либо параметров, необъодимо явно задать количество вершин в направлениях M и N, а также открыта или закрыта полигональная сеть в направлениях M и N:

Опубликовано 31.08.2016     Читать далее >>>
21/07/2016

Как получить имя локализации с помощью ObjectARX

В ObjectARX SDK есть класс AcLocale, при помощи которого можно получить информацию о языке локализации AutoCAD. Класс AcLocale появился только в версии 2017.

Опубликовано 21.07.2016     Читать далее >>>
16/07/2016

Как определить был ли сохранён dwg-файл в ПО Autodesk или нет

Класс AcDbDatabase содержит метод dwgFileWasSavedByAutodeskSoftware для определения того был ли сохранён dwg-файл в ПО Autodesk или нет. Аналогично в AutoCAD .NET API в классе Database есть свойство DwgFileWasSavedByAutodeskSoftware.
Опубликовано 16.07.2016     Читать далее >>>
08/06/2016

Как получить цвет солнца

Цвет солнца вычисляется по географическому положению, дате и времени дня.

Начиная с ObjectARX 2017 у нас есть API для получения цвета солнца как из палитры свойств солнца:

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

Добавление пользовательского меню к фрейму приложения AutoCAD

В AutoCAD 2016 представлен новый класс AdApplicationFrame, который содержит множество API для доступа к фрейму приложения.

В этой статье мы покажем как создать и добавить свое меню вместо существующей строки меню AutoCAD (‘MENUBAR’).

При помощи экземпляра AdApplicationFrame мы можем добавлять MFC-элементы пользовательского интерфейса в наш AutoCAD.

Опубликовано 04.06.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     Читать далее >>>
24/04/2016

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

В ObjectARX для конвертации плавающего числа в строку используется функция acdbRToS. Эта функция также заботится о преобразовании строки в нужный формат ("Архитектурные", "Десятичные", "Инженерные", "Дробные" и "Научные"), как показано в коде ниже.
Опубликовано 24.04.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     Читать далее >>>
16/02/2016

Визуализация при помощи RenderToImage API

Как вы возможно уже знаете API графической системы было изменено в AutoCAD 2015, как описано в статье Изменения в графике в AutoCAD 2015. В AutoCAD 2016 рендер RapidRT заменил рендер MentalRay, который использовался в предыдущих версиях. В свете этого в ObjectARX 2016 появился новый класс AcDbRapidRTRenderSettings. Все эти изменения требуют изменений в вашем коде в случае, если вы использовали метод AcGsView::RenderToImage для генерации изображения модели AutoCAD.

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

Чтобы попробовать это, откройте чертеж и задайте направление взгляда в AutoCAD, такой как вы хотите для того чтобы генерировать визуализированное изображение. Настройте параметры визуализации и выполните визуализацию в AutoCAD. После того как вас устроят результаты, сделать настройки визуализации текущими. Это должно сохранить предустановки визуализации в качестве активных. Приведенный ниже код, получает параметры на основе активной предустановки, и используют их для создания изображении.

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

Программное создание диалога "Сохрани как..."

Эта статья появилась как результат запроса от пользователя. Здесь я покажу простую реализацию диалога для сохранения файла.

Хотя у нас есть функция acedGetNavDialog, но у неё нет возможности управлять списком форматов чертежей.

Опубликовано 13.02.2016     Читать далее >>>
1 2 3 4 5 6 7 8 9 10