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

19/07/2013

В какой системе координат возвращает точку GetClosestPointTo() для вставки блока при помощи ObjectARX

Вопрос:

Почему координаты ближайшей точки (с использованием GetClosestPointTo()) полученной для вставки блока не соответствуют ни МСК (WCS), ни ПСК (UCS)?

Ответ:

Точки получаются относительно системы координат AcDbBlockTableRecord владельца. Если вы хотите конвертировать из системы координат AcDbBlockTableRecord, в которой находится AcDbBlockReference, вам нужно преобразовать их при помощи AcDbBlockReference::blockTransform().

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

Поиск спецификаций на листе

Guy Robinson недавно рассказал нам о легком способе как получить доступ ко всем элементам спецификации. Виктор Чекалин немного расширил возможности данного метода. Ниже представлено его решение как получить все спецификации на листе и все элементы в спецификации.
Опубликовано 19.07.2013     Читать далее >>>
19/07/2013

Доступ к элементам спецификации

Быстрый небольшой пост, с неожиданно коротким и простым ответом на маленький и в то же время сложный вопрос.
Опубликовано 19.07.2013     Читать далее >>>
19/07/2013

Свойство IsShared для класса FamilyParameter

Довольно давно мы обсуждали способ как получить доступ к идентификатору общего параметра семейства (GUID) с помощью рефлексии. Если вы новичок в данном вопросе, вы можете ознакомиться с более подробной статьей Reflection in .NET на сайте CodeProject (на англ.).
Опубликовано 19.07.2013     Читать далее >>>
18/07/2013

Как определить что свойства примитива изменены при помощи Панели Свойств?

Вопрос:

Как я могу узнать, что свойства примитива изменены через Панель свойств (OPM)?

Ответ:

Панель свойств при изменении объекта запускает уведомления о событиях начала и конца модификации, используя строку "OPM_CHGPROP"

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

Как найти все вставки динамического блока

В предыдущей статье Баладжи Рамамурти (Balaji Ramamoorthy) показал нам как найти имя динамического блока по одной из вставок блока. Эта статья показывает нам как двигаться в противоположном направлении – найти все вставки динамического блока.

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

Как использовать метод AcDbRegion::getAreaProp()

Первые три параметра метода описываются как:

  • origin — Возвращает начальную точку области
  • xAxis — Возвращает ось X области
  • yAxis — Возвращает ось Y области

Но учитывая объявления этих параметров как const :

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

Как открыть, закрыть и проверить состояние палитр инструментов (ToolPalettes) через LISP

Вопрос: Как проверить состояние палитр инструментов (ToolPalette) через LISP? Ответ: Если надо гарантированно открыть палитры...
Опубликовано 10.07.2013     Читать далее >>>
09/07/2013

Как использовать класс AcadAppInfo для чтения и записи информации из реестра

Вопрос:
Как можно использовать класс AcadAppInfo для чтения и записи информации из (в) реестр?

Ответ:
Следующий код подразумевает, что вы загрузили пример POLYSAMP в AutoCAD. (Вы можете найти этот пример в каталоге ObjectARX SDK\Samples\entity\). Измените имя приложения в аргументе функции setAppName() чтобы получить собственную информацию вашего приложения из реестра.

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

Как использовать длинные транзакции для эмуляции команды -ССЫЛРЕД

Команды -ССЫЛРЕД (-REFEDIT) и ССЫЛРЕД (REFEDIT) обеспечивают возможность контекстного редактирования блока (по месту). Они позволяют переключатся между вложенными ссылками блока. Тогда AutoCAD принимает подсвеченную вставку блока для редактирования по месту. Приложение посылает команду -ССЫЛРЕД для переключения в режим редактирования для удобства пользователя.

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

Как заставить команду УВЕЛИЧИТЬ работать с пользовательским примитивом

Команда УВЕЛИЧИТЬ (LENGTHEN) может работать только со следующими классами или пользовательскими объектами, унаследованными от этих классов:

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

Visual Studio 2008 для ObjectARX 2010/11/12

Правильная версия для работы с ObjectARX SDK 2010, 2011, 2012 – это VisualStudio 2008 с ServicePack 1.

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

API для ГРАФНАСТР (3DCONFIG)

Вопрос:

Мне известно, что я могу воспользоваться версией команды 3DCONFIG для командной строки, чтобы изменить установки графической подсистемы, т.е. SendStringToExecute(). Однако было бы хорошо сделать тоже самое непосредственно при помощи API.

Ответ:

Вы можете это сделать при помощи класса AcGsConfig.

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

AutoCAD 2014 API (.NET API)

Филипп Леефсма (Philippe Leefsma) создал презентацию (DevTV) о новшествах в AutoCAD 2014 API. Вы можете скачать её отсюда (на английском).

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

AutoCAD 2014 API (JavaScript)

Филипп Леефсма (Philippe Leefsma) создал презентацию (DevTV) о новшествах в AutoCAD 2014 API. Вы можете скачать её отсюда (на английском).

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

AutoCAD 2014 API (AutoLisp)

Филипп Леефсма (Philippe Leefsma) создал презентацию (DevTV) о новшествах в AutoCAD 2014 API. Вы можете скачать её отсюда (на английском).

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

AutoCAD 2014 API (VBA)

Филипп Леефсма (Philippe Leefsma) создал презентацию (DevTV) о новшествах в AutoCAD 2014 API. Вы можете скачать её отсюда (на английском).

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

AutoCAD 2014 API (ObjectARX)

Филипп Леефсма (Philippe Leefsma) создал презентацию (DevTV) о новшествах в AutoCAD 2014 API. Вы можете скачать её отсюда (на английском).

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

Как загрузить из неуправляемого arx-приложения управляемую .NET сборку в AutoCAD?Автор: Александр Ривилис

Вопрос: У меня есть arx-приложение и dll-сборка (.NET-сборка). Я бы хотел загружать dll-сборку в AutoCAD непосредственно из arx-приложения, а не использовать отложенную загрузку меняя ключи реестра или команду _NETLOAD. Я пробовал функцию acrxDynamicLinker->loadModule(), но она не работает с управляемыми сборками.

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

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

Как в своём коде используя AutoCAD .NET API переопределить команду ССЫЛРЕД (_REFEDIT)?Автор: Александр Ривилис

Как в своём коде используя AutoCAD .NET API переопределить команду ССЫЛРЕД (_REFEDIT)?

Вопрос: Мне нужно в своем коде переопределить команду _REFEDIT так, чтобы в некоторых случаях (например, имя чертежа содержало строку Test) вызывался мой код, а в некоторых стандартная команда _REFEDIT. Я проверил, что для команды ОТРЕЗОК (_LINE) работает такой код:

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