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

27/07/2016

Обновление Revit Lookup для версии 2017

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

Поиск проемов в стене

Вопрос: Я пытаюсь получить с помощью API проемы в стене. Меня в частности интересует координаты прямоугольного проема.

 

Я попытался исапользовать метод FindInserts() для этого, но он не возвращает проемы.

Есть ли решение для этого?

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

Чтение иерархии связанных файлов

Для чтения иерархии нужно поиграться со методами GetParentId и GetChilds, чтобы построить иерархию. Также есть метод GetRootId, но он в данном случае он не используется.

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

Руководство по полям oAuth API Autodesk Forge

Рассматриваются особенности полей oAuth API Autodesk Forge
Опубликовано 27.07.2016     Читать далее >>>
26/07/2016

Загрузка и выполнение VBA-макроса из .NET приложения

Код ниже показывает процедуру загрузки и выполнения VBA-макроса из .NET сборки. Здесь используются методы LoadDVB и RunMacro из AutoCAD ActiveX API. Так как код использует ключевое слово dynamic (или Reflection), то отпадает необходимость подключать ссылки к AutoCAD ActiveX (interop) модулям.

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

Основы oAuth API Autodesk Forge - часть 2

Общие сведения об аутентификации и потоках авторизации
Опубликовано 25.07.2016     Читать далее >>>
22/07/2016

Добавление полей к атрибутам блока, вставленными в пространство модели

Вот статья, которая объясняет, как вставить блок с атрибутами.

Ниже C#-код, вставляющий поле (field) в атрибут блока. Создайте чертеж с блоком с именем "test" содержащий окружность (Circle) и определение атрибута с произвольным именем для тестирования кода.

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

Выгрузка и загрузка PDF-подложек

Следующий код показывает как выгрузить (загрузить) все PDF-подложки. Для того, чтобы они исчезли (появились) необходима регенерация всех вставок PDF в чертеже. Для получения всех PDF-вставок используется метод PdfDefinition.GetPersistentReactorIds.
Опубликовано 21.07.2016     Читать далее >>>
21/07/2016

Как определить направление взгляда для пространста модели с помощью AutoLISP/VisualLISP

Иногда спрашивают, каким образом можно поределить направление взгляда для определенного видового экрана пространства модели. Я обнаружил, что сделать это только средствами LISP'a сложно. Под словом "сложно" подразумевается тот факт, что найти решение без переключения систтемной переменной TILEMODE не удалось. Может быть, кому-то оно и известно - тогда добро пожаловать в обсуждение.
Опубликовано 21.07.2016     Читать далее >>>
21/07/2016

Как вставить блок с атрибутами в пространство модели

Определение блока содержится в BlockTableRecord. Если у блока есть атрибуты, то они содержатся в BlockTableRecord как AttributeDefinition – точно также как и любые другие примитивы.

Когда мы вставляем блок в чертеж (точнее в пространство модели), то мы вставляем BlockReference. Если у блока есть атрибуты, то для всех (кроме постоянных) AttributeDefinition в BlockTableRecord имеются соответствующие AttributeReference присоединённые к BlockReference. Постоянные атрибуты обрабатываются не так, потому что их текст одинаков во всех вставках этого блока (во всех BlockReference). Они находятся в BlockTableRecord, и не имеют соответствующих AttributeReference присоединённых к BlockReference.

Ниже простой C#-код для вставки блока с атрибутами в пространство модели. Создайте чертеж, содержащий блок с именем “CHECK” содержащий несколько атрибутов (часть постоянных, часть нет) для проверки кода.

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

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

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

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

LISP. Получение строковых значений при активном динамическом вводе

Представим себе ситуацию - в lisp-программе необходимо получить от пользователя некоторые данные. Не будем сейчас рассматривать экзотические способы вроде написания временных диалогов или обращения к WScript - обойдемся стандартными get*-функциями.
Опубликовано 20.07.2016     Читать далее >>>
16/07/2016

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

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

Как позволить пользователю прервать длительную операцию в AutoCAD .NET

Если у вас запущена длительная операция, то вам может понадобится возможность прервать эту операцию (при помощи клавиши ESC). Следующий код работал в AutoCAD 2007…2009, но он продолжает по-прежнему исправно работать и в AutoCAD 2017.
Опубликовано 16.07.2016     Читать далее >>>
04/07/2016

Основы oAuth API Autodesk Forge - часть 1

Рассматриваются основы oAuth API Autodesk Forge
Опубликовано 04.07.2016     Читать далее >>>
28/06/2016

Выполнение подрезки блока или внешней ссылки при помощи .NETАвтор: Александр Ривилис

Вопрос: Как средствами AutoCAD .NET API можно выполнить подрезку блока или внешней ссылки (по аналогии с командой _XCLIP)

Ответ: Для этой цели используется пространственный фильтр (SpatialFilter). Следующий код показывает как выполнить подрезку блока/внешней ссылки при помощи произвольного замкнутого многоугольника:

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

Обзор OAuth API

Общие сведения об OAuth API Autodesk Forge
Опубликовано 27.06.2016     Читать далее >>>
20/06/2016

Fusion API - Изменение внешнего вида тела

Особенности работы с материалом и внешним видом тела при помощи Fusion 360 API
Опубликовано 20.06.2016     Читать далее >>>
18/06/2016

Как сделать команды в плагине недоступными в .NET

Вопрос: Недавно я получил вопрос о том, как сделать недоступными команды из плагина в случае если проверка лицензии неудачна.

Ответ: Один из вариантов – проверить лицензию в методе IExtensionApplication.Initialize() и генерировать исключение если проверка лицензии потерпела неудачу. После генерации исключения ни одна из команд в плагине не будет доступна пользователю.

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

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

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

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

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