Зумирование, панорамирование и орбита текущего вида AutoCAD с помощью ObjectARX
Наш коллега Киан написал статью о зумировании, панорамировании и орбите текущего вида при помощи .NET. Я переписал этот код с помощью ObjectARX.Пример кода аннотации для нескольких арматурных стержней
Длина имен ключей в словаре
К именам ключей в словаре применимы те же правила, что и к именам в символьных таблицах: не больше 255 символов, должны быть буквенно-цифровые и могут содержать символы доллара ($), подчеркивания (_) и переноса (-). Можно использовать функцию acdbSNValid() для проверки допустимости имени.
Линия привязки
В статье обсуждается как программно можно изменить линюю привязки стеныЗакрытие документов из унаследованного от CAdUiDialog диалога
Вопрос:
Я не могу закрыть документы с использованием closeDocument API из диалога, унаследованного от CAdUiDialog, так как AutoCAD сообщает, что документ занят. Почему это происходит?
Изменение путей к внешним ссылкам из абсолютных в относительные
Чтобы поменять пути к внешним ссылкам (XREF) из абсолютных в относительные нужно просто изменить строку BlockTableRecord.PathName так, чтобы она определяла относительный путь (или вообще без пути если мы полагаемся на то, что FindFile может найти наш Xref).Определение максимального воздушного потока в соединителях воздуховодов
Использование ActiveX интерфейса AutoCAD при его завершении
Мы можем попробовать использовать в ObjectARX-приложении ActiveX интерфейс AutoCAD для установки пользовательского профиля при старте и завершении AutoCAD при помощи интерфейсов IAcadApplication и IAcadPreferences
Использование Window.Focus в AutoCAD 2014
Среди новых API в AutoCAD 2014 включен метод Window.Focus. Этот метод очень полезен в том случае если вы используете палитры для вызова команд, которые заставляют AutoCAD запрашивать у пользователя информацию. В предыдущих версиях AutoCAD его редактор не получал фокус пока на нём не был активизирован. Это требовало дополнительного нажатия кнопки мыши. Чтобы избежать этого требовалось или вызвать функцию SetFocus из Win32 API посредством P/Invoke или использовать недокументированный метод Internal.Utils.SetFocusToDwgView.
AutoCAD, VBA и производительность
Описываются причины, по которым Вы можете отказаться от идеи использования VBA в AutoCAD x64 версий 2008-2013. То есть совсем отказаться. Вызвав текстовое окно (клавиша F2), можно иногда увидеть фразу наподобие Initializing VBA System... Всего лишь после инициализации VBA-системы в AutoCAD некоторые команды могут выполняться на порядок дольше. Конечно, значение "в 10 раз" может плавать в большую или меньшую сторону (зависит от очень многих факторов). При этом, что самое интересное, даже необязательно загружать какой бы то ни было DVB - AutoCAD и так начнет безбожно тормозить.Выбор подходящего вида при вставке семейства
Описание решение проблемы, связанной с использованием метода PromptForFamilyInstancePlacement в Revit 2014.Использование открытой облегченной полилинии в качестве границы штриховки в VBA
Вопрос:
Как можно использовать открытую облегченную полилинию (LWPOLYLINE) в качестве границы при создании штриховки? Можно ли так же использовать метод AddVertex для добавления вершин к облегченной полилинии?
Решение:
Следующий код содержит функцию, которая создаёт открытую облегченную полилинию (используя метод AddVertex), хотя начальная и конечная точки совпадают. Эта полилиния затем используется в качестве внешней границы штриховки.
Последовательность загрузки приложений в AutoCAD с учетом SECURELOAD
В продолжение темы "Последовательность загрузки приложений в AutoCAD" хотелось бы осветить вопрос о безопасности и о шагах, предпринятых Autodesk в этом отношении.Использование реакторов в AutoCAD Javascript API
Вам необходимо прочитать статью о введении в Javascript API для AutoCAD. Это небольшой пример, демонстрирующий использование реакторов. В этом примере мы будем включать/выключать реактор ObjectModified для выбранного примитива.
Parameter.DisplayUnitTypeАвтор: Виктор Чекалин
В статье описывается способ улучшения производительности при работе со свойством DisplayUnitType класса Parameter.Выбор примитивов пространства Модели из пространства Листа без предварительного выбора видового экрана средствами ObjectARX
Вопрос:
Как можно выбрать примитивы Модели находясь в Листе без предварительного выбора видового экрана?
Ответ:
В ObjectARX есть недокументированная функция acedNEntSelPEx(), которая позволяет сделать именно это. Она даже позволяет передать точку указания при помощи параметра ‘pickflag’, так что вы сами можете обеспечить точку в пространстве листа.
Использование события выбора ячейки в таблице
В момент выбора ячейки вы можете захотеть узнать её номер ряда и колонки в таблице.Подходящего события в публичном AutoCAD .NET API нет, но в пространстве имён "Autodesk.AutoCAD.Internal.Reactors" есть такое событие. Обратите внимание, что использование любых классов/методов из пространства имён "Internal" не поддерживается и они могут быть изменены в любое время. Так что если вы собираетесь их использовать, проверьте их полностью, чтобы убедиться что они работают корректно в вашем приложении.