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

23/08/2013

Две типичных ошибки работы с транзакциями

Возможно, это вырастет в целую серию о типичных ошибках.

Моя последняя статья была об обработке прерываний, и Adam написал замечание о неизвестных командах. Теперь две наиболее типичных ошибки людей работающих с транзакциями, когда они только начали использовать AutoCAD .NET API, которые могут потратить много часов для отладки и будут чувствовать себя крайне глупо, когда поймут в чем причина).

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

Использование транзитной графики

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

Это пример кода который использует транзитную графику для отображения точек пересечения прямоугольника и луча. Чтобы проверить его нарисуйте прямоугольник и выберите внутреннюю точку направления луча, когда программа спросит.

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

API для работы с фильтрами переопределения видимости/графики

В статье описываются несколько случаев, при которых нужно ипользовать новые в Revit API 2014 функции.
Опубликовано 22.08.2013     Читать далее >>>
21/08/2013

Как получить идентификатор типа Фасада здания

В статье описывавается способ как получить идентификатор типа Фасада здания, который необходим при создани нового фасада.
Опубликовано 21.08.2013     Читать далее >>>
19/08/2013

Добавление атрибутов к определению блока с использованием C++ COM/ActiveX Automation в ObjectARX

Фокус в том, чтобы сделать это используя интерфейсы I * Ptr интерфейсы (например, IAcadDocumentPtr), так что бы подсчет COM-ссылок осуществлялся автоматически.
А другой фокус в том, чтобы использовать VARIANT как можно реже, настолько насколько это возможно - для этого у нас есть AcAx-классы. Вот код:

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

Загрузка управляемой .NET сборки из ObjectARX приложения

Вопрос:

Как загрузить управляемую .NET сборку из ObjectARX приложения?

Ответ:

Чтобы загрузить управляемую сборку из arx-приложения, вы можете использовать экспортируемую из acdbmgd.dll функцию LoadManagedDll.

Опубликовано 19.08.2013     Читать далее >>>
16/08/2013

Задание примитиву свойства прозрачности используя метод setAlphaPercent

Это пример на ObjectARX задающий примитиву прозрачность, используя метод "setAlphaPercent". Этот метод можно использовать вместо метода "setAlpha" если вы хотите задать альфа-значение в процентах.

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

Изменение типа Видового экрана (ViewPort)

Изменение типа элемента с помощью параметра ELEM_FAMILY_AND_TYPE_PARAM
Опубликовано 15.08.2013     Читать далее >>>
14/08/2013

Изменение определения блока для одного вставленного блока

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

Опубликовано 14.08.2013     Читать далее >>>
12/08/2013

Использование 64-битного ActiveX компонента из .NET сборки

Вопрос:

Я использовал утилиты ADN (ADN utilities), которые включают несколько ActiveX компонентов. Теперь я портирую мой проект на 64-разрядную Windows и скачал 64-разрядные версии этих компонентов, однако я не могу поместить их на мою форму в Visual Studio.

Ответ:

Visual Studio - 32-разрядное приложение даже на 64-разрядной операционной системе, и она не поддерживает 64-разрядные ActiveX компоненты в Дизайнере форм (Form Designer). Но вы можете создать компонент программно в вашем коде.

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

Как FACETRES/VIEWRES соотносятся с AcGiCommonDraw::deviation() в ObjectARX

Вопрос:

Вы можете подробно объяснить как FACETRES и VIEWRES соотносятся с методом deviation() в классе AcGiCommonDraw?

Ответ:

Отклонение - (2D и 3D) это значение, которое управляет тонкостью тесселяции. Если значения стремится к нулю, тесселяция увеличивается...

Опубликовано 09.08.2013     Читать далее >>>
08/08/2013

Проблема с расположением двух и более видов на листе и ее решение

В статье описывается проблема с расположением видов на листе в одинаковое месторасположение и ее решение.
Опубликовано 08.08.2013     Читать далее >>>
08/08/2013

Как вычислить длину примитива в ObjectARX/.NET

Вы можете использовать методы getStartParam() и getEndParam() для получения начального и конечного параметров кривой - унаследованного от AcDbCurve примитива. Затем используя метод getDistAtParam() можно получить длину кривой. Смотрите ниже код для получения длины:

Опубликовано 08.08.2013     Читать далее >>>
07/08/2013

Делаем быстрыми worldDraw и viewportDraw пользовательского объекта

Вопрос:

Мой пользовательский примитив довольно сложный, и всякий раз, когда мои пользователи вызывают команды ПОВЕРНУТЬ (ROTATE) или ПЕРЕНЕСТИ (MOVE) или что-то, что требует постоянного обновления графики, эти операции становятся очень прерывистыми и медленными. Как я могу исправить эту ситуацию?

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

Различия между Curve.Length и Curve.ApproximateLength

Обсуждение различия двух похожих свойств класса Curve (Кривая)
Опубликовано 05.08.2013     Читать далее >>>
05/08/2013

Создание поверхности сопряжения ассоциированной с краями.

Это пример кода, создающего поверхность сопряжения, которая ассоциативно связана с краями двух других поверхностей. Ассоциативность подразумевает, что при изменении любой из этих поверхностей средствами AutoCAD, поверхность сопряжения будет автоматически изменена.

В этом коде создаются две выдавленных поверхности. Информация о краях этих поверхностей используется для создания профиля по сечениям. Профиль по сечениям используется для создания поверхности сопряжения.

Опубликовано 05.08.2013     Читать далее >>>
02/08/2013

Как преобразовать AcGeCircArc3d в AcDbArc и наоборот?

Следующий код показывает как это сделать:

Опубликовано 02.08.2013     Читать далее >>>
31/07/2013

DocumentChanged VS Dynamic Model Updater

Обзор и сравнение двух способов реагирования на изменение модели
Опубликовано 31.07.2013     Читать далее >>>
31/07/2013

Как поместить текст в нужное место, если текст имеет выравнивание?

Мы хотим поместить текст в определенное место с выравниванием СЦ (Середина-Центр). Но текст не помещается в нужно место несмотря на то, что выравнивание задано правильно.

Если вы хотите установить местоположение текста путем изменения его точка выравнивания, пожалуйста, воспользуйтесь кодом:

oTextEnt.AlignmentPoint = newPoint

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