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

29/06/2017

Как установить ось Z ПСК вдоль линии в .NETАвтор: Александр Ривилис

Вопрос: Имеются различные линии в AutoCAD (отрезки, полилинии, сплайны). Как можно установить ось Z текущей ПСК вдоль линии в указанной пользователем точке?

Ответ: Ниже приведён код, который позволяет установить ось Z ПСК вдоль выбранной пользователем линии. В качестве начала координат ПСК выбирается точка на линии, ближайшая к указанной пользователем точке:

Опубликовано 29.06.2017     Читать далее >>>
14/06/2017

История изменений AutoLISP начиная с AutoCAD2009

В справке AutoCAD2018 есть замечательная статья о новых и измененных функция AutoLISP.
Опубликовано 14.06.2017     Читать далее >>>
31/05/2017

Как получить каноническое имя формата листа для локального имени формата?Автор: Александр Ривилис

Вопрос: Пользователь в команде ПЕЧАТЬ (_PLOT) выбирает формат листа по его локальному имени, а в программе для печати следует задавать каноническое имя формата. Как можно получить соответствие между локальным и каноническим именами формата?

Ответ: Ниже приведен код на VBA, реализующий преобразование локального имени в каноническое. Основное преобразование происходит в функции GetCanonicalFromLocalName.

Опубликовано 31.05.2017     Читать далее >>>
30/05/2017

Отображение анимации и содержимого CAM

Рассматриваются особенности отображения дополнительных моделей и представлений
Опубликовано 30.05.2017     Читать далее >>>
03/05/2017

Как получить список доступных плоттеров/форматов в AutoCAD?Автор: Александр Ривилис

Как получить список доступных плоттеров/форматов в AutoCAD?

Вопрос: Как получить список доступных плоттеров в AutoCAD и список канонических имён форматов для каждого из доступных плоттеров?

Ответ: Для получения списка доступных плоттеров нужно воспользоваться методом PlotSettingsValidator.GetPlotDeviceList, а для получения канонических имён форматов – PlotSettingsValidator.GetCanonicalMediaNameList

Ниже пример того, как можно выбрать только плоттеры, в имени которых есть строка «PDF», и получить список канонических имён их форматов:

Опубликовано 03.05.2017     Читать далее >>>
28/04/2017

Получение данных ячейки таблицы AutoCAD с помощью Design Automation API

Рассматривается пример работы с Autodesk Forge Design Automation API
Опубликовано 28.04.2017     Читать далее >>>
18/04/2017

Правильный способ получения списка пользовательских папок при помощи DataManagement API

Рассматриваются особенности получения списка папок для пользователей без прав администратора
Опубликовано 18.04.2017     Читать далее >>>
17/04/2017

Простой пример 2-legged службы

В статье рассматривается пример создания службы, предоставляющей токен с правами только для чтения на Node.JS
Опубликовано 17.04.2017     Читать далее >>>
14/04/2017

Защита токена Forge Viewer при помощи прокси-сервера

Эта статья иллюстрирует спосооб укрепления безопасность вашего приложения Forge Viewing Application при помощи прокси-сервера, чтобы избежать передачи токена в клиентский код JavaScript.
Опубликовано 14.04.2017     Читать далее >>>
07/04/2017

Включение поддержки https для локального nodejs

Рассматриваются особенности настройки https для локального nodejs при тестировании проектов по Autodesk Forge
Опубликовано 07.04.2017     Читать далее >>>
03/04/2017

Возобновляемая загрузка файла при помощи Forge SDK на C#

Рассматривается выгрузка файлов частями при помощи Forge SDK на C#
Опубликовано 03.04.2017     Читать далее >>>
02/04/2017

Миграция кода для использования пакета npm forge-apis

Рассматриваются особенности перехода на модуль npm forge-apis
Опубликовано 02.04.2017     Читать далее >>>
29/03/2017

Как получить имя примитива из Панели свойств?Автор: Александр Ривилис

Как получить имя примитива из Панели свойств?

Вопрос: В панели свойств есть название примитива, который находится в наборе предварительного выбора (pickfirst):

Это название – локализованная строка. Например, в русской локализации – Дуга, в английской – Arc. Как можно имея идентификатор AcDbObjectId этого примитива узнать его имя?

Ответ: Ниже приводится полный код, который печатает имя выбранного примитива:

Опубликовано 29.03.2017     Читать далее >>>
23/03/2017

Определение внешних ссылок, требующих обновленияАвтор: Александр Ривилис

Определение внешних ссылок, требующих обновления

Вопрос: Как определить, что в чертеже есть внешние ссылки, которые требуют обновления?

Ответ: Это возможно только в том случае, когда системная переменная XREFNOTIFY отлична от 0 (в противном случае AutoCAD не отслеживает изменение внешних ссылок и не уведомляет об изменениях).

Для получения информации об изменившихся внешних ссылках следует пробежаться по графу внешних ссылок и найти те, статус (XrefNotificationStatus) которых равен ResolvedUpdateAvailable

Код может выглядеть так:

Опубликовано 23.03.2017     Читать далее >>>
28/02/2017

Мониторинг изменения рабочего пространства

Если вам нужно отслеживать переключения рабочего пространства (например, в случае если вы используете Ribbon Runtime API для добавления элементов управления в Ленту), то вам достаточно отслеживать изменение системной переменной WSCURRENT
Опубликовано 28.02.2017     Читать далее >>>
28/02/2017

Как запретить выполнение конкретной команды AutoCAD

Вы можете запретить выполнение команды внутри события “DocumentCollection.DocumentLockModeChanged”. Это событие вызывается сразу перед тем как AutoCAD начнёт выполнение этой команды. Посмотрите как можно запретить завершение работы AutoCAD.

Опубликовано 28.02.2017     Читать далее >>>
17/02/2017

Как получить данные кнопки, которая запускает командуАвтор: Виктор Чекалин

Пользователь Legantmar на форуме задал интересный вопрос, можно ли получить название кнопки, по нажатию которой была вызвана команда.

Опубликовано 17.02.2017     Читать далее >>>
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     Читать далее >>>
02/02/2017

Как реализовать PlotSettingsValidator.SetClosestMediaName в .NET

Комментарий в документации о методе "PlotSettingsValidator.SetClosestMediaName" гласит:

"Эта функция не реализована."

Ниже предложение того, как можно реализовать этот метод в C# используя AutoCAD .NET API:

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

Печать границ окна при помощи VBA

Я получил вопрос от партнера ADN почему его код, который печатает содержимого окна в действительности ничего не печатает, а для других чертежей печатает нормально.

Ключевая проблема в том что API для печати принимает координаты в системе координат дисплея DCS (ДСК). Так что координаты указанные пользователем следует преобразовать из ПСК (UCS) в ДСК (DCS).

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