Реклама в Интернет

AutoCAD VBA Code Examples
 
    Здесь представлены примеры процедур и функций, написанных на 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)

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Отрезки

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

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

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

Размеры

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

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

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

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

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

 

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

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

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

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

 

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

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

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

Число Pi

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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