Как установить ось Z ПСК вдоль линии в .NETАвтор: Александр Ривилис
Вопрос: Имеются различные линии в AutoCAD (отрезки, полилинии, сплайны). Как можно установить ось Z текущей ПСК вдоль линии в указанной пользователем точке?Ответ: Ниже приведён код, который позволяет установить ось Z ПСК вдоль выбранной пользователем линии. В качестве начала координат ПСК выбирается точка на линии, ближайшая к указанной пользователем точке:
История изменений AutoLISP начиная с AutoCAD2009
В справке AutoCAD2018 есть замечательная статья о новых и измененных функция AutoLISP.Как получить каноническое имя формата листа для локального имени формата?Автор: Александр Ривилис
Вопрос: Пользователь в команде ПЕЧАТЬ (_PLOT) выбирает формат листа по его локальному имени, а в программе для печати следует задавать каноническое имя формата. Как можно получить соответствие между локальным и каноническим именами формата?
Ответ: Ниже приведен код на VBA, реализующий преобразование локального имени в каноническое. Основное преобразование происходит в функции GetCanonicalFromLocalName.
Отображение анимации и содержимого CAM
Рассматриваются особенности отображения дополнительных моделей и представленийКак получить список доступных плоттеров/форматов в AutoCAD?Автор: Александр Ривилис
Как получить список доступных плоттеров/форматов в AutoCAD?
Вопрос: Как получить список доступных плоттеров в AutoCAD и список канонических имён форматов для каждого из доступных плоттеров?
Ответ: Для получения списка доступных плоттеров нужно воспользоваться методом PlotSettingsValidator.GetPlotDeviceList, а для получения канонических имён форматов – PlotSettingsValidator.GetCanonicalMediaNameList
Ниже пример того, как можно выбрать только плоттеры, в имени которых есть строка «PDF», и получить список канонических имён их форматов:
Получение данных ячейки таблицы AutoCAD с помощью Design Automation API
Рассматривается пример работы с Autodesk Forge Design Automation APIПравильный способ получения списка пользовательских папок при помощи DataManagement API
Рассматриваются особенности получения списка папок для пользователей без прав администратораПростой пример 2-legged службы
В статье рассматривается пример создания службы, предоставляющей токен с правами только для чтения на Node.JSЗащита токена Forge Viewer при помощи прокси-сервера
Эта статья иллюстрирует спосооб укрепления безопасность вашего приложения Forge Viewing Application при помощи прокси-сервера, чтобы избежать передачи токена в клиентский код JavaScript.Включение поддержки https для локального nodejs
Рассматриваются особенности настройки https для локального nodejs при тестировании проектов по Autodesk ForgeВозобновляемая загрузка файла при помощи Forge SDK на C#
Рассматривается выгрузка файлов частями при помощи Forge SDK на C#Миграция кода для использования пакета npm forge-apis
Рассматриваются особенности перехода на модуль npm forge-apisКак получить имя примитива из Панели свойств?Автор: Александр Ривилис
Как получить имя примитива из Панели свойств?
Вопрос: В панели свойств есть название примитива, который находится в наборе предварительного выбора (pickfirst):
Это название – локализованная строка. Например, в русской локализации – Дуга, в английской – Arc. Как можно имея идентификатор AcDbObjectId этого примитива узнать его имя?
Ответ: Ниже приводится полный код, который печатает имя выбранного примитива:
Определение внешних ссылок, требующих обновленияАвтор: Александр Ривилис
Определение внешних ссылок, требующих обновления
Вопрос: Как определить, что в чертеже есть внешние ссылки, которые требуют обновления?
Ответ: Это возможно только в том случае, когда системная переменная XREFNOTIFY отлична от 0 (в противном случае AutoCAD не отслеживает изменение внешних ссылок и не уведомляет об изменениях).
Для получения информации об изменившихся внешних ссылках следует пробежаться по графу внешних ссылок и найти те, статус (XrefNotificationStatus) которых равен ResolvedUpdateAvailable
Код может выглядеть так:
Мониторинг изменения рабочего пространства
Если вам нужно отслеживать переключения рабочего пространства (например, в случае если вы используете Ribbon Runtime API для добавления элементов управления в Ленту), то вам достаточно отслеживать изменение системной переменной WSCURRENTКак запретить выполнение конкретной команды AutoCAD
Вы можете запретить выполнение команды внутри события “DocumentCollection.DocumentLockModeChanged”. Это событие вызывается сразу перед тем как AutoCAD начнёт выполнение этой команды. Посмотрите как можно запретить завершение работы AutoCAD.
Как получить данные кнопки, которая запускает командуАвтор: Виктор Чекалин
Пользователь Legantmar на форуме задал интересный вопрос, можно ли получить название кнопки, по нажатию которой была вызвана команда.
Пример 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
Как реализовать PlotSettingsValidator.SetClosestMediaName в .NET
Комментарий в документации о методе "PlotSettingsValidator.SetClosestMediaName" гласит:"Эта функция не реализована."
Ниже предложение того, как можно реализовать этот метод в C# используя AutoCAD .NET API:
Печать границ окна при помощи VBA
Я получил вопрос от партнера ADN почему его код, который печатает содержимого окна в действительности ничего не печатает, а для других чертежей печатает нормально.
Ключевая проблема в том что API для печати принимает координаты в системе координат дисплея DCS (ДСК). Так что координаты указанные пользователем следует преобразовать из ПСК (UCS) в ДСК (DCS).