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

31/10/2013

Управление видимостью Точки в AutoCAD

Системная переменная “PDMODE” управляет отображением примитива Точка в AutoCAD. Эта переменная может иметь значения между 0 и 5, между 32 и 36, между 64 и 68 и между 96 и 100. Это значение можно изменить меняя свойство “Pdmode” для Database.

Опубликовано 31.10.2013     Читать далее >>>
29/10/2013

Хранение пользовательских конфигураций вкладок в Vault

В ряде случаев возникает необходимость централизованного хранения конфигурации пользовательских настроек вкладок. Стандартный способ – это работа через Vault Option. Основная проблема в том, что пользовательские вкладки регистрируются до подключения Vault Explorer к Vault. Так как быть с настройкой пользовательских вкладок или команд, если невозможно прочитать Vault Option?

Решение довольно простое – достаточно вывести уведомление о необходимости перезапуска Vault Explorer. Этот метод работает для пользовательских команд, вкладок и обработчиков пользовательских объектов.

Так, например, Vault Web View имеет дело с двумя копиями конфигурационных настроек. Одна хранится локально в виде XML-файла в том же каталоге, что и DLL расширения. Другая копия представлена в виде данных, которые расположены в Vault Option. Когда Vault Web View настраивает вкладки, он производит эту операцию на основании локального файла настроек.

Опубликовано 29.10.2013     Читать далее >>>
29/10/2013

Использование пользовательских данных чертежа в полях

.NET/ObjectARX API позволяет использовать пользовательские свойства в полях. Следующий код показывает, как это сделать на примере пользовательского свойства Адрес (“Address”).

Опубликовано 29.10.2013     Читать далее >>>
26/10/2013

Зеркальное отображение примитива однострочного текста (DBText)

Некоторое время назад, когда этого блога еще не было, был написан следующий .NET код для отзеркаливания однострочного текста (DBText), чтобы решить один из запросов от члена AND. Через какое-то время снова возникла необходимость в этом коде. Вы сами сможете увидеть, что он не так прост, как могло бы показаться:

Опубликовано 26.10.2013     Читать далее >>>
26/10/2013

Выравнивание примитива по трем точкам

Ниже приведен пример кода, который выравнивает выбранный примитив по трем базовым и трем целевым точкам. Порядок, в котором точки выбираются, показан на картинке. Приведен пример чертежа для проверки кода.

Опубликовано 26.10.2013     Читать далее >>>
24/10/2013

Добавление поля, содержащего данные другого примитива

Следующий код показывает как можно добавить поле, которое показывает данные другого примитива (в данном случае площадь полилинии). От пользователя требуется выбрать полилинию и местоположение, в котором создается примитив MText. Этот MText и будет показывать площадь выбранной полилинии.

Опубликовано 24.10.2013     Читать далее >>>
22/10/2013

Как показать диалоговое окно редактирования поля (Field) средствами ObjectARX

Вы можете показать диалоговое окно AutoCAD редактирования поля, используя функцию “AcFdUiInvokeFieldDialog”. При помощи этой функции можно показать диалог и вернуть объект поля, выбранный пользователем, переданный как первый параметр. Код ниже показывает как это сделать:

Опубликовано 22.10.2013     Читать далее >>>
21/10/2013

Изменение цвета вложенных примитивов AutoCAD с помощью .NET

Меня спрашивали как изменить цвет всех примитивов внутри блоков.

Следующий код использует рекурсивную вспомогательную функцию для итерирования внутри блоков, изменяющую цвет множества примитивов (не вставок блока – для них простая рекурсия).

Опубликовано 21.10.2013     Читать далее >>>
19/10/2013

Изменение цвета вершины у сети (SubDMesh)

Чтобы назначить цвета вершинам сети (SubDMesh), примитив сети (SubDMesh) должен быть предварительно добавлен в базу данных чертежа, прежде чем вызвать метод "AcDbSubDMesh::setVertexColorArray". Вот пример:

Опубликовано 19.10.2013     Читать далее >>>
17/10/2013

Получение кода поля (field) из объекта Field

Следующая программа показывает процедуру получения кода поля текстового примитива. Сначала она проверяет есть ли поля, ассоциированные с этим текстовым примитивом, при помощи метода “HasFields”. Затем используется метод “GetField” для получения объекта Field, а из него при помощи метода “GetFieldCode” получается код поля.

Опубликовано 17.10.2013     Читать далее >>>
15/10/2013

Получение всех полей (field) примитива AutoCAD

Такие примитивы AutoCAD как MText и Text могут содержать более одного поля. Чтобы получить доступ к этим полям нужно использовать метод “GetChildren”. Код ниже показывает каким образом следует использовать метод “GetChildren”. Чтобы получить объект Field используется метод “GetField” (без параметров).

Опубликовано 15.10.2013     Читать далее >>>
13/10/2013

Обратное преобразование растрового изображения

Вставка блока (BlockReference) предоставляет матрицу преобразования "BlockTransform", которая очень полезна, когда необходимо преобразовать примитив так, чтобы свести на нет последствия перемещения, вращения и масштабирования. А растровое изображение (RasterImage) не предоставляет такой матрицы. Но мы можем её создать сами, зная значения поворота, смещения и масштабирования по X и Y. Вот код примера, который устраняет масштабирование, смещение и поворот выбранного растрового изображения:
Опубликовано 13.10.2013     Читать далее >>>