Главная страница

МУ_ЛР_ЛиПОАС. Методические указания по выполнению лабораторных работ по дисциплине (модулю) Лингвистическое и программное обеспечение автоматизированных систем


Скачать 2.76 Mb.
НазваниеМетодические указания по выполнению лабораторных работ по дисциплине (модулю) Лингвистическое и программное обеспечение автоматизированных систем
Дата12.04.2023
Размер2.76 Mb.
Формат файлаdoc
Имя файлаМУ_ЛР_ЛиПОАС.doc
ТипМетодические указания
#1057976
страница32 из 32
1   ...   24   25   26   27   28   29   30   31   32

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


Важным требованием многих программ является возможность взаимодействия с конечным пользователем. Вашей программе может потребоваться несколько типов взаимодействия с пользователем.

Одним из наиболее распространенных требований к взаимодействию с пользователем является возможность выбора пользователем объекта. Autodesk Inventor поддерживает два метода выбора объектов: выбор из множества и интерактивный выбор. Каждый метод полезен в определенных случаях, и во многих программах будут использоваться оба метода.

Использовать выбор из множества набор с точки зрения программиста чрезвычайно просто, поскольку вы не участвуете в самом процессе выбора. В процессе выбора пользователю остается понять, что нужно выбрать, прежде чем запускать вашу команду или программу. Ваша программа просто просматривает результаты, проверяет, были ли выбраны какие-либо действительные объекты, и использует их, если они действительны. Объект SelectSet доступен из всех документов через свойство SelectSet. В приведенном ниже примере показана программа, которая проверяет, выбрана ли одна грань, и отображает ее площадь поверхности.

Public Sub ShowSurfaceArea()

'Установить ссылку на выбранное множество активного документа.

Dim oSelectSet As SelectSet

Set oSelectSet = ThisApplication.ActiveDocument.SelectSet

' Проверка, что выбран один элемент.

If oSelectSet.Count = 1 Then

' Проверка, что выбрана поверхность.

If TypeOf oSelectSet.Item(1) Is Face Then

' Установить ссылку на выбранную поверхность.

Dim oFace As Face

Set oFace = oSelectSet.Item(1)

' Отображение области выбранной поверхности.

MsgBox "Surface area: " & oFace.Evaluator.Area & " cm^2"

Exit Sub

Else

MsgBox "You must select a single face."

Exit Sub

End If

Else

MsgBox "You must select a single face."

Exit Sub

End If

End Sub


Помимо предоставления доступа к объектам, выбранным пользователем, объект SelectSet также поддерживает методы, которые позволяют добавлять и удалять объекты из выбранного множества.

Многие команды проще использовать, если процесс выбора более контролируемый, чем это возможно при использовании предопределенного множества. Autodesk Inventor поддерживает другой метод выбора объекта, который предоставляет вам полный контроль над процессом выбора. Эта возможность предоставляется через объект InteractionEvents. Этот объект поддерживает не только выделение, но также события мыши и клавиатуры.

Часть иерархии объектов InteractionEvents показана ниже. Для выбора используются объекты InteractionEvents и SelectEvents.


Ниже приводится краткий обзор шагов по использованию функции интерактивного выбора.

• Создайте объект InteractionEvents.

Определите его поведение, задав свойства

• Подключитесь к событиям, поддерживаемым объектом InteractionEvents.

• Подключитесь к событиям, поддерживаемым связанным объектом SelectEvents.

• Запустите процесс взаимодействия и отреагируйте на события.

Давайте посмотрим на шаги, связанные с реализацией поведения выделения кромок, аналогичного тому, что используется в команде «Сопряжение». Эта простая команда позволит вам предложить пользователю выбрать ребро и покажет длину ребра по мере ее выбора. Первым шагом является создание объекта InteractionEvents с помощью метода CreateInteractionEvents объекта CommandManager. Следующим шагом является настройка различных объектов путем подключения к интересующим событиям и установка различных свойств для получения желаемого поведения. Есть события для объекта InteractionEvents, а также для объектов SelectEvents, MouseEvents и KeyboardEvents, которые получены из объекта InteractionEvents.

После определения поведения с использованием событий и методов различных объектов вы запускаете процесс выбора, вызывая метод Start объекта InteractionEvents. Важно понимать, что при запуске объекта InteractionEvents он вызывает тот же побочный эффект, что и команды Autodesk Inventor: он завершает выполнение команды, выполняющейся в данный момент. Это также означает, что если команда Autodesk Inventor запускается во время выполнения объекта InteractionEvents, объект InteractionEvents будет остановлен. Исключение составляют случаи, когда выполняются команды просмотра. Они не завершают текущую команду, а временно приостанавливают ее до завершения команды просмотра.

Чтобы создать работающую версию этого примера, создайте новый модуль формы в любом проекте VBA, как показано ниже.



Форма состоит из пяти элементов управления: двух текстовых полей, двух меток и командного элемента управления. Форма называется frmSelection. Текстовое поле для длины называется txtLength, текстовое поле для количества ребер - txtEdgeCount, а командный элемент управления - cmdCancel. Имена меток управления не имеют значения. Ниже приведены глобальные объявления в модуле формы и код события Initialize формы, который получает необходимые объекты и настраивает их для процесса выбора.

Private WithEvents oInteraction As InteractionEvents

Private WithEvents oSelect As SelectEvents
Private Sub UserForm_Initialize()

' Создание нового объекта InteractionEvents.

Set oInteraction = ThisApplication.CommandManager.CreateInteractionEvents

' Установка подсказки.

oInteraction.StatusBarText = "Select an edge."

' Подключение к связанным выбранным событиям.

Set oSelect = oInteraction.SelectEvents

' Определение, что все ребра детали должны быть доступны для

' выбора.

oSelect.AddSelectionFilter kPartEdgeFilter
' Разрешение на единичный выбор.

oSelect.SingleSelectEnabled = True
' Запуск процесса выбора

oInteraction.Start

End Sub

Обратите внимание, что глобальные переменные для объектов InteractionEvents и SelectEvents используют ключевое слово WithEvents. Это позволяет нам настроить обработчики событий, которые будут получать события, связанные с этими объектами.

Чтобы использовать этот код, нам нужно, чтобы форма отображалась немодальным образом, чтобы вы могли оставить форму отображаемой и по-прежнему взаимодействовать с Autodesk Inventor, чтобы сделать выбор. Следующая функция должна быть добавлена в стандартный модуль кода для отображения формы. Именно эту функцию вы запустите, чтобы запустить этот пример программы.

Public Sub SelectionSample()

frmSelection.Show vbModeless

End Sub


Теперь вы можете запустить программу, выполнив подпрограмму SelectionSample. Во-первых, убедитесь, что у вас открыт документ детали, содержащий модель. При запуске подгруппы SelectionSample текущая команда Autodesk Inventor будет прервана, и вы сможете выбрать ребра модели. Любые другие объекты, такие как грани, рабочая геометрия, эскизы и т. д., не могут быть выбраны.

Private Sub oSelect_OnSelect(ByVal JustSelectedEntities As ObjectsEnumerator, _

ByVal SelectionDevice As SelectionDeviceEnum, _

ByVal ModelPosition As Point, _

ByVal ViewPosition As Point2d, _

ByVal View As View)

' Расчет длины выбранного ребра.

Dim i As Long

Dim dLength As Double

For i = 1 To JustSelectedEntities.Count

' Поскольку мы установили фильтр только для выбора ребер,

' можно безопасно назначать возвращаемые сущности объекту

' Edge

Dim oEdge As Edge

Set oEdge = JustSelectedEntities.Item(i)

' Determine the length of the current edge.

Dim dMin As Double

Dim dMax As Double

Call oEdge.Evaluator.GetParamExtents(dMin, dMax)

Dim dSingleLength As Double

Call oEdge.Evaluator.GetLengthAtParam(dMin, dMax, dSingleLength)

' Складываем длину всех ребер в этом наборе.

dLength = dLength + dSingleLength

Next

' Отображаем длину и число ребер.

txtLength.Text = Format(dLength, "0.0000 cm")

txtEdgeCount.Text = JustSelectedEntities.Count

End Sub

Autodesk Inventor запускает OnSelect всякий раз, когда пользователь выбирает объект. Выбранная сущность указывается в аргументе JustSelectedEntities. Этот аргумент является ObjectEnumerator, но в нашем примере возвращаемый объект ObjectsEnumerator всегда будет содержать одну сущность.

3.7. Выбор файла


Часть API «Диалоги файлов» предоставляет разработчикам функциональные возможности для повторного использования стандартных диалоговых окон Autodesk Inventor «Открыть» и «Сохранить как», как показано ниже. Используя API, разработчик может определить часть поведения диалогового окна, а затем отобразить его пользователю. Пользователь взаимодействует с диалоговым окном, чтобы указать имя файла для открытия или сохранения. Разработчику предоставляется выбранный файл. Использование этого API не приводит к открытию или сохранению, а только к получению имени файла от пользователя. После этого разработчик может использовать это имя файла любым способом. Эта функция очень похожа на общий файловый элемент управления Microsoft.



Часть диалогового окна «Тип файлов» управляется через API, что позволяет разработчику установить фильтр для определенных типов файлов.



Например:
Public Sub TestFileDialog()

' Создание нового объекта FileDialog.

Dim oFileDlg As FileDialog

Call ThisApplication.CreateFileDialog(oFileDlg)
' Задание фильтра для выбора файлов деталей и сборок или

' любых файлов.

oFileDlg.Filter = "Inventor Files (*.iam;*.ipt)|*.iam;*.ipt|All Files (*.*)|*.*"
' Определение фильтров файлов детали и сборки как фильтр

' по умолчанию.

oFileDlg.FilterIndex = 1
' Задание заголовка для диалога.

oFileDlg.DialogTitle = "Open File Test"
' Задание начального каталога, который будет отображаться в

' диалоговом окне.

oFileDlg.InitialDirectory = "C:\Temp"
' Установка флага, чтобы при нажатии пользователем кнопки

' «Отмена» возникала ошибка.

oFileDlg.CancelError = True
' Показать открытый диалог. Та же процедура используется и для

' диалогового окна «Сохранить».

' Закомментированный код можно использовать для диалогового

' окна "Сохранить".

On Error Resume Next

oFileDlg.ShowOpen

' oFileDlg.ShowSave
' Если возникла ошибка, пользователь нажал кнопку «Отмена»,

' в противном случае отобразить имя файла.

If Err Then

MsgBox "User cancelled out of dialog"

ElseIf oFileDlg.FileName <> "" Then

MsgBox "File " & oFileDlg.FileName & " was selected."

End If

End Sub
Подробнее вы можете ознакомиться с командами в справке по Autodesk Inventor API по ссылке http://help.autodesk.com/view/INVNTOR/2021/ENU/?guid=GUID-2D8C7ADA-E73F-40CE-9D65-8C7C209D6B19

3 Задание на работу (рабочее задание)



Разработать макрос для построения трехмерной детали в Autodesk Inventor в соответствии с вариантом.






















4. Ход работы (порядок выполнения работы)



1) Ознакомится теоретической справкой.

2) Разработать макрос для Autodesk Invertor

3) Оформить отчет.

4) Защитить работу преподавателю.

5. Содержание отчета



1) Титульный лист

2) Задание

3) Алгоритм построения детали.

4) Команды для построения, использованные в макросе

5) Пример работы макроса

6) Текст программы
1   ...   24   25   26   27   28   29   30   31   32


написать администратору сайта