- •Методические указания
- •Введение
- •Лабораторная работа № 1
- •Vba (Visual basic for Applications) как средство разработки программных приложений пользователя в среде AutoCad 2002
- •1. Цель работы
- •2. Комментарии по выполнению работы
- •Первое окно еще называют окном проводника проектов. Меню
- •Панели инструментов
- •Проекты и их элементы
- •Макросы
- •Модули и процедуры
- •Область действия
- •Константы
- •Отображение диалогового окна
- •Модуль программного кода
- •Листинг 1. Объявление глобальных переменных
- •Листинг 2. Текст головной программы
- •Листинг 3. Текст подпрограммы DrawCircles
- •Добавление программного кода работы с формой
- •Листинг 4. Программный код работы с формой
- •3. Содержание и порядок выполнения работы
- •Задания.
- •2. Комментарии по выполнению работы
- •3. Содержание и порядок выполнения работы
- •Варианты заданий.
- •1. Цель работы
- •2. Комментарии по выполнению работы
- •3. Содержание и порядок выполнения работы
- •Задания.
- •Лабораторная работа №4 Анализ графической базы данных чертежа AutoCad. Работа с примитивом типа блок. Использование расширенных данных
- •1. Цель работы
- •2. Комментарии по выполнению работы
- •3. Содержание и порядок выполнения работы
- •Задания
- •Библиографический список
- •Содержание
- •394026 Воронеж, Московский просп., 14
- •Составители: а.М.Нужный н.И. Гребенникова
Листинг 2. Текст головной программы
Public Sub Ncircles()
Radius = 10.5 'начальное значение радиуса
NumCir = 2 'начальное значение количества
UserForm1.Show
If NumCir > 0 Then DrawCircles
End Sub
В программе задаются начальные значения для переменных Radius и NumCir. Символ апострофа означает, что дальше в строке идет комментарий. Оператор UserForm1.Show вызывает на экран диалоговое окно формы с именем UserForm1 (это имя получает первая форма проекта по умолчанию; при желании можно имя изменить).
По результатам работы диалогового окна должно формироваться значение NumCir. Если NumCir равно нулю, то в диалоговом окне была нажата кнопка Cancel (Отмена). Если значение NumCir положительно, следует перейти к рисованию окружностей с помощью подпрограммы.
К модулю Module1 необходимо добавить текст подпрограммы DrawCircles, приведенной в листинге 3.
Листинг 3. Текст подпрограммы DrawCircles
Public Sub DrawCircles()
Dim i As Integer
Dim cpoint As Variant
Dim circleObj As AcadCircle
'выбор точки центра
cpoint = ThisDrawing.Utility.GetPoint(, "точка центра:")
For i = 1 To NumCir
'построение окружностей
Set circleObj = ThisDrawing.ModelSpace.AddCircle(cPoint, i * Radius)
Next i
End Sub
В этой подпрограмме описаны три локальные переменные. Целая переменная i используется как счетчик цикла по числу окружностей, переменная cPoint типа Variant — для координат точки центра окружности, а переменная CircleObj типа AcadCircle — для примитива окружности.
Точку центра концентрических окружностей программа должна запросить интерактивно (текст запроса — Точка центра:). Для этого используется метод GetPoint, применяемый к объекту Utility активного документа (ThisDrawing). Введенная точка сохраняется в переменной cPoint.
Затем в цикле, границами которого являются операторы For и Next, с переменной цикла i строятся окружности с центром в точке cPoint и радиусом i*Radius. Используется метод AddCircle, который добавляет новую окружность к пространству модели (ModelSpace).
Добавление программного кода работы с формой
Осталось добавить программы, работающие с кнопками формы. Для этого выделите в проводнике проекта форму UserForm1 и нажмите на кнопку. В правой части окна среды разработки должно появиться окно для ввода программного кода.
В левом раскрывающемся списке над окном ввода кода выберите элемент UserForm, а в правом — событие Initialize. В окне кода должны появиться строки Private Sub userForm_Initialize() и End Sub. Между ними следует вставить операторы начальных значений полей диалогового окна. Аналогичным образом надо запрограммировать действия, которые должна выполнить система при нажатии на кнопку Да (имя ее элемента — CommandButton1) и на кнопку Отмена (Cancel) (имя элемента — CommandButton2). Нажатию на кнопку соответствует событие Click. Текст программного кода приведен в листинге 4.
Листинг 4. Программный код работы с формой
Private Sub CommandButton1_Click()
'кнопка "Да"
NumCir = CInt(TextBox1.Text)
Radius = CDbl(TextBox2.Text)
Unload Me
End Sub
Private Sub CommandButton2_Click()
'кнопка "Отмена"
NumCir = 0
Unload Me
End Sub
Private Sub UserForm_Initialize()
'Инициализация формы
TextBox2.Text = CStr(Radius)
TextBox1.Text = CStr(NumCir)
End Sub
Оператор Unload Me закрывает диалоговое окно при нажатии на обе кнопки. Значения полей TextBoxl и TextBox2 переносятся в переменные NumCir и Radius.
Теперь осталось сохранить проект в файле с расширением dvb с помощью кнопки и выполнить макрос Ncircles либо с помощью кнопки, либо с помощью команды AutoCAD VBARUN. Результат работы программы приведен на рис. 7.
Рис.7. Результат выполнения макроса Ncircles