Лабораторный практикум «Автоматизация работ в AutoCAD средствами Visual Basic for Applications» для студентов «Механизация сельского хозяйства» |
Добавил(а) Administrator |
25.01.11 13:57 |
Страница 10 из 17
С помощью панели инструментов «Рисование» создаем объект «прямоугольник», в который вносим текст «Пуск меню». Затем создаем объект «надпись», в которую заносим инструкцию по использованию программы. Надпись закроет от пользователя исходные данные, размещенные на листе в ячейках. 3-й этап – создание макроса, запускающего на выполнение форму и связывание управляющего элемента с макросом: - запускаем редактор Visual Basic: “СервисМакросРедактор Visual Basic”; - добавляем в проект ссылку на библиотеку типов AutoCAD: ToolsPreferencesAutoCAD Object Library; - в редакторе с помощью команды «ВставкаМодуль» создаем новый модуль VBA-проекта, а затем командой «ВставкаПроцедура» создаем процедуру, в которую заносим одну команду: Public Sub Start_Menu() имя макроса Menu.Show команда вывода на экран формы Menu End Sub Результат выполнения макроса – появление на экране формы по имени Menu. Формы с таким именем пока нет, мы ее создадим позже. - используя панель задач Windows, вернемся в окно Microsoft Excel, выберем в контекстном меню объекта «прямоугольник» команду «Назначить макрос» и в окне диалога выбираем макрос «Start_Menu». Теперь при указании на объект «прямоугольник» мышью ее указатель принимает вид ладошки, приглашающей нажать кнопку. Нажатие кнопки мыши на объекте «прямоугольник» приведет к выполнению макроса «Start_Menu». 4-й этап – создание формы: - в редакторе Visual Basic командой «ВставкаФорма» (InsertUserForm) создаем объект «форма»; - в окне свойств в графе Имя (Name) изменяем имя формы на Menu; - пользуясь панелью элементов управления создаем кнопки, поля и поля со списками, в окне свойств для каждого элемента задаем необходимые параметры: имена, надписи, цвет фона, шрифт и т.д. Форма принимает вид рис.12.
Рис.12.
- создадим процедуры обработки событий, для чего выполним двойной щелчок кнопки мыши на управляющих элементах. Двойной щелчок на элементе управления создаст процедуру, связанную с событием, которое распознает управляющий элемент. Содержание процедур напишем сами:
Описание общих для проекта переменных Public TextName As String Public TextMaterial As String Public TextMasshtab As String Public TextFormat As String Public TextH As String Public TextAutor As String Public TextDate As String
Процедура по нажатию кнопки «Заполнение штампа» заполняет штамп чертежа текстом, указанным в полях формы Private Sub CommandButton1_Click()
Описание переменных процедуры Dim TxtObj As Object Dim Point(0 To 2) As Double Dim FntFile As Variant Dim A As Variant
Описание констант Const Height As Single = 6 Const L0 As Single = 840# Const H0 As Single = 594#
On Error Resume Next ' Отложенный перехват ошибок.
Назначение в переменную приложения AutoCAD Set ACad = GetObject(, "AutoCAD.Application") If Err.Number = 429 Then GoTo Stop1 Если ошибка, перейти на метку Stop1
Set ADoc = ACad.ActiveDocument Назначение в переменную чертежа Set MSpace = ADoc.ModelSpace Назначение в переменную пространства модели
Set TStyle = ADoc.ActiveTextStyle Назначение в переменную стиля текста
Присвоение переменной F значения (величины) переменной TextFormat. Такое переприсвоение необходимо, так как значения из полей ввода читаются как текстовые, то есть не подлежат вычислительной обработке.
F = Val(TextFormat)
Вычисление высоты и ширины поля чертежа по заданному номеру формата If F = 1 Or F = 2 Or F = 3 Or F = 4 Then If F = 1 Or F = 4 Then L = L0 / F If F = 3 Then L = L0 / 2 If F = 2 Then L = H0 If F = 1 Then H = H0 If F = 2 Then H = L0 / 2 If F = 3 Or F = 4 Then H = H0 / 2 Else D=MsgBox("Неверно задан формат листа", vbExclamation, "Attention!") Exit Sub End If
Чтение системной переменной текущей даты TextDate = Date Чтение файла-шрифта из папки AutoCad R14\Fonts TStyle.FontFile = "Gosta_w.shx" Вывод текста (переменная Text…) в пространство модели в точке привязки Point Point(0) = L - 100: Point(1) = 50: Point(2) = 0 With MSpace.AddText(TextH, Point, Height) Height – высота букв .Color = Color + 2 цвет текста .ObliqueAngle = 3.14 * 15 / 180 угол наклона букв 150
End With Point(0) = 80: Point(1) = H - 8: Point(2) = 0 With MSpace.AddText(TextH, Point, Height) .Color = Color + 2 .ObliqueAngle = 3.14 * 15 / 180 .Rotation = 3.14 угол поворота текста 1800 End With Point(0) = L - 110: Point(1) = 35: Point(2) = 0 With MSpace.AddText(TextName, Point, Height) .Color = Color + 2 .ObliqueAngle = 3.14 * 15 / 180 End With Point(0) = L - 115: Point(1) = 10: Point(2) = 0 With MSpace.AddText(TextMaterial, Point, Height - 2) .Color = Color + 2 .ObliqueAngle = 3.14 * 15 / 180 End With Point(0) = L - 20: Point(1) = 30: Point(2) = 0 With MSpace.AddText(TextMasshtab, Point, Height) .Color = Color + 2 .ObliqueAngle = 3.14 * 15 / 180 End With Point(0) = L - 172: Point(1) = 31: Point(2) = 0 With MSpace.AddText(TextAutor, Point, Height - 3) .Color = Color + 2 .ObliqueAngle = 3.14 * 15 / 180 End With Point(0) = L - 134.5: Point(1) = 31: Point(2) = 0 With MSpace.AddText(TextDate, Point, Height - 3.6) .Color = Color + 2 .ObliqueAngle = 3.14 * 15 / 180 End With
|
Последнее обновление 07.02.11 15:20 |