МУ_ЛР_ЛиПОАС. Методические указания по выполнению лабораторных работ по дисциплине (модулю) Лингвистическое и программное обеспечение автоматизированных систем
Скачать 2.76 Mb.
|
3.6. Взаимодействие с пользователемВажным требованием многих программ является возможность взаимодействия с конечным пользователем. Вашей программе может потребоваться несколько типов взаимодействия с пользователем. Одним из наиболее распространенных требований к взаимодействию с пользователем является возможность выбора пользователем объекта. Autodesk Inventor поддерживает два метода выбора объектов: выбор из множества и интерактивный выбор. Каждый метод полезен в определенных случаях, и во многих программах будут использоваться оба метода. Использовать выбор из множества набор с точки зрения программиста чрезвычайно просто, поскольку вы не участвуете в самом процессе выбора. В процессе выбора пользователю остается понять, что нужно выбрать, прежде чем запускать вашу команду или программу. Ваша программа просто просматривает результаты, проверяет, были ли выбраны какие-либо действительные объекты, и использует их, если они действительны. Объект SelectSet доступен из всех документов через свойство SelectSet. В приведенном ниже примере показана программа, которая проверяет, выбрана ли одна грань, и отображает ее площадь поверхности.
Помимо предоставления доступа к объектам, выбранным пользователем, объект 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 формы, который получает необходимые объекты и настраивает их для процесса выбора.
Обратите внимание, что глобальные переменные для объектов InteractionEvents и SelectEvents используют ключевое слово WithEvents. Это позволяет нам настроить обработчики событий, которые будут получать события, связанные с этими объектами. Чтобы использовать этот код, нам нужно, чтобы форма отображалась немодальным образом, чтобы вы могли оставить форму отображаемой и по-прежнему взаимодействовать с Autodesk Inventor, чтобы сделать выбор. Следующая функция должна быть добавлена в стандартный модуль кода для отображения формы. Именно эту функцию вы запустите, чтобы запустить этот пример программы.
Теперь вы можете запустить программу, выполнив подпрограмму SelectionSample. Во-первых, убедитесь, что у вас открыт документ детали, содержащий модель. При запуске подгруппы SelectionSample текущая команда Autodesk Inventor будет прервана, и вы сможете выбрать ребра модели. Любые другие объекты, такие как грани, рабочая геометрия, эскизы и т. д., не могут быть выбраны.
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) Текст программы |