Помощь в учебе и работе
Главная
 
 
Лабораторный практикум «Автоматизация работ в AutoCAD средствами Visual Basic for Applications» для студентов «Механизация сельского хозяйства» Печать E-mail
Добавил(а) Administrator   
25.01.11 13:57

 

 

 

С помощью панели инструментов «Рисование» создаем объект «прямоугольник», в который вносим текст «Пуск меню».

Затем создаем объект «надпись», в которую заносим инструкцию по использованию программы. Надпись закроет от пользователя исходные данные, размещенные на листе в ячейках.

3-й этап – создание макроса, запускающего на выполнение форму и связывание управляющего элемента с макросом:

- запускаем редактор Visual Basic: “СервисМакросРедактор Visual Basic”;

- добавляем в проект ссылку на библиотеку типов AutoCAD: ToolsPreferencesAutoCAD Object Library;

- в редакторе с помощью команды «ВставкаМодуль» создаем новый модуль VBA-проекта, а затем командой «ВставкаПроцедура» создаем процедуру, в которую заносим одну команду:

Public Sub Start_Menu() имя макроса

Menu.Show команда вывода на экран формы Menu

End Sub

Результат выполнения макроса – появление на экране формы по имени Menu. Формы с таким именем пока нет, мы ее создадим позже.

- используя панель задач Windows, вернемся в окно Microsoft Excel, выберем в контекстном меню объекта «прямоугольник» команду «Назначить макрос» и в окне диалога выбираем макрос «Start_Menu». Теперь при указании на объект «прямоугольник» мышью ее указатель принимает вид ладошки, приглашающей нажать кнопку. Нажатие кнопки мыши на объекте «прямоугольник» приведет к выполнению макроса «Start_Menu».

4-й этап – создание формы:

- в редакторе Visual Basic командой «ВставкаФорма» (InsertUserForm) создаем объект «форма»;

- в окне свойств в графе Имя (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
 
 
Top! Top!