Преобразование геометрии прямоугольника, ограничивающего объект (BoundingBox)
Получение всех полей (field) примитива AutoCAD
Такие примитивы AutoCAD как MText и Text могут содержать более одного поля. Чтобы получить доступ к этим полям нужно использовать метод “GetChildren”. Код ниже показывает каким образом следует использовать метод “GetChildren”. Чтобы получить объект Field используется метод “GetField” (без параметров).
Обратное преобразование растрового изображения
Вставка блока (BlockReference) предоставляет матрицу преобразования "BlockTransform", которая очень полезна, когда необходимо преобразовать примитив так, чтобы свести на нет последствия перемещения, вращения и масштабирования. А растровое изображение (RasterImage) не предоставляет такой матрицы. Но мы можем её создать сами, зная значения поворота, смещения и масштабирования по X и Y. Вот код примера, который устраняет масштабирование, смещение и поворот выбранного растрового изображения:Проецирование кривой на поверхность
Ниже пример кода проецирования отрезка на цилиндрическую поверхность. Создаётся цилиндрическая поверхность и отрезок, а затем отрезок проецируется на поверхность. Проекция добавляется в базу чертежа.
Расчленение MText, содержащего управляющие коды
Для того, чтобы расчленить примитив MText на фрагменты его текста можно использовать метод "ExplodeFragments".Создание пользовательской закрепляемой панелиАвтор: Виктор Чекалин
Копирование тела из одного компонента в другой
Вопрос:Пример “Associative body copy API Sample” из Inventor API Help работает некорректно в случае создания не ассоциативной копии твердого тела, а именно, тело-копия неправильно позиционируется.
Ответ:
Действительно, проблема в том, что преобразование координат, связанное с компонентом в сборке, не учитывается во время копирования объекта SurfaceBodyProxy. Ниже приводится обновленная версия исходного примера, в которой эта проблема учтена.
Действительно, проблема в том, что преобразование координат, связанное с компонентом в сборке, не учитывается во время копирования объекта SurfaceBodyProxy. Ниже приводится обновленная версия исходного примера, в которой эта проблема учтена.
Получение фрагментов текста из примитива MText
Используем метод “ExplodeFragments”, как показано ниже в коде, для разбивки текстовой строки MText на фрагменты. Функция обратного вызова, которая передается методу “ExplodeFragments” вызывается для каждого фрагмента текста примитива MText.
Программный доступ к настройкам размеров воздуховодов
Получение положения мыши (курсора) без события
AutoCAD API реализует интерфейс AcEdInputPointManager.InputPointMonitor который отслеживает любой ввод пользователя, в том числе и перемещение мыши. При помощи API можно отслеживать и сообщения в очереди Windows. Иногда нужно получить текущее положение мыши без наступления какого-либо события. Следующий код демонстрирует как это можно сделать. В действительности достаточно получить текущее положение курсора Windows и преобразовать его в координаты AutoCAD. Следует учитывать также ПСК.Запуск правил iLogic из внешнего приложения
При работе с объектами iLogic из Inventor AddIn доступ к ним можно реализовать в режиме раннего связывания. Если же требуется получить к ним доступ из внешнего приложения, приходится пользоваться поздним связыванием. Причина кроется в том, что объекты iLogic не являются истинными COM объектами, они в действительности представляют собой обертки для .NET объектов.
Создание перекрытия с отверстиями (продолжение)Автор: Виктор Чекалин
Ранее обсуждался способ создания перекрытия со несколкими границами. В данной статье обсуждается еще один способ, как программно создать такое перекрытие.Как реагировать на клавиши курсора (без передачи их в AutoCAD) используя ObjectARX?
В ObjectARX вы можете добавить фильтр в функцию обработки окна AutoCAD можно использовать PInvoke для использования этой функциональности в .NET).
Петля штриховки использующая коллекцию Curve2d
Чтобы создать штриховку информация для создания петли может быть указана как коллекция ObjectId содержащихся в базе примитивов. Тут лучше всего посмотреть эту статью: Создание объектов штриховки с использованием трассировки границ в .NET. Другой путь заключается в работе с одной лишь геометрией без добавления примитивов в базу.Создание больших сборок средствами Inventor API. Общие рекомендации.
В данной статье собраны некоторые рекомендации общего характера, которые могут оказаться полезными при генерации сборок большой размерности средствами Inventor API. Вопросы настройки компьютерного «железа» не затрагиваются.
Описание метода Database.ResolveXrefs
Если вам интересно, что за параметры используются в методе…public void Database.ResolveXrefs(bool useThreadEngine, bool doNewOnly)
…тогда взгляните описание эквивалентной функции в ObjectARX Reference Guide…
Изменение имени Растрового изображения
В поле «имя» в палитре свойств AutoCAD для Растрового изображения отображается имя из записи словаря, используемого для хранения RasterImageDef в словаре именованных объектов "ACAD_IMAGE_DICT". Чтобы изменить имя Растрового изображения мы создадим новый RasterImageDef и ассоциируем все существующие Растровые изображения с ним. Важно также отключить реакторы растрового изображения перед тем как RasterImageDef будет выгружен и удален.