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

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     Читать далее >>>
12/10/2013

Проецирование кривой на поверхность

Ниже пример кода проецирования отрезка на цилиндрическую поверхность. Создаётся цилиндрическая поверхность и отрезок, а затем отрезок проецируется на поверхность. Проекция добавляется в базу чертежа.

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

Расчленение MText, содержащего управляющие коды

Для того, чтобы расчленить примитив MText на фрагменты его текста можно использовать метод "ExplodeFragments".
Опубликовано 11.10.2013     Читать далее >>>
10/10/2013

Копирование тела из одного компонента в другой

Вопрос:
Пример “Associative body copy API Sample” из Inventor API Help работает некорректно в случае создания не ассоциативной копии твердого тела, а именно, тело-копия неправильно позиционируется.

Ответ:
Действительно, проблема в том, что преобразование координат, связанное с компонентом в сборке, не учитывается во время копирования объекта SurfaceBodyProxy. Ниже приводится обновленная версия исходного примера, в которой эта проблема учтена.

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

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

Получение фрагментов текста из примитива MText

Используем метод “ExplodeFragments”, как показано ниже в коде, для разбивки текстовой строки MText на фрагменты. Функция обратного вызова, которая передается методу “ExplodeFragments” вызывается для каждого фрагмента текста примитива MText.

Опубликовано 09.10.2013     Читать далее >>>
27/09/2013

Получение положения мыши (курсора) без события

AutoCAD API реализует интерфейс AcEdInputPointManager.InputPointMonitor который отслеживает любой ввод пользователя, в том числе и перемещение мыши. При помощи API можно отслеживать и сообщения в очереди Windows. Иногда нужно получить текущее положение мыши без наступления какого-либо события. Следующий код демонстрирует как это можно сделать. В действительности достаточно получить текущее положение курсора Windows и преобразовать его в координаты AutoCAD. Следует учитывать также ПСК.
Опубликовано 27.09.2013     Читать далее >>>
27/09/2013

Запуск правил iLogic из внешнего приложения

При работе с объектами iLogic из Inventor AddIn доступ к ним можно реализовать в режиме раннего связывания. Если же требуется получить к ним доступ из внешнего приложения, приходится пользоваться поздним связыванием. Причина кроется в том, что объекты iLogic не являются истинными COM объектами, они в действительности представляют собой обертки для .NET объектов.

Опубликовано 27.09.2013     Читать далее >>>
27/09/2013

Создание перекрытия с отверстиями (продолжение)Автор: Виктор Чекалин

Ранее обсуждался способ создания перекрытия со несколкими границами. В данной статье обсуждается еще один способ, как программно создать такое перекрытие.
Опубликовано 27.09.2013     Читать далее >>>
26/09/2013

Как реагировать на клавиши курсора (без передачи их в AutoCAD) используя ObjectARX?

В ObjectARX вы можете добавить фильтр в функцию обработки окна AutoCAD можно использовать PInvoke для использования этой функциональности в .NET).

Опубликовано 26.09.2013     Читать далее >>>
25/09/2013

Смещение элементовАвтор: Виктор Чекалин

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

Петля штриховки использующая коллекцию Curve2d

Чтобы создать штриховку информация для создания петли может быть указана как коллекция ObjectId содержащихся в базе примитивов. Тут лучше всего посмотреть эту статью: Создание объектов штриховки с использованием трассировки границ в .NET. Другой путь заключается в работе с одной лишь геометрией без добавления примитивов в базу.
Опубликовано 24.09.2013     Читать далее >>>
23/09/2013

Создание больших сборок средствами Inventor API. Общие рекомендации.

В данной статье собраны некоторые рекомендации общего характера, которые могут оказаться полезными при генерации сборок большой размерности средствами Inventor API. Вопросы настройки компьютерного «железа» не затрагиваются.

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

Описание метода Database.ResolveXrefs

Если вам интересно, что за параметры используются в методе…

public void Database.ResolveXrefs(bool useThreadEngine, bool doNewOnly)

…тогда взгляните описание эквивалентной функции в ObjectARX Reference Guide

Опубликовано 21.09.2013     Читать далее >>>
20/09/2013

Изменение имени Растрового изображения

В поле «имя» в палитре свойств AutoCAD для Растрового изображения отображается имя из записи словаря, используемого для хранения RasterImageDef в словаре именованных объектов "ACAD_IMAGE_DICT". Чтобы изменить имя Растрового изображения мы создадим новый RasterImageDef и ассоциируем все существующие Растровые изображения с ним. Важно также отключить реакторы растрового изображения перед тем как RasterImageDef будет выгружен и удален.

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