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

29/07/2013

Как получить свойство документа?

Если вы хотите получить доступ к свойству документа, как это делает команда СВОЙСТВАРИС (DWGPROPS) вам нужно будет воспользоваться функцией acdbGetSummaryInfo. Это глобальная функция, которая получает информацию файла.

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

Как получить заштрихованный примитив из примитива штриховки (HATCH)?

Когда примитив заштрихован ассоциативной штриховкой (AcDbHatch) – штриховка ассоциирована с заштрихованным примитивом. Как можно найти эту штриховку?

Штриховка реагирует на изменение примитива путём уведомления. В действительности штриховка имеет постоянный реактор на заштрихованный примитив. Этим можно воспользоваться для получения штриховки. Следующий код демонстрирует это:

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

Переименование или копирование анонимного блока с использованием LISP или VBA

Вопрос: как можно анонимному блоку задать другое имя, например, TestBlock?

Ответ: задать имя анонимному блоку возможно. Например, можно переименовать анонимный блок со служебным именем *T1 в TestBlock. Во время вызова команды _.insert или _.block в списке доступных блоков имя TestBlock не показывается, хотя блок с таким именем и существует...

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

Как получить координаты курсора мыши в ПСК?

Следующий код (фильтр сообщений окна) получает и печатает координаты курсора мыши в ПСК. Координаты те же, что показывает AutoCAD в свой строке состояния.

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

Как получить доступ к флагу 'Задание пути' в диалоге ССЫЛКА?

Не существует ни системной переменной, ни пользовательской настройки, которая позволила бы получить доступ к этому флагу, кроме того, что обеспечивается с помощью команды ССЫЛКА (XREF). Тем не менее, при помощи кода можно установить путь внешней ссылки напрямую.

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

Создание перекрытия (пола) с несколькими границами или проемами

В статье описывается способ создания перекрытия с несколькми границами
Опубликовано 22.07.2013     Читать далее >>>
22/07/2013

В каком случае набор выбора, возвращаемый acedGetCurrentSelectionSet() действителен в ObjectARX?

Вопрос:

Я не могу понять в каком случае acedGetCurrentSelectionSet() должен вернуть мне действительный набор выбора. Можете объяснить мне?

Кроме того, как мне очистить набор предварительного выбора (PICKFIRST)?

Ответ:

Функция acedGetCurrentSelectionSet() заполняет набор выбора значениями ObjectID всех примитивов из текущего набора выбора AutoCAD. «Текущий набор выбора» может быть одним из следующих:

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

Как показать правильно числовое значение в Панели Свойств (OPM)?

Вопрос:

Я создал COM-обертку для собственного примитива. Похоже, что любые плавающие значения, которые я добавляю в COM-обертку автоматически показываются так, как установлено в диалоге «Единицы чертежа». Например, значение 14.500 автоматически отображается в Панели Свойств AutoCAD как 1'-2½".

Есть ли способ переопределить это поведение Панели свойств, чтобы плавающее число не меняло свой вид и показывалось «как есть»?

Ответ:

По умолчанию Панель Свойств интерпретирует плавающие числа как значение расстояния.

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

Как восстановить потерянные границы штриховки?

Вопрос:

Как можно восстановить границы штриховки, если они были потеряны по каким-то причинам?

Ответ:

В AutoCAD’е нет отдельной команды, которая бы восстанавливала контур штриховки, но это можно сделать средствами ObjectARX API.

Опубликовано 19.07.2013     Читать далее >>>
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     Читать далее >>>