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

06/08/2015

Как показать иерархическое меню в Ленте

Если вам нужно показать простой (одноранговый) список – подойдёт RibbonSplitButton. О нём есть соответствующая статья. Но если вам нужно организовать иерархическое меню - подойдёт RibbonMenuButton. Ниже пример кода, создающий меню как на следующей картинке:
Опубликовано 06.08.2015     Читать далее >>>
05/08/2015

О методе AcDbObject::releaseExtensionDictionary

В чем разница между вызовом метода erase() непосредственно для словаря расширения (extension dictionary) и вызовом releaseExtensionDictionary() для объекта-владельца?

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

Фундаментальное различие между вызовом releaseExtensionDictionary() для родительского объекта и вызовом erase() для словаря расширения становится совершенно очевидным если посмотреть на результаты вызова двух других методов работы со словарём расширения: extensionDictionary и createExtensionDictionary. Рассмотрим следующие две последовательности:

Опубликовано 05.08.2015     Читать далее >>>
05/08/2015

Как удалить полностью словарь расширения (ExtDict) примитива?Автор: Александр Ривилис

Вопрос:
Как удалить полностью словарь расширения (ExtDict) примитива?

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

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

НПИ (CUI) и прозрачные картинки

До AutoCAD 2014 включительно, AutoCAD использует только формат BMP в CUI. Так как формат BMP не поддерживает прозрачность, AutoCAD использует RGB-цвет 192,192,192 как прозрачный. Пользователи AutoCAD могут использовать эту особенность в CUI.

Но это ограничивает возможность использования прозрачности только фоновым цветом 192,192,192. Любые другие фоновые цвета становятся видимыми в CUI.

Начиная с AutoCAD 2015 (и в более новых версиях), вы можете использовать формат PNG для картинок. Так как PNG формат поддерживает прозрачность, вы можете установить прозрачность для картинки и не ограничены только фоновым цветом 192,192,192.

Если у вас есть картинка в формате BMP с фоновым цветом (типа 192,192,192) тогда вызов “Bitmap.MakeTransparent” API поможет конвертировать этот цвет в прозрачный. Следующий код конвертирует BMPс фоновым цветом 192,192,192 в прозрачный PNG

Опубликовано 04.08.2015     Читать далее >>>
03/08/2015

Visretain и слои внешних ссылок

Системная переменная VISRETAIN существует достаточно давно и ее описание вроде бы внятно и понятно. Но вот стоит поставить ее равной 1 и вылезают некоторые моменты, предусмотреть которые я в свое время не смог.
Опубликовано 03.08.2015     Читать далее >>>
01/08/2015

Сервис хранения объектов Object Storage Service (OSS)

p>О сервисе

API Сервиса хранения объектов предоставляет простой, быстрый и безопасный способ для хранения и доступа к объектам в Autodesk Cloud. Все обращения к OSS зачищены при помощи технологии OAuth 2.0.

Опубликовано 01.08.2015     Читать далее >>>
29/07/2015

Чтение доступных методов определения потерь

Недавно мы рассматривали, как можно получить данные таблицы ASHRE. Эта информация хранится в Расширяемой области хранения и связана с элементом параметром  RBS_DUCT_FITTING_LOSS_METHOD_SERVER_PARAM в виде GUID значения.

А как мы можем получить список всех доступных методов определения потерь?

 

Опубликовано 29.07.2015     Читать далее >>>
29/07/2015

Твердые тела и поверхности Fusion - Часть 1

Рассматриваются особенности топологии Fusion 360
Опубликовано 29.07.2015     Читать далее >>>
25/07/2015

Документы, изделия, комплектующие, вхождения, и прокси в Fusion 360

Рассматриваются особенности сущностей Fusion 360
Опубликовано 25.07.2015     Читать далее >>>
24/07/2015

Связывание атрибутов блоков с использованием DataExtraction API

Команда ДАННЫЕИЗВЛ (_EATTEXT) в AutoCAD позволяет извлекать данные, такие как тексты и атрибуты блока и показывать их в таблице. Вот пример кода, который использует DataExtraction API и создаёт таблицу, связывая её с данными.
Опубликовано 24.07.2015     Читать далее >>>
23/07/2015

Удаление меню из строки меню и из памяти

Вопрос:

Моё приложение создаёт меню и добавляет его используя IAcadPopupMenus.Add. Удаление его позднее при помощи RemoveMenuFromMenuBar или IAcadPopupMenu.RemoveFromMenuBar работает, но повторная попытка добавить тоже самое меню терпит неудачу. Почему и как это исправить?

Ответ:

Хотя пользовательское меню может быть удалено из строки меню после добавления, меню остаётся в памяти AutoCAD. Это можно проверить если сравнить значения IAcadPopupMenus.GetCount() до и после удаления меню – значение останется тем же, так как меню остаётся внутри коллекции меню. Пожалуйста проверьте демонстрационный код ниже: он добавляет 3 меню в первую группу меню. Запустите снова и код удалит одно меню, и сравните счетчик меню до и после удаления.

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

Исключение при вызове метода NewExtrusion - один из параметров не удовлетворяет требованиям

Иногда, при вызове метода Document.FamilyCreate.NewExtrusion возникает исключение:  Autodesk.Revit.Exceptions.ArgumentException - один из параметров не удовлетворяет требованиям.

Опубликовано 21.07.2015     Читать далее >>>
19/07/2015

Возможности API. Сервис для просмотра Viewing Service

В API есть две основные операции – создание и чтение. Обращение к методам создания модели осуществляется с помощью POST запросов, а к методам чтения, с помощью GET:

  • API для создания (Create API) предназначено для вызова генерации объекта для просмотра. В большинстве случаев при этом происходи запуск процесса извлечения данных.
  • API для чтения предназначено для вызова методов просмотра модели по заданному URN (Uniform Resource Name – Единообразное название ресурса). Существует несколько опций для вызова GET запросов – По умолчанию, Все, Статус, с помощью которых определяется что же будет возвращено в результате.
Опубликовано 19.07.2015     Читать далее >>>
18/07/2015

View and Data API. Введение

View and Data API (VDAPI) – технология, которая позволяет вам создавать пользовательские web-приложения с отображением 3D и 2D моделей прямо в браузере или на мобильном устройстве. Всегда и везде. Не требуется устанавливать никакого дополнительно ПО.

View and Data API поддерживает более 60 различных форматов файлов, которые можно просматривать в потрясающем качестве и высокой детализацией. А REST и JavaScript API позволяет легко и быстро разрабатывать web-приложения.

Опубликовано 18.07.2015     Читать далее >>>
17/07/2015

События в Fusion API

Рассматриваются события API Fusion 360
Опубликовано 17.07.2015     Читать далее >>>
16/07/2015

Преобразование из .NET в COM с использованием управляемого (Managed) C++

После выбора объекта при помощи .NET (управляемый C++), как его преобразовать в COM-объект? Сначала нужно получить IUnknow-указатель из свойства AcadObject объекта, а затем преобразовать его в COM-объект. Эта процедура позволяет вам сохранить счетчик ссылок COM объекта.

Следующий код показывает как это сделать и как получить его имя типа. Напоминаю, что нужно установить для проекта свойство Mixed mode. Это легко сделать создав проект при помощи ObjectARX Wizard и указав ему использовать .NET.

Опубликовано 16.07.2015     Читать далее >>>
14/07/2015

Получение свойств примитива в AccoreConsole

"dumpallproperties" – это простейший способ для получения все свойств примитива при помощи Lisp. Но это не работает в scr-файле в AccoreConsole. Простейший способ для получения свойств AccoreConsole - создать CRX-плагин, который использует НЕ-COM систему свойств.

Если вы еще не знакомы с НЕ-COM системой свойств, тогда почитайте статью: Перезентация (DevTV): Не-COM система свойств

Пример в этой статье использует порцию кода из предыдущей статьи для создания CRX-приложения. Вот соответствующий код, а полный пример проекта можно скачать здесь:

Опубликовано 14.07.2015     Читать далее >>>
11/07/2015

Как получить строку подсказки атрибута блока при помощи VBA?

Мы можем получить строку подсказки атрибута из определения атрибута, содержащегося в определении блока. Следующий пример кода демонстрирует это:
Опубликовано 11.07.2015     Читать далее >>>
09/07/2015

Позиционирование AcPane в статусбаре

Я получил недавно вопрос от партнера ADN о позиционировании AcPane и сейчас я покажу пример кода, который выполняет именно эту функцию.

Прежде чем перейти к коду я должен сообщить, что в отличие от предыдущих версий AutoCAD 2015 не позволяет показывать текстовые метки в статусбаре – только иконки. Ранние версии позволяли переключаться между текстовыми метками и иконками. Теперь только иконки.

Я выполнил миграцию очень старого примера по работе с статусбаром, который был в составе ObjectARX SDK 2007 до текущих AutoCAD 2014/15.

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