Логотип сайта поддержки пользователей САПРО сайте поддержки пользователей САПР Translate to:

AutoCAD VBA Code Examples

Перевод и редакция
Евгения Калашникова
tb5@ugm.zsmk.ru

Здесь представлены примеры процедур и функций, написанных на VBA и предназначенных для работы в AutoCAD. Большинство примеров любезно предоставили:

   Marie Rath   rwrath75@worldnet.att.net 
 Randall Rath   rwrath73@worldnet.att.net 
 Ralph J Llama   rwrath74@worldnet.att.net 
 Jessica Rath   rwrath76@worldnet.att.net 

их сайт VBDESIGN, посвященный программированию для AutoCAD расположен по адресу
http://www.vbdesign.net 

Все размещенные здесь примеры опробованы на практике в AutoCAD 2000, в некоторых исправлены замеченные незначительные ошибки и добавлены краткие пояснения.
Если я что упустил или не заметил, если кто-нибудь заметит какие либо ошибки просьба сообщить мне на E-Mail tb5@ugm.zsmk.ru


Команды AutoCAD на VBA

Пример функции, выполняющей над заданным объектом любую команду AutoCAD

Определение и отмена текущей команды AutoCAD

Запуск процедуры VBA из командной строки AutoCAD

Команда Array (Массив копий)

Прямоугольный массив копий группы объектов

Команда Break (Разрыв объекта)

Набор функций для разрыва отрезка по двум заданным точкам

Команды Copy (Копирование), Move (Перемещение) и Rotate (Поворот)

Пример перемещения текстовых объектов

Копирование и поворот выбранных объектов

Команды Offset (Эквидистанта)

Эквидистантная копия на заданный слой

Команда Purge (Очистка базы данных чертежа)

Удаление из базы данных чертежа неиспользуемых блоков

Удаление из базы данных чертежа неиспользуемых типов линий

Удаление из базы данных чертежа неиспользуемых слоев

Удаление из базы данных чертежа неиспользуемых слоев, блоков или типов линий по выбору

Удаление из базы данных чертежа неиспользуемых групп объектов

Удаление из базы данных чертежа всех неиспользуемых объектов с помощью диалогового окна

Команда Trim (Обрезка)

Обрезка одной линии по другой

Команда Zoom (Масштабирование)

Масштабирование изображения по габаритам заданного примитива

Масштабирование изображения по блоку, выбранному с помощью диалогового окна

 

Объекты AutoCAD

Меню и панели инструментов

Пример процедуры, добавляющей к AutoCAD новое меню

Отображение экранного меню

Загрузка меню из файла mnc

Создание кнопки меню с закрепленной процедурой VBA

Создание панели инструментов для заморозки слоя по выбранному объекту и разморозки всех слоев

Скрытие и отображение всех панелей инструментов

Слои

Сохранение и восстановление состояния слоев
(информация о состоянии слоев сохраняется в текстовом файле)

Создание базы данных с информацией о слоях

Создание массива с данными о всех слоях чертежа

Изменение имени слоев чертежа

Проверка наличия в чертеже слоя с заданным именем

Выбор слоя по объекту

Заморозка слоя по выбранному объекту

Разморозка всех слоев чертежа

Удаление всех объектов с заданного слоя

Сортировка примитивов чертежа по типам лини на разные слои

Управление активностью слоя

Проверка состояния слоя

Пример диалогового окна с информацией о слоях

Процедура для заполнения списка наименованиями слоев

Заморозка всех слоев чертежа кроме последнего

Защита от изменений всех слоев вставленных в чертеж внешних ссылок

Типы линий

Проверка наличия в чертеже типа линии с заданным именем

Стили текста

Создание текстовых стилей на основании текстового файла

Системные переменные

Определение значения системной переменной

Задание значения системной переменной

Точки

Копирование координат точки в буфер обмена

Системы координат

Перевод координат из WCS в UCS

Пространства Модели и Листа

Определение текущего пространства

Создание копии пространства листа (Layouts)

Определение текущего пространства (II способ)

 

Примитивы чертежа AutoCAD

Пример создания класса для работы с примитивами AutoCAD

Выбор объектов

Процедура сохранения всех объектов заданного слоя в отдельном чертеже

Работа с SelectionSet (Набор объектов)

Проверка, есть ли в заданной точке текстовый объект

Получение набора объектов, пересекающихся с выбранной линией

Определение габаритов группы выбранных объектов

Использование фильтра для выбора объектов

Обеспечение фильтра выбора объектов

Использование меток объектов для создания набора

Отслеживание выбора пользователем примитивов

Изменение свойств объектов

Изменение цвета объектов с помощью диалогового окна, вызываемого из файла ACAD.EXE

Отрезки

Определение длины выбранного отрезка

Определение координат середины выбранного отрезка

Отрисовка двойной ломанной линии заданной ширины через указываемые точки

Дуги

Отрисовка дуги по трем точкам

Отрисовка дуги по трем точкам с отображением резиновой линии

Определение точки центра дуги, проходящей через три заданные точки

Полилинии

Отрисовка полилинии

Отрисовка полилинии с вставкой заданного блока в ее вершинах

Определение выбранного пользователем сегмента полилинии

Определение свойств сегмента полилинии, выбранного пользователем

Определение длины полилинии с помощью метода Explode

Определение длины полилинии расчетным путем

Реверс точек полилинии (изменеие направления)

Связь площади полилинии с текстовым объектом

Сохранение координат полилинии в текстовом файле

Импорт точек полилинии виз AutoCAD в Excel и экспорт точек из Excel в AutoCAD

Выделение объектов, находящихся на заданном расстоянии от полилинии

Текст

Создание объекта DText (Динамический текст)

Создание текстового объекта с заданным выравниванием

Поиск и замена текста

Изменение угла наклона всех текстовых объектов чертежа

Объединение нескольких многострочных текстовых объектов в один

Перевод всех символов выбранного текста в верхний регистр

Поиск и замена текста во вставленных блоках

Добавление текстового объекта в блок

Создание связи между двумя текстовыми объектами

Связь площади полилинии с текстовым объектом

Функции для операций над аттрибутами и текстом

Размеры

Замена значения размера его текстовым выражением

Простановка вертикального или горизонтального линейного размера

Группы объектов

Группировка примитивов по слоям

Проверка наличия в чертеже групппы с заданным именем

Блоки

Поиск и замена текста во вставленных блоках

Добавление текстового объекта в блок

Создание блока из выбранных объектов

Диалоговое окно для вставки блока

Вставка блока в масштабе, равном масштабу текущего размерного стиля

Вставка блоков в точки, совпадающие с вершинами выбранной полилинии

Расчленение блока и перенос всех элементов блока на заданный слой

"Выдергивание" примитива из блока

Нахождение в чертеже всех вставленных блоков с заданным именем

Создание в таблице Excel списка всех вставленных в чертеж блоков и их количества

Изменение всех длинных имен блоков на короткие

Определение масштабных коэффициентов блока по осям

Изменение слоя всех вставленных блоков

Замена существующего блока на блок из заданного файла

Вставка блока с аттрибутами и запрос их значений

Задание значений атрибутов на основании данных из базы данных

Экспорт значений аттрибутов блока в текстовые объекты

Вставка блока с изменением масштаба отображения аттрибутов

Выравнивание аттрибутов в повернутом блоке

Отображение нивидимых аттрибутов выбранного блока

Изменение цвета аттрибутов

Проверка значения аттрибута перед закрытием файла

Функции для операций над аттрибутами и текстом

Штриховка

Добавление штриховки в блок

Создание штриховки по образцу

Внешние ссылки

Защита от изменений всех слоев вставленных в чертеж внешних ссылок

Поиск всех внешних ссылок и конвертирование их в блоки

Создание класса для доступа к свойствам внешних ссылок

Открытие файла внешней ссылки

Изменение пути внешней сылки

Диалоговое окно для вставки в чертеж внешних ссылок

Отслеживание команды вставки внешней ссылки

Расширенные данные

Создание новых свойств объектов c использованием расширенных данных

Сохранение строки текста в области расширенных данных

Сохранение в области расширенных данных имени пользователя, даты и примечаний

Нахождение всех примитивов, содержащих в области расширенных данных заданное значение

 

Отрисовка типовых элементов

Спецзнаки и обозначения

Маркировка центров окружностей и дуг

Создание выносной полки для указанного Мультитекста

 

Вспомогательные функции

Расчеты и получение размеров

Функция GetLenght, определяющая расстояние между двумя точками (disstance)

Определение габаритов нескольких выбранных объектов

Число Pi

Перевод угла, заданного в радианах, в градусы

Перевод угла, заданного в градусах, в радианы

Определение точки центра дуги, проходящей через три заданные точки

Использование привязки к объектам

Ближайшая точка (NearestTo)

Точка для построения перпендикуляра (Perpendicular)

Взаимодействие с пользователем

Запрос у пользователя ключевых слов

Отслеживанеи нажатия клавиши ESC

Запрос точки с отображением "резиновой" линии

Запрос у пользователя примитива чертежа

Запрос у пользователя нескольких примитивов чертежа

Запрос у пользователя параметра со значением по умолчанию

Работа с файлами и папками

Открытие и сохранение файлов с помощью API

Выбор папки в диалоговом окне с помощью API

Создание ярлыка для заданного объекта

Открытие всех файлов dwg из выбранной папки и выполнение над всеми примитивами чертежей этих файлов одинаковых преобразований.

Прочие вспомогательные процедуры и функции

Определение текущего пространства

Определение текущего пространства (II способ)

Определение текущего масштаба отрисовки

Очистка журнала команд

Определение полного пути к приложению

Определение значения системной переменной

Диалоговые окна

Работа с элементами управления

Выбор цвета в диалоговом окне с помощью функции API

Перевод стандартных цветов AutoCAD в формат RGB

Перевод цветов AutoCAD в формат RGB (учтены все 256 цветов)

Примеры диалоговых окон

Эквидистантная копия на заданный слой с примером диалогового окна для выбора слоев

Масштабирование изображения по блоку, выбранному с помощью диалогового окна

Создание текстовых стилей на основании текстового файла

Удаление из базы данных чертежа всех неиспользуемых объектов с помощью диалогового окна

Пример диалогового окна с информацией о слоях

Диалоговое окно для вставки блока

Диалоговое окно для вставки в чертеж внешних ссылок

Сохранение строки текста в области расширенных данных

Сохранение в области расширенных данных имени пользователя, даты и примечаний

Выбор цвета в диалоговом окне с помощью функции API

Перевод стандартных цветов AutoCAD в формат RGB

Перевод цветов AutoCAD в формат RGB (учтены все 256 цветов)

Открытие и сохранение файлов с помощью API

Выбор папки в диалоговом окне с помощью API

Открытие всех файлов dwg из выбранной папки и выполнение над всеми примитивами чертежей этих файлов одинаковых преобразований.

Форма с окном просмотра выбранных на чертеже примитивов




Copyright © Сайт поддержки пользователей САПР by Victor Tkachenko