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

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     Читать далее >>>
07/07/2015

Выбор точки на 3DSolid при выборе примитива

Функция acedEntSel даёт возможность пользователю выбрать примитив и также позволяет получить точку, которая была указана при выборе примитива. Когда эту функцию используют с 2D-примитивом, тока возвращаемая acedEntSel очень удобна в случае если нужна информация для таких задач как РАЗОРВАТЬ (Break), ОБРЕЗАТЬ (Trim) и т.д.

Однако если acedEntSel используется с 3DSolid, точка возвращается в плоскости XY текущей ПСК вне зависимости от того где указали точку на 3DSolid. Если включена объектная привязка (OSNAP) при выборе примитива, тогда точка будет на поверхности 3DSolid. Если важно получить точку на 3DSolid, которая использовалась при выборе объекта именно при помощи кода, то можно использовать следующий алгоритм:

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

Как получить формат файла для сохранения по-умолчанию

Я недавно получил вопрос от партнера ADN о возможности получить формат файла по-умолчанию для сохранения файла при помощи API или команды. Я не уверен можно ли это сделать командными методами, но вот небольшой пример как это сделать при помощи API.
Опубликовано 02.07.2015     Читать далее >>>
29/06/2015

Настройка пользовательского интерфейса Fusion 360 при помощи Fusion API - Часть 2

Обсуждается настройка существующего пользовательского интерфейса Fusion.
Опубликовано 29.06.2015     Читать далее >>>
27/06/2015

Чтение таблицы ASHRE

В Revit MEP мы можем получить Настройки метода определения потерь в виде ASHRE таблицы. Но, проблема в том, что эта таблица не доступна напрямую, так как она не прикреплена к элементу. Вопрос в том, как получить доступ к информации, предоставленной ниже на скриншоте:

 

Опубликовано 27.06.2015     Читать далее >>>
27/06/2015

Создание пользовательских команд Fusion - Часть 3

Рабочий процесс команды
Опубликовано 27.06.2015     Читать далее >>>
26/06/2015

Загрузка DVB и запуск макроса VBA при помощи AutoCAD COM API в ObjectARX

Вопрос:
Как я могу загрузить dvb-файл и выполнить макро при помощи AutoCAD COM интерфейса?

Ответ:
Следующий код показывает как это можно сделать:

Опубликовано 26.06.2015     Читать далее >>>
26/06/2015

Отсутствие PipeScheduleType в файле шаблона rte

Я столкнулся со странной проблемой в Revit 2015. В файле проекта, созданного с помощью шаблона, присланного от клиента, полностью отсутствуют PipeScheduleType (Спецификация/Тип). Я имею ввиду, что свойство  PipeType.Class всегда равно null, даже если в документе определены сегменты труб.

 

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