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

06/05/2018

Определение радиуса и центра кругового конуса при помощи .NET

Мы можем использовать BREP API для определения радиуса и центра кругового конуса (свойства, показанные на изображении панели свойств).

Ниже фрагмента кода .NET, который можно использовать:

Опубликовано 06.05.2018     Читать далее >>>
06/05/2018

Установка исходной точки при создании штриховки с помощью .NET

У нас был вопрос, поднятый клиентом относительно установления исходной точки штриховки в процессе создания штриховки.
Опубликовано 06.05.2018     Читать далее >>>
28/04/2018

Просмотр внешнего вида типа линии

Я получил такое задание от пользователя – получить внешний вид типа линии при помощи API.

Мы воспользуемся свойством Comments чтобы получить описание типа линии в форме строки:

Опубликовано 28.04.2018     Читать далее >>>
17/04/2018

AutoCAD 2019 ObjectARX wizard и .NET wizard

Опубликовано 17.04.2018     Читать далее >>>
20/03/2018

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

По аналогии с тем, как это делается в ObjectARX, это можно сделать при помощи B-Rep API и в AutoCAD .NET API. Следующий код иллюстрирует как получить пересечение линейного примитива (ОТРЕЗОК, ЛУЧ, ПРЯМАЯ) с примитивом, который представляется в виде ACIS (т.е. твердое тело - SOLID, область - REGION, или тело BODY).

Опубликовано 20.03.2018     Читать далее >>>
18/03/2018

Подсветка сегмента полилинии

Этот код демонстрирует как использовать subentitypath для подсветки определенного сегмента полилинии. Вы можете использовать метод Unhighlight для снеятия подсветки сегмента полилинии (этот метод здесь не приводится). Не забудьте прочитать соответствующую тему по этому методу в ObjectARX Managed Reference Guide прежде чем использовать его в своём коде – там есть несколько деталей, которые следует учитывать.

Опубликовано 18.03.2018     Читать далее >>>
30/01/2018

Как сделать объекты AutoCAD аннотативными в .NET

В этой статье мы решим два вопроса:
  1. Как создать и добавить к чертежу новый масштаб аннотации?
  2. Как сделать примитивы аннотативными и присвоить им допустимые масштабы аннотаций?

Ниже приведен код, в котором содержатся два метода – команды:

Команда ADS позволит нам создать новый масштаб аннотации с именем "МойМасштаб 1:28", а команда ATS позволит сделать выбранный примитив аннотативным и назначить ему масштабы аннотаций:

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

Как выбрать грани соседствующие с выбранным ребром 3DSOLID

Используя BREP API, довольно просто получить смежные грани для выбранного ребра 3DSOLID.

Мы будем использовать Boundary Loop, чтобы получить все петли, в которые входит выбранное ребро для получения соседних граней.

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

Создание таблиц со строками различной высоты средствами .NET

Создание таблиц при помощи методов Table.InsertColumns и Table.InsertRows достаточно сложно и ниже мы опишем несколько сценариев, которые могут быть полезными.

Опубликовано 01.09.2017     Читать далее >>>
22/08/2017

Добавление MTEXT к ячейке таблицы

Это пример кода вставки MText’а в указанную пользователем ячейку Таблицы. Можно передавать RTF-контент в MText или создавать строку с использованием кодов форматирования.

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

В AutoCAD 2018.1 метод UpgradeOpen приводит к фатальной ошибке внутри транзакцииАвтор: Александр Ривилис

Вопрос: Я обнаружил, что если использовать метод UpgradeOpen внутри транзакции, в которой этот объект открыт для чтения, то это приводит к фатальной ошибке. Пример кода, приводящий к такой ошибке:

Опубликовано 05.08.2017     Читать далее >>>
10/07/2017

Как проверить средствами .NET имеется ли в типе линии текст или нет

Недавно партнер ADN поинтересовался методом, который позволил бы определить содержится ли текст в типе линии или нет перед тем, как получить этот текст.

Чтобы получить текст из типа линии можно воспользоваться методом LinetypeTableRecord.TextAt, но он генерирует исключение eNotApplicable если текста нет в переданном индексе типа линии. Чтобы исключить генерацию исключения можно проверить на ObjectId.Null значение, которое возвращает LinetypeTableRecord.ShapeStyleAt. Этот метод возвращает ObjectId.Null если нет текста в указанном индексе в LinetypeTableRecord.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Как определить, что мы находимся в контексте печати

Недавно я получил ряд запросов от разработчиков как идентифицировать состояние печати в overrule. Чтобы идентифицировать это состояние используем “Context.IsPlotGeneration” как показано ниже в коде:

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

AecModeler и AutoCAD 2017 Service Pack 1

В hideDisplay API класса Body в AecModeler для AutoCAD 2017 есть проблемы. Ниже обновленный модуль.

AecModeler для AutoCAD 2017 SP1

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