Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 50081.doc
Скачиваний:
4
Добавлен:
30.04.2022
Размер:
2.69 Mб
Скачать

1. Цель работы

Изучение средств VBA, позволяющих анализировать графическую базу данных чертежа AutoCAD и вывод данных в файл.

2. Комментарии по выполнению работы

Работа с примитивами графической базы данных чертежа (ГБД)

Информация обо всех графических примитивах (AcadEntity) чертежа (ThisDrawing) AutoCAD сохраняется в ГБД чертежа.

Доступ к элементам ГБД чертежа средствами VBA может быть осуществлен посредством использования свойства объекта Object.ModelSpace.

Общее количество объектов в ГБД определяется как Object.ModelSpace.count.

Доступ к объектам ГБД может быть осуществлен при использовании свойства Object.ModelSpace.Item(index), где index – переменная, принимающая значения от 0 до Object.ModelSpace.count-1.

Пример кода для перебора всех графических примитивов чертежа:

‘ Определение количество элементов в ГБ чертежа:

Rcount = ThisDrawing.ModelSpace.count

Цикл для перебора графических примитивов

For index = 0 To Rcount – 1

Set ThisEntity = ThisDrawing.ModelSpace.Item(index)

Next

Для определения типа примитива можно использовать свойство ObjectName. Так, для примитивов типа «отрезок» свойство ObjectName принимает значение «AcDbLine», для примитивов типа «окружность» - «AcDbCircle». Поскольку тип этого свойства – строка, регистр при написании имеет значение.

Для вывода значений свойства ObjectName на экран можно использовать команду MsgBox:

For Index = 0 To Rcount – 1

Set ThisEntity = ThisDrawing.ModelSpace.Item(Index)

MsgBox (ThisEntity.ObjectName)

Next

Слои

При создании сложных чертежей часто возникает необходимость присвоения имен отдельным объектам или группам объектов. Для данной цели в AutoCAD служит свойство примитивов- слой (Layer).

Команда LAYER (СЛОЙ) открывает диалоговое окно Layer Properties Manager (Диспетчер свойств слоев).

В VBA доступ к слоям чертежа может быть организован через так называемую «коллекцию слоев».

Пример получения коллекции слоев и добавления нового слоя:

Dim layerColl As AcadLayers

Dim testlayer As AcadLayer

Set layerColl = ThisDrawing.Layers ’чтение коллекции слоев

Set testlayer = layerColl.Add("TEST") ’добавление нового слоя «test»

Так как слои являются свойствами примитивов, для доступа к их характеристикам может использоваться следующая конструкция:

ThisDrawing.ModelSpace.Item(index).Layer

Пример проверки имени слоя:

If ThisDrawing.ModelSpace.Item(index).Layer = "TEST" Then

EndIf

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

Открытие файла для записи осуществляется командой Open "имя файла" For Output As #номер.

Вывод в файл может быть осуществлен командой Write #номер, "Текст сообщения".

По окончании вывода данных в файл, файл должен быть закрыт командой Close #номер.

Запуск исполняемого файла осуществляется командой Shell.

3. Содержание и порядок выполнения работы

  1. Создать приложение в среде разработки VBA согласно полученному заданию:

  1. создать текст головной программы и подпрограмм, используемых в программе;

  2. отладить приложение, получить требуемый результат.

  1. Осуществить возможность просмотра полученного файла средствами «notepad.EXE».

  2. Оформить отчет.