Файл: Методические указания по выполнению лабораторных работ по дисциплине (модулю) Лингвистическое и программное обеспечение автоматизированных систем.doc
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 11.01.2024
Просмотров: 630
Скачиваний: 3
СОДЕРЖАНИЕ
2.Общие положения (теоретические сведения)
2.1. Принцип рекурсии в правилах грамматики
2.2. Запись правил грамматик с использованием метасимволов
2.3. Запись правил грамматик в графическом виде
3. Задание на лабораторную работу
4. Ход работы (порядок выполнения работы)
2.Общие положения (теоретические сведения)
2.1. Разработка лексического анализатора
2.2. Разработка синтаксического анализатора
2.3. Пример построения простого синтаксического анализатора
2.4. Анализаторы для сложных рекурсивных грамматик
2. Общие положения (теоретические сведения)
2.5. Логическая структура XML-документа
2.8. Описание структуры XML-документов
2.9. Язык XML Sсhema Definition (XSD)
2.10. Программная обработка XML-документов
2.11. Обработка XML-данных с использованием модели DOM
2.14. Сопоставление объектной иерархии с 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.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.42. Запись содержимого документа с помощью свойства OuterXml
3.Задание на лабораторную работу
4. Ход работы (порядок выполнения работы)
2. Общие положения (теоретические сведения)
3. Задание на лабораторную работу
4. Ход работы (порядок выполнения работы)
2. Общие положения (теоретические сведения)
4. Ход работы (порядок выполнения работы)
2. Общие положения (теоретические сведения)
3.5. Эскизы в документах Деталей
3.6. Взаимодействие с пользователем
3 Задание на работу (рабочее задание)
SketchLines.AddAsPolygon(NumberOfSides As Long, CenterPoint As Object, CircumferencePoint As Object, Inscribed As Boolean) – многоугольник по количеству сторон, центру, объекту, определяющему точку на окружности, вписывающую или описывающую многоугольник и параметр определяет вписанная или описанная окружность.
Профили
Еще одна важная концепция, которая явно не отображается в пользовательском интерфейсе, - это концепция профилей. По сути, эскиз - это просто контейнер для 2D-объектов и связанных с ними ограничений. Сам эскиз не определяет связанных наборов объектов, которые могут использоваться элементом для определения его формы. Эта информация определяется профилями. Вы можете создать следующий эскиз в Autodesk Inventor.
При создании элемента выдавливания первым шагом является определение профиля. Это делается в интерактивном режиме, перемещая мышь в различных закрытых областях и щелкая. Любая комбинация следующих трех форм может использоваться для определения профиля элемента.
В API профиль - это явный объект, который можно создать для ввода данных в функции, а также получить из существующих функций. Профиль всегда связан с конкретным эскизом и, по сути, добавляет к эскизу топологическую информацию. Ограничения на совпадения между геометрическими примитивами эскиза управляют тем, какие формы могут быть определены на основе данного эскиза. Например, если вы создаете эскиз, содержащий два круга, показанных на следующем рисунке, и используете этот эскиз для выдавливания, вы можете выбрать только внутреннюю часть кругов.
Однако, если вы поместите точки эскиза на пересечениях кругов и привяжете точки к кругам с помощью ограничений на совпаение, теперь вы можете получить любую комбинацию следующих трех форм.
API поддерживает два метода создания профилей. Это AddForSolid и AddForSurface. Эти два метода упрощают создание профилей для разработчика. Два метода создания профиля, предоставляемые API, имеют необязательные аргументы. Вызываемые без аргументов, они исследуют всю геометрию эскиза и создают профиль. Метод AddForSolid проверяет замкнутые профили, которые можно использовать при создании твердотельных элементов. AddForSurface позволяет открывать профили, которые можно использовать для создания поверхностей.
Профили используются в качестве входных данных при создании объектов, а также важны при запросе существующих объектов. Из элементов на основе эскиза можно получить профиль, определяющий его форму. Просто иметь эскиз недостаточно, потому что именно профиль добавляет в эскиз информацию о топологии. Давайте посмотрим на следующий пример, чтобы увидеть, какую информацию предоставляет профиль. Эскиз, показанный слева, был использован для создания элемента одиночного выдавливания, показанного справа.
Профиль, полученный из feature, содержит два объекта ProfilePath, которые выделены на следующем рисунке. Каждый объект ProfilePath возвращает список объектов ProfileEntity в порядке их соединения друг с другом. ProfilePath также сообщает вам, открыт ли путь или закрыт, и добавляет ли он или удаляет ли материал из профиля.
Объекты ProfileEntity предоставляют информацию о каждой части ProfilePath. Объекты ProfileEntity ориентированы таким образом, что они связаны друг с другом "голова к хвосту". Объекты ProfileEntity не существуют в Autodesk Inventor графически, а являются просто промежуточным этапом между эскизом и элементом. ProfileEntity возвращает базовый объект эскиза и две точки эскиза, определяющие его начало и конец. Базовый объект эскиза во многих случаях будет отличаться от объекта профиля.
Давайте подробно рассмотрим предыдущий пример. Используемый эскиз содержит семь линий и одну дугу, а также все точки эскиза и различные ограничения, связывающие все это вместе. На основе этого эскиза был создан единственный профиль, который использовался в качестве входных данных для элемента выдавливания. Профиль состоит из двух объектов ProfilePath, которые при использовании для выдавливания приводили к единому твердому телу с двумя замкнутыми объемами, как показано на следующем изображении.
3.5.1Элементы
Термин feature может ввести в заблуждение тех, кто плохо знаком с параметрическим моделированием. В просторечии это может означать какую-то отличительную характеристику. В параметрическом 3D-моделировании это относится к каждому из математических процессов, используемых для построения модели, отсюда и термин «моделирование на основе элементов».
Модель представляет собой результат применения последовательности функций и других изменений. Интересно, что из-за иерархической природы вычислений изменение функции, особенно на ранней стадии последовательности, часто приводит к изменениям в частях модели, к которым могут применяться другие функции. Таким образом, применение или модификация простой функции может иметь далеко идущие последствия, возможно, вызывая значительные изменения во внешнем виде модели.
Типичный пример элемента - выдавливание. Представьте себе нарисованный круг. Это 2D без толщины. Примените элемент выдавливания к этой окружности (фактически к профилю, основанному на окружности), укажите толщину выдавливания, и будет создана 3D-модель. В зависимости от толщины он может выглядеть тонким, как монета, или длинным, как цилиндр. Можно применить дополнительные элементы, например, скругление.
3.5.2Диаграмма модели объектов Feature
Ниже приведен список текущих объектов функций API. Не все доступны одновременно - это зависит от типа документа или среды. Например, объект FlangeFeature имеет значение только в контексте детали из листового металла.
BendFeature | BoundaryPatchFeature | ChamferFeature |
CircularPatternFeature | CoilFeature | ContourFlangeFeature |
CornerChamferFeature | CornerFeature | CornerRoundFeature |
CutFeature | DecalFeature | DeleteFaceFeature |
EmbossFeature | ExtrudeFeature | FaceDraftFeature |
FaceFeature | FeatureBasedOccurrencePattern | FeaturePatternElement |
FeaturePatternElements | FilletFeature | FlangeFeature |
FoldFeature | HemFeature | HoleFeature |
KnitFeature | LoftFeature | MirrorFeature |
MoveFaceFeature | NonParametricBaseFeature | PartFeature |
PartFeatureExtent | PunchToolFeature | RectangularPatternFeature |
ReferenceFeature | ReplaceFaceFeature | RevolveFeature |
RibFeature | ShellFeature | SplitFeature |
SweepFeature | ThickenFeature | ThreadFeature |
3.5.3
3.5.4Создание элемента выдавливания с нуля
Этот пример кода содержит пошаговые инструкции по созданию твердого тела из эскиза выдавливанием. Создается новый документ детали, добавляются эскиз и профиль, а профиль выдавливается, образуя трехмерное тело.
Примечание. Для вытягивания эскиза через пользовательский интерфейс Autodesk Inventor не требуется создание профиля. Этот шаг скрыт от пользователя. Однако API требует объект Profile (фактически набор объектов ProfilePath) для создания некоторых функций. |
Для ясности и краткости в коде отсутствует проверка ошибок. Всегда проверяйте, что возвращаемые значения имеют ожидаемый тип. Сначала добавьте новый документ детали в коллекцию документов:
Dim oApp As Inventor.Application Set oApp = ThisApplication Dim oPartDoc As PartDocument Set oPartDoc = oApp.Documents.Add(kPartDocumentObject, oApp.GetTemplateFile(kPartDocumentObject)) |
Теперь добавьте новый эскиз в коллекцию эскизов определения компонента этого документа. Здесь третий элемент в коллекции WorkPlanes указывает плоскость XY, так что это плоскость для нового эскиза.
Dim oSketch As PlanarSketch Set oSketch = oPartDoc.ComponentDefinition.Sketches.Add(oPartDoc.ComponentDefinition.WorkPlanes.Item(3)) |
При создании линий эскиза требуются некоторые вспомогательные объекты, поэтому получите объект TransientGeometry.
Dim oTG As TransientGeometry Set oTG = oApp.TransientGeometry |
Добавьте три точки в коллекцию SketchPoints нового эскиза. Они становятся конечными точками трех линий эскиза, образующих треугольник. Аргумент "False" указывает на то, что эти точки не предназначены для использования в качестве центральных точек отверстия.
Dim oSkPnts As SketchPoints Set oSkPnts = oSketch.SketchPoints Call oSkPnts.Add(oTG.CreatePoint2d(0, 0), False) Call oSkPnts.Add(oTG.CreatePoint2d(1, 0), False) Call oSkPnts.Add(oTG.CreatePoint2d(1, 1), False) |
Когда пользователь рисует линии эскиза через пользовательский интерфейс Autodesk Inventor, точки эскиза не требуются, поскольку они определяются автоматически. Это не относится к API. Точки эскиза необходимы для добавления линий эскиза. Используйте указанные выше точки эскиза, чтобы добавить к эскизу три линии эскиза.
Dim oLines As SketchLines Set oLines = oSketch.SketchLines Dim oLine(1 To 3) As SketchLine Set oLine(1) = oLines.AddByTwoPoints(oSkPnts(1), oSkPnts(2)) Set oLine(2) = oLines.AddByTwoPoints(oSkPnts(2), oSkPnts(3)) Set oLine(3) = oLines.AddByTwoPoints(oSkPnts(3), oSkPnts(1)) |
Вышеприведенный код создает новый документ детали, содержащий следующий эскиз:
Для элементов выдавливания требуется объект профиля, поэтому создайте профиль из этого эскиза. Метод AddForSolid имеет необязательные аргументы (здесь не используются), которые можно использовать для дальнейшего управления ProfilePaths в профиле.
Dim oProfile As Profile Set oProfile = oSketch.Profiles.AddForSolid |
Теперь добавьте ExtrudeFeature в коллекцию Features определения компонента документа. Здесь используется метод AddByDistanceExtent, который требует расстояния для выдавливания - в данном случае 1.0. Другие аргументы также аналогичны пользовательскому интерфейсу, указывая, что выдавливание должно происходить как в положительном, так и в отрицательном направлениях, и что должна быть выполнена логическая операция объединения.
Dim oExtFeature As ExtrudeFeature Set oExtFeature = oPartDoc.ComponentDefinition.Features.ExtrudeFeatures.AddByDistance Extent _ (oProfile, 1.0, kSymmetricExtentDirection, kJoinOperation) oApp.ActiveView.Fit |
Код строит следующее трехмерное твердое тело
В этом примере продемонстрировано простое выдавливание эскиза для формирования трехмерного тела. В следующем примере демонстрируется создание 3D-тела путем вращения эскиза вокруг оси. Снова создайте новый документ детали и создайте несколько точек эскиза:
Dim oApp As Inventor.Application Set oApp = ThisApplication Dim oPartDoc As PartDocument Set oPartDoc = oApp.Documents.Add(kPartDocumentObject, oApp.GetTemplateFile(kPartDocumentObject)) Dim oSketch As PlanarSketch Set oSketch = oPartDoc.ComponentDefinition.Sketches.Add(oPartDoc.ComponentDefinition.WorkPlanes.Item(3)) Dim oTG As TransientGeometry Set oTG = oApp.TransientGeometry Dim oSkPnts As SketchPoints Set oSkPnts = oSketch.SketchPoints Call oSkPnts.Add(oTG.CreatePoint2d(0, 0), False) Call oSkPnts.Add(oTG.CreatePoint2d(1, 1), False) Call oSkPnts.Add(oTG.CreatePoint2d(1, 0), False) |
Были созданы три точки эскиза. Используйте две из них, чтобы создать линию эскиза, а третью, чтобы построить окружность эскиза с радиусом 0,5:
Dim oLines As SketchLines Set oLines = oSketch.SketchLines Dim oLine As SketchLine Set oLine = oLines.AddByTwoPoints(oSkPnts(1), oSkPnts(2)) Dim oCircs As SketchCircles Set oCircs = oSketch.SketchCircles Dim oCirc As SketchCircle Set oCirc = oCircs.AddByCenterRadius(oSkPnts(3), 0.5) |