Файл: Методические указания по выполнению лабораторных работ по дисциплине (модулю) Лингвистическое и программное обеспечение автоматизированных систем.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 11.01.2024

Просмотров: 606

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

1.Цель и задачи работы

2.Общие положения (теоретические сведения)

2.1. Принцип рекурсии в правилах грамматики

2.2. Запись правил грамматик с использованием метасимволов

2.3. Запись правил грамматик в графическом виде

3. Задание на лабораторную работу

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

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

1.Цель и задачи работы

2.Общие положения (теоретические сведения)

2.1. Разработка лексического анализатора

2.2. Разработка синтаксического анализатора

2.3. Пример построения простого синтаксического анализатора

2.4. Анализаторы для сложных рекурсивных грамматик

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

1. Цель и задачи работы

2. Общие положения (теоретические сведения)

2.5. Логическая структура XML-документа

2.8. Описание структуры XML-документов

2.9. Язык XML Sсhema Definition (XSD)

2.10. Программная обработка XML-документов

2.11. Обработка XML-данных с использованием модели DOM

2.12. Входные данные

2.14. Сопоставление объектной иерархии с XML-данными

2.15. Создание XML-документа

2.16. Считывание XML-документа в DOM

2.17. Директивы таблицы стилей, встроенные в документ

2.18. Загрузка данных из модуля чтения

2.19. Доступ к атрибутам в модели DOM

2.20. Получение всех атрибутов в виде коллекции

2.21. Получение единичного узла атрибута

2.22. Считывание объявлений сущностей и ссылок на сущности в DOM

2.23. Сохраняемые ссылки на сущности

2.24. Разворачиваемые и не сохраняемые ссылки на сущности

2.25. Создание новых узлов в модели DOM

2.26. Создание новых атрибутов для элементов в модели DOM

2.27. Атрибуты по умолчанию

2.28. Дочерние узлы атрибута

2.29. Проверка имен XML-элементов и атрибутов при создании новых узлов

2.30. Создание новых ссылок на сущности

2.32. Копирование существующих узлов

2.33. Копирование существующих узлов из одного документа в другой

2.34. Копирование фрагментов документа

2.35. Удаление узлов, содержимого и значений из XML-документа

2.36. Изменение узлов, содержимого и значений в XML-документе

2.37. Проверка XML-документа в DOM

2.38. Проверка XML-документа в DOM

2.39. Обработка ошибок проверки и предупреждений

2.40. Сохранение и запись документа

2.41. Запись XmlDeclaration

2.42. Запись содержимого документа с помощью свойства OuterXml

3.Задание на лабораторную работу

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

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

1. Цель и задачи работы

2. Общие положения (теоретические сведения)

3.1. Запись макроса

3.2. Организация ввода данных

3.3. Вывод данных

3. Задание на лабораторную работу

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

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

1. Цель и задачи работы

2. Общие положения (теоретические сведения)

Организация ввода данных

Вывод данных

Заключение

3. Задание на работу

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

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

1. Цель и задачи работы

2. Общие положения (теоретические сведения)

3.4. Эскизы

3.5. Эскизы в документах Деталей

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

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

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

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

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




Dim oCylFace1 As Face

Dim oCylFace2 As Face

For Each oFace In oCylinder1.SurfaceBodies(1).Faces

If oFace.SurfaceType = kPlaneSurface Then

Set oCylFace1 = oFace

End If

Next

For Each oFace In oCylinder2.SurfaceBodies(1).Faces

If oFace.SurfaceType = kPlaneSurface Then

Set oCylFace2 = oFace

End If

Next


Теперь добавьте ограничение сопряжения для этих двух граней в коллекцию AssemblyConstraints.


Set oConstr = oAxisDef.Constraints.AddMateConstraint _

(oCylFace1, oCylFace2, 0, kNoInference, kNoInference)


Это приводит к следующему рисунку с предполагаемым соотношением между двумя цилиндрами.



В предыдущем примере демонстрируется вставка деталей в среду сборки и последующее управление этими деталями. Полученную сборку можно сохранить в файл и использовать как вхождение компонента в новой сборке с другими деталями и подсборками.


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
' Если возникла ошибка, пользователь нажал кнопку «Отмена»,