Использование базы данных Oracle внутри AutoCAD
Вопрос: Возникла проблема подключения базы Oracle к AutoCAD. Как при помощи API получить информацию из моей базы Oracle?Ответ: Начиная с AutoCAD 2020 он только 64-разрядный – нет 32-разрядного AutoCAD.
Если вы хотите подключится к Oracle вам понадобятся 64-разрядные OLE Db драйвера клиента Oracle.
Как получить каноническое имя формата листа для локального имени формата?Автор: Александр Ривилис
Вопрос: Пользователь в команде ПЕЧАТЬ (_PLOT) выбирает формат листа по его локальному имени, а в программе для печати следует задавать каноническое имя формата. Как можно получить соответствие между локальным и каноническим именами формата?
Ответ: Ниже приведен код на VBA, реализующий преобразование локального имени в каноническое. Основное преобразование происходит в функции GetCanonicalFromLocalName.
Печать границ окна при помощи VBA
Я получил вопрос от партнера ADN почему его код, который печатает содержимого окна в действительности ничего не печатает, а для других чертежей печатает нормально.
Ключевая проблема в том что API для печати принимает координаты в системе координат дисплея DCS (ДСК). Так что координаты указанные пользователем следует преобразовать из ПСК (UCS) в ДСК (DCS).
Как получить строку подсказки атрибута блока при помощи VBA?
Мы можем получить строку подсказки атрибута из определения атрибута, содержащегося в определении блока. Следующий пример кода демонстрирует это:Получение постоянных атрибутов вставки блока при помощи VBA
Как можно получить имя блока, значения атрибутов, найти количество вставок блока и всё это внести в таблицу при помощи VBA? Получаем информацию о блоке из определения блока в таблице блоков.Где сейчас можно найти инсталляционные пакеты VBA для старых версий AutoCAD?
Где сейчас можно найти инсталляционные пакеты VBA для старых версий AutoCAD? К сожалению, с нынешнего момента невозможно загрузить пакеты VBA для AutoCAD 2011-2013Совместимость макросов VBA в AutoCAD2014x64
Нередко возникают вопросы, связанные с переходом на AutoCAD 2014 x64 с более ранних версий (или с 32-разрядной версии AutoCAD 2014). Звучит это примерно так: "Мой макрос VBA использует несколько дополнительных контролов (далее OCX) или библиотек типов (TypeLibrary). Макрос прекрасно работал в AutoCAD вплоть до версии 2014. Сейчас макрос выдает ошибку, связанную именно с этими OCX/TypeLibrary"AutoCAD, VBA и производительность
Описываются причины, по которым Вы можете отказаться от идеи использования VBA в AutoCAD x64 версий 2008-2013. То есть совсем отказаться. Вызвав текстовое окно (клавиша F2), можно иногда увидеть фразу наподобие Initializing VBA System... Всего лишь после инициализации VBA-системы в AutoCAD некоторые команды могут выполняться на порядок дольше. Конечно, значение "в 10 раз" может плавать в большую или меньшую сторону (зависит от очень многих факторов). При этом, что самое интересное, даже необязательно загружать какой бы то ни было DVB - AutoCAD и так начнет безбожно тормозить.Использование открытой облегченной полилинии в качестве границы штриховки в VBA
Вопрос:
Как можно использовать открытую облегченную полилинию (LWPOLYLINE) в качестве границы при создании штриховки? Можно ли так же использовать метод AddVertex для добавления вершин к облегченной полилинии?
Решение:
Следующий код содержит функцию, которая создаёт открытую облегченную полилинию (используя метод AddVertex), хотя начальная и конечная точки совпадают. Эта полилиния затем используется в качестве внешней границы штриховки.
AutoCAD 2014 API (VBA)
Филипп Леефсма (Philippe Leefsma) создал презентацию (DevTV) о новшествах в AutoCAD 2014 API. Вы можете скачать её отсюда (на английском).
Получение координат контура подрезки
Вопрос:
Я могу установить контур подрезки при помощи метода AcadRasterImage.ClipBoundary, но как я могу получить координаты уже существующего контура подрезки? Я знаю, что если контур прямоугольный, то я могу получить граничный прямоугольник, ширину и высоту. А если контур подрезки имеет неправильную (непрямоугольную) форму, то я не могу найти ни одного метода, чтобы получить его координаты.
Решение:
Эквивалент метода из ObjectARX AcDbRasterImage::clipBoundary() не представлен в текущей модели ActiveX Automation.
Мы можем самостоятельно предоставить такой метод. Полный проект прилагается: ImgClipBoundary
AutoCAD 2014 для разработчиков (VBA)
Сегодня официальный анонс продуктов семейства 2014. AutoCAD 2014 на днях будет доступен пользователям по всему миру. Вы, несомненно, найдете много информации в сети относительно особенностей продукта, так что я собираюсь сосредоточиться именно на возможностях и требованиях для разработчиков.