Создание поверхности сопряжения ассоциированной с краями.
Это пример кода, создающего поверхность сопряжения, которая ассоциативно связана с краями двух других поверхностей. Ассоциативность подразумевает, что при изменении любой из этих поверхностей средствами AutoCAD, поверхность сопряжения будет автоматически изменена.
В этом коде создаются две выдавленных поверхности. Информация о краях этих поверхностей используется для создания профиля по сечениям. Профиль по сечениям используется для создания поверхности сопряжения.
Как преобразовать AcGeCircArc3d в AcDbArc и наоборот?
Следующий код показывает как это сделать:
DocumentChanged VS Dynamic Model Updater
Обзор и сравнение двух способов реагирования на изменение моделиКак поместить текст в нужное место, если текст имеет выравнивание?
Мы хотим поместить текст в определенное место с выравниванием СЦ (Середина-Центр). Но текст не помещается в нужно место несмотря на то, что выравнивание задано правильно.
Если вы хотите установить местоположение текста путем изменения его точка выравнивания, пожалуйста, воспользуйтесь кодом:
oTextEnt.AlignmentPoint = newPoint
Как получить свойство документа?
Если вы хотите получить доступ к свойству документа, как это делает команда СВОЙСТВАРИС (DWGPROPS) вам нужно будет воспользоваться функцией acdbGetSummaryInfo. Это глобальная функция, которая получает информацию файла.
Как получить заштрихованный примитив из примитива штриховки (HATCH)?
Когда примитив заштрихован ассоциативной штриховкой (AcDbHatch) – штриховка ассоциирована с заштрихованным примитивом. Как можно найти эту штриховку?
Штриховка реагирует на изменение примитива путём уведомления. В действительности штриховка имеет постоянный реактор на заштрихованный примитив. Этим можно воспользоваться для получения штриховки. Следующий код демонстрирует это:
Переименование или копирование анонимного блока с использованием LISP или VBA
Вопрос: как можно анонимному блоку задать другое имя, например, TestBlock? Ответ: задать имя анонимному блоку возможно. Например, можно переименовать анонимный блок со служебным именем *T1 в TestBlock. Во время вызова команды _.insert или _.block в списке доступных блоков имя TestBlock не показывается, хотя блок с таким именем и существует...Как получить список всех единиц измерения для заданной категории
Как получить координаты курсора мыши в ПСК?
Следующий код (фильтр сообщений окна) получает и печатает координаты курсора мыши в ПСК. Координаты те же, что показывает AutoCAD в свой строке состояния.
Как получить доступ к флагу 'Задание пути' в диалоге ССЫЛКА?
Не существует ни системной переменной, ни пользовательской настройки, которая позволила бы получить доступ к этому флагу, кроме того, что обеспечивается с помощью команды ССЫЛКА (XREF). Тем не менее, при помощи кода можно установить путь внешней ссылки напрямую.
Создание перекрытия (пола) с несколькими границами или проемами
В статье описывается способ создания перекрытия с несколькми границамиВ каком случае набор выбора, возвращаемый acedGetCurrentSelectionSet() действителен в ObjectARX?
Вопрос:
Я не могу понять в каком случае acedGetCurrentSelectionSet() должен вернуть мне действительный набор выбора. Можете объяснить мне?
Кроме того, как мне очистить набор предварительного выбора (PICKFIRST)?
Ответ:
Функция acedGetCurrentSelectionSet() заполняет набор выбора значениями ObjectID всех примитивов из текущего набора выбора AutoCAD. «Текущий набор выбора» может быть одним из следующих:
Как показать правильно числовое значение в Панели Свойств (OPM)?
Вопрос:
Я создал COM-обертку для собственного примитива. Похоже, что любые плавающие значения, которые я добавляю в COM-обертку автоматически показываются так, как установлено в диалоге «Единицы чертежа». Например, значение 14.500 автоматически отображается в Панели Свойств AutoCAD как 1'-2½".
Есть ли способ переопределить это поведение Панели свойств, чтобы плавающее число не меняло свой вид и показывалось «как есть»?
Ответ:
По умолчанию Панель Свойств интерпретирует плавающие числа как значение расстояния.
Как восстановить потерянные границы штриховки?
Вопрос:
Как можно восстановить границы штриховки, если они были потеряны по каким-то причинам?
Ответ:
В AutoCAD’е нет отдельной команды, которая бы восстанавливала контур штриховки, но это можно сделать средствами ObjectARX API.
В какой системе координат возвращает точку GetClosestPointTo() для вставки блока при помощи ObjectARX
Вопрос:
Почему координаты ближайшей точки (с использованием GetClosestPointTo()) полученной для вставки блока не соответствуют ни МСК (WCS), ни ПСК (UCS)?
Ответ:
Точки получаются относительно системы координат AcDbBlockTableRecord владельца. Если вы хотите конвертировать из системы координат AcDbBlockTableRecord, в которой находится AcDbBlockReference, вам нужно преобразовать их при помощи AcDbBlockReference::blockTransform().
Поиск спецификаций на листе
Guy Robinson недавно рассказал нам о легком способе как получить доступ ко всем элементам спецификации. Виктор Чекалин немного расширил возможности данного метода. Ниже представлено его решение как получить все спецификации на листе и все элементы в спецификации.Доступ к элементам спецификации
Быстрый небольшой пост, с неожиданно коротким и простым ответом на маленький и в то же время сложный вопрос.Свойство IsShared для класса FamilyParameter
Довольно давно мы обсуждали способ как получить доступ к идентификатору общего параметра семейства (GUID) с помощью рефлексии. Если вы новичок в данном вопросе, вы можете ознакомиться с более подробной статьей Reflection in .NET на сайте CodeProject (на англ.).Как определить что свойства примитива изменены при помощи Панели Свойств?
Вопрос:
Как я могу узнать, что свойства примитива изменены через Панель свойств (OPM)?
Ответ:
Панель свойств при изменении объекта запускает уведомления о событиях начала и конца модификации, используя строку "OPM_CHGPROP"
Как найти все вставки динамического блока
В предыдущей статье Баладжи Рамамурти (Balaji Ramamoorthy) показал нам как найти имя динамического блока по одной из вставок блока. Эта статья показывает нам как двигаться в противоположном направлении – найти все вставки динамического блока.