Особенности, характерные для JavaScript - Часть 1
Особенности, Fusion 360 API, характерные для JavaScriptКак получить доступ и изменить свойства динамического блока в ARX и .NET
Вопрос:
У моего динамического блока есть свойство "Visibility", которое может быть в двух состояниях. Как мне получить доступ к этому свойству и изменить его?
Ответ:
Запустите следующий код с присоединённым в конце статьи чертежом. Выберите вставку динамического блока, код получит доступ к свойству Visibility и изменит его состояние. Вы сможете сразу увидеть результат после завершения работы кода.
Создание таблицы с содержимым только для чтения
Содержимое таблицы можно сделать с признаком «только для чтения» если установить соответствующее состояние ячейкам таблицы.
Следующий код создаёт таблицу с ячейками, которым установлено состояние "AcDb::kCellStateContentReadOnly"
Клонированный видовой экран есть, но невидим в только что созданном листе
Вопрос:
Имеется лист "Лист1" с видовым экраном "vp" в нём. Я хочу скопировать этот видовой экран при помощи ObjectARX (метод deepCloneObjects) в существующий, но пока не открытый лист "Лист2" этого же dwg-файла. Но скопированный в "Лист2" видовой экран невидим и не может быть выбран и найден ни при помощи команды СПИСОК (_LIST), ни каким другим способом.
Если же "Лист2" уже был хоть раз открыт перед копированием vp (даже без заполнения информации в диалоговом окне "Параметры листа"), всё работает прекрасно и vp прекрасно виден после перехода в "Лист2".
Что не так?
Копирование размерных стилей между чертежами при помощи C#
Этот пример показывает, как использовать метод WblockCloneObjects для копирования объектов между чертежами – в данном случае это набор размерных стилей. Он так же демонстрирует малоизвестный метод для получения последних (до 6 штук) использованных размерных стилей – GetDimRecentStyleList (по крайней мере, я раньше не натыкался на него).
Небольшое замечание. Распространенная ошибка многих людей для клонирования DBObjects использовать метод Clone. Его следует использовать осторожно, так как он производит лишь «поверхностное» копирование. В зависимости от того, зачем вам нужны клоны как правило лучше использовать WblockClone или DeepClone вместо обычного Clone.
Преобразование геометрических объектов в примитивы AutoCAD
Очень часто вы работаете с геометрическими объектами (экземплярами классов AcGeXXXX) для выполнения некоторых геометрических операций в 2D или в 3D. Для преобразования их в примитивы, которые могут быть добавлены в базу AutoCAD существует очень полезный метод в ObjectARX / AutoCAD .NET API.
Метод "acdbConvertGelibCurveToAcDbCurve", который выполняет эту функцию, был представлен в AutoCAD 2012. Эквивалентный метод в AutoCAD .NET API появился в AutoCAD 2013.
Особенности, характерные для C++ - Часть 5
Отладка сценария или надстроек на MacОсобенности, характерные для C++ - Часть 4
Отладка сценариев или надстроек WindowsОсобенности, характерные для C++ - Часть 3
Файлы заголовков, итерации, равенства объектов, вспомогательные функцииОсобенности, характерные для C++ - Часть 2
Типы объектов и приведение типов, событияОсобенности, характерные для C++ - Часть 1
Специфические для ОС особенности, объявление объекта, обработка ошибок, свойстваПараметры типа для системных семейств
Вопрос: Надеюсь кто-нибудь сможет мне помочь как получить параметры типа для системных семейств. Я могу получить параметры экземпляра, такие как Площадь или объем, но не могу, например, Ключевую пометку.
Создание рабочего набора
Вопрос: Я разрабатываю надстройку для Revit. Мое приложение создает документ в заданной директории по моему шаблону. Мне нужно создать новый проект с рабочим набором. В интерфейсе приложения пользователь должен выбрать специальность, путь для сохранения файла, название рабочего набора и нажать кнопочку «Создать файл». Приложение должно создать проект с рабочими наборами. Это возможно? Как это сделать? Спасибо.
Установка и очистка признака модификации документа в .NETАвтор: Александр Ривилис
Установка и очистка признака модификации документа в .NET
Для установки и очистки признака модифицированности документа можно воспользоваться недокументированной функцией acdbSetDbMod, которая экспортируется из acdbNN.dll, где NN зависит от версии AutoCAD. Пример использования этой функции:
Редактирование связанного файла
Вопрос: В своем коде я пытаюсь создать пространство внутри связанной модели. Но, получаю ошибку при вызове метода NewSpace:
Хотя я вызываю метод внутри транзакции главного документа и поэтому не пойму, почему появляется ошибка.
Преобразование координат листа в координаты модели
Вопрос: Вы отмечали, что в Revit API есть пробел, связанный с конвертацией между координатами модели и координатами листа. Это как раз то, с чем мы столкнулись.
Нам нужно получить границы геометрии элемента на листе.
В Revit 2016 этот пробел все еще существует? Есть ли какой-то способ обойти это ограничение?
View And Data API - Пошаговое Руководство
View and Data API - Пошаговое руководство - перевод Елизаветы Чаплыгиной (pdf-файл)Обновление Палитры Внешних ссылок при помощи Microsoft UI Automation
В этой статье мы рассмотрим процедуру обновления Палитры Внешних Ссылок AutoCAD. Прежде, чем мы углубимся в детали, вот некоторая справочная информация о том, почему может потребоваться обновлять эту палитру.Палитра внешних ссылок AutoCAD превращается в расширенное стандартное окно (ESW) в том случае если установлен плагин Vault для AutoCAD. Поскольку статус возврата / получения файлов отображаются в Палитре Внешних Ссылок, необходимо обновление палитры для отображения текущего состояния в том случае, когда статус изменён извне при помощи клиента Vault.
В силу того, что нет никакого публичного API для этого, мы рассмотрим использование Microsoft UI Automation для имитации нажатия кнопки Обновить. Пожалуйста, обратите внимание, что подход, предложенный здесь не поддерживается Autodesk, а опирается на Win32 и UI Automation API. Если вы будете использовать этот подход, пожалуйста, проверить его более детально в своем приложении.
Как объединить отрезки и дуги в полилинию?Автор: Александр Ривилис
Эта статья навеяна темой на форуме Полилинии и дуги в одну полилинию
Начиная с AutoCAD 2011 для этой цели можно воспользоваться методами Entity.JoinEntity и Entity.JoinEntities из AutoCAD .NET API, а также AcDbJoinEntityPE::joinEntity и AcDbJoinEntityPE::joinEntities из ObjectARX. Интереснее показать как можно это реализовать самостоятельно в .NET и в ObjectARX:
Модифицируем Ассоциативный массив по траектории при помощи API
В этой статье мы рассмотрим как можно модифицировать ассоциативный массив по траектории при помощи API. Массив по траектории может зависеть или от расстояния между элементами или между количеством элементов в зависимости от свойств массива. Следующий образец кода уменьшает количество элементов или увеличивает расстояние между элементами для уменьшения количества элементов вдоль пути.