Главная страница
Навигация по странице:

  • Лабораторная работа № 6 Разработка программных продуктов для трехмерного моделирования с использованием встроенных языков среды Autodesk Inventor

  • Примечание

  • Свойство Возвращаемые объекты Описание

  • Document

  • FileDescriptor

  • DocumentDescriptor

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


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

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



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

    2) Разработать ПО для реализации задания.

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

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

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



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

    2) Задание

    3) Чертеж с указанием параметров.

    4) Описание процесса подготовки макроса.

    5) Скриншоты с демонстрацией работы программы.

    6) Выводы по работе

    7) Список используемой литературы

    8) Приложение – текст макроса.
    Лабораторная работа № 6

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

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


    Цель работы – освоить навыки применения и разработки графических библиотек для САПР «Autodesk Inventor».

    Для достижения поставленной цели необходимо выполнить следующие задачи:

    - Освоить принципы применения стандартных графических библиотек.

    - Разработать ПО графической библиотеки.

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



    Inventor API реализуется на основе COM технологии и предоставляет разные способы обратиться к данным Inventor при помощи различных видов надстроечных приложений (Plug-in modules).

    INCLUDEPICTURE "https://api-2d3d-cad.com/wp-content/uploads/2018/02/image001-1-300x285.jpg" \* MERGEFORMATINET INCLUDEPICTURE "https://api-2d3d-cad.com/wp-content/uploads/2018/02/image001-1-300x285.jpg" \* MERGEFORMATINET INCLUDEPICTURE "https://api-2d3d-cad.com/wp-content/uploads/2018/02/image001-1-300x285.jpg" \* MERGEFORMATINET INCLUDEPICTURE "https://api-2d3d-cad.com/wp-content/uploads/2018/02/image001-1-300x285.jpg" \* MERGEFORMATINET

    Белые поля представляют компоненты, которые обеспечивают API – Inventor и «Apprentice Server». Синий цилиндр в основании представляет Inventor данные, к которым Вы обращаетесь – это детали, сборки, и т.д. Все желтые поля представляют программы, которые Вы записываете. Когда одно поле включает другое поле, это указывает, что включенное поле выполняется в том же самом процессе как поле, включающее его

    VBA, подобно Visual Basic, позволяет Вам создавать кроме модулей кода (Module, ThisDocument) еще модули формы (UserModule) и класса (Class Module). В отличие от Visual Basic все VBA модули содержатся в пределах одного файла и не могут загружаться отдельно от проекта.

    VBA позволяет создавать формы, модули классов и модули кода. Эти модули содержатся в проектах. В большинстве сред разработки проект содержит весь исходный код, который используется для создания одного автономного компонента. Поскольку VBA не создает автономных компонентов, проекты используются немного иначе. Проект VBA – это просто контейнер для различных модулей. Из-за этого один проект VBA может содержать множество несвязанных функций. В рамках одного проекта можно написать любое количество функций и выполнять их независимо.

    VBA от Inventor поддерживает три типа проектов: документ, приложение и пользовательский. Основное различие между этими типами проектов – расположение проекта VBA. Проекты документов хранятся в документах Inventor. Приложения и пользовательские проекты хранятся во внешних файлах. Поскольку Inventor поддерживает сохранение проектов VBA в документах Inventor или во внешних файлах, вы можете решить, какой подход лучше подходит для вашей конкретной ситуации. Ниже приведены некоторые факторы, которые следует учитывать при принятии этого решения.

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

    Inventor автоматически загружает проект приложения всякий раз, когда пользователь запускает Inventor. Это делает макросы внутри проекта приложения всегда доступными. Только один проект может быть определен как проект приложения. Файл проекта, который служит проектом приложения, определяется с помощью диалогового окна «Параметры приложения» Inventor, как показано ниже. Поле «Проект VBA по умолчанию» на вкладке «Файл» определяет, какой пользовательский проект использовать в качестве проекта приложения.


    Пользовательские проекты не загружаются автоматически, но должны загружаться вручную с помощью команды «Загрузить проект» в меню «Файл VBA» Inventor (в Inventor выберите вкладку «Инструменты», затем «Редактор VBA», затем «Файл | Загрузить проект ...»). Новые пользовательские проекты также можно создавать с помощью команды «Новый проект» в меню «Файлы VBA». Нет ограничений на количество загружаемых пользовательских проектов.

    Доступ к интерфейсу VBA Inventor в Inventor осуществляется с помощью команды «Редактор VBA» на вкладке «Инструменты» на ленте. Команда Macros позволяет запускать существующие макросы и открывать редактор для определенного макроса. Эти две команды также доступны с помощью сочетаний клавиш Alt + F8 и Alt + F11.

    Прежде чем идти дальше, давайте определимся с некоторыми терминами. Sub – это, по сути, функция без возвращаемых значений. Код заключен в операторы Sub и End Sub. Sub может иметь аргументы, которые могут быть входными и выходными, но не имеют возвращаемого значения. Макрос (macro) - это особый случай Sub, у которого нет аргументов. Любые Sub без аргументов будут считаться макросами. Например, следующий код будет рассматриваться VBA как макрос.

    Public Sub SampleMacro()

    MsgBox "This is a sample."

    End Sub


    При выполнении команды «Макросы» ("Macros") в Inventor отображается диалоговое окно, показанное ниже. В этом диалоговом окне отображается список всех доступных в настоящее время макросов. Этот список можно отфильтровать с помощью поля со списком «Макросы в» ("Macros in"). Это позволяет вам перечислить макросы, содержащиеся в конкретном проекте (документ, пользовательский проект или проект приложения), или чтобы вывести список всех макросов во всех загруженных проектах.



    Когда макрос выбран из списка, все кнопки справа, кроме одной, становятся активными:

    Run - выбранный макрос выполняется без отображения среды программирования VBA.

    Cancel – закрывает диалоговое окно.

    Step Into - Открывает среду программирования VBA и начинает выполнение выбранного макроса пошагово. Это полезно при отладке макроса.

    Edit - Открывает среду программирования VBA с позицией курсора в начале первой строки макроса.

    Create - Если выбран существующий макрос, эта кнопка неактивна. Если новое имя вводится в поле «Имя макроса» ("Macro name"), эта кнопка становится активной, и при ее нажатии будет создан макрос с указанным именем.

    Delete – Удаляет выбранный макрос. Удаляет Sub из проекта.

    3.3.1Файлы и документы


    Объект File представляет собой хранилище в файловой системе (то есть файл на диске). Объект Document представляет собой экземпляр модели или чертежа в памяти. Документ может иметь только один связанный объект File. Однако, поскольку возможно иметь несколько экземпляров (или уровней детализации) файла в памяти, которые сохраняются в одном хранилище файловой системы, несколько объектов Document могут быть связаны с одним и тем же объектом File.

    3.3.2Файл и Ссылки на Документ


    Объект FileDescriptor описывает ссылку из файла на другой файл. DocumentDescriptor описывает ссылку из документа на другой документ. Дескриптор содержит всю информацию, необходимую для поиска указанного файла / документа, а также состояние ссылки (исправное, неразрешенное, замененное и т.д.). Объекты File и FileDescriptor представляют собой консолидированное представление всех представлений документа. На рисунке ниже показаны отношения между объектами FileDescriptor, File, DocumentDescriptor и Document.


    3.3.3Соответствующие API свойства


    Примечание: Интерфейс документа заменен на ApprenticeServerDocument в Apprentice. Все названия свойств остаются прежними.

    Объект File

    Свойство

    Возвращаемые объекты

    Описание

    AvailableDocuments

    Document objects

    Документы в памяти.

    AllReferencedFiles

    File objects

    Все файлы, на которые ссылается этот файл (включая рекурсивно вложенные ссылки).

    ReferencingFiles

    File objects

    Все файлы в памяти, которые напрямую ссылаются на этот файл.

    ReferencedFiles

    File objects

    Все файлы, на которые напрямую ссылается этот файл. Неразрешенные и подавленные ссылки пропускаются.

    ReferencedFileDescriptors

    FileDescriptor objects

    Коллекция, описывающая все прямые ссылки, содержащиеся в этом файле. Это сводный обзор всех ссылок на документы. Включает неразрешенные и подавленные ссылки. Также включает ссылки на внешние файлы (xls, bmp и т.д.)


    DocumentApprenticeServerDocument) Object

    Свойство

    Возвращаемый тип

    Описание

    File

    File object

    Связанный объект File.

    AllReferencedDocuments

    Document objects

    Все документы, на которые есть ссылки в этом документе (включая рекурсивно вложенные ссылки).

    ReferencingDocuments

    Document objects

    Все документы в памяти, которые напрямую ссылаются на этот документ.

    ReferencedDocuments

    Document objects

    Все документы, на которые есть прямая ссылка в этом документе. Неразрешенные и подавленные ссылки пропускаются.

    ReferencedDocument
    Descriptors

    DocumentDescriptor objects

    Коллекция, описывающая все прямые ссылки, содержащиеся в этом документе. Включает неразрешенные и подавленные ссылки.

    ReferencedOLEFile
    Descriptors

    ReferencedOLEFileDescriptor objects

    Коллекция, описывающая все прямые ссылки на внешние файлы, содержащиеся в этом документе. Включает неразрешенные ссылки.

    ReferencedOpaqueFile
    Descriptors

    ReferencedOpaque
    FileDescriptor objects

    Коллекция, описывающая все прямые ссылки на внешние файлы, содержащиеся в этом документе. Включает недостающие ссылки.


    FileDescriptor Object

    Свойство

    Возвращаемый тип

    Описание

    FullFileName

    String

    Полный путь к указанному файлу.

    ReferencedFile

    File object

    Указанный файл. Возвращает Null, если ссылка отсутствует (неразрешенная или подавленная).

    ReferenceMissing

    Boolean

    Отсутствует ли ссылка по какой-либо причине и будет ли свойство ReferencedFile возвращать объект File.


    DocumentDescriptor Object

    Свойство

    Возвращаемый тип

    Описание

    FullDocumentName

    String

    Полный путь к указанному документу.

    ReferencedDocument

    Document object

    Ссылочный документ. Возвращает Null, если ссылка отсутствует (неразрешенная или подавленная).

    ReferenceMissing

    Boolean

    Отсутствует ли ссылка по какой-либо причине и будет ли свойство ReferencedDocument возвращать объект File.

    ReferenceSuppressed

    Boolean

    Подавляется ли ссылка.



    В следующем примере кода демонстрируется обход ссылок на файлы и печатаются имена всех файлов, на которые ссылается активный документ.


    Public Sub FileReferenceSample()
    Dim oFile As File

    Set oFile = ThisApplication.ActiveDocument.File

    Call ProcessReferences(oFile)

    End Sub
    Private Sub ProcessReferences (ByVal oFile As File)

    Dim oFileDescriptor As FileDescriptor

    For Each oFileDescriptor In oFile.ReferencedFileDescriptors

    Debug.Print oFileDescriptor.FullFileName

    If Not oFileDescriptor.ReferenceMissing Then

    ' Т.к. ReferenceMissing вернул False, ReferencedFile вернет File

    ' Рекурсия, если это не ссылка на внешний файл

    If Not oFileDescriptor.ReferencedFileType = kForeignFileType Then
    Call ProcessReferences(oFileDescriptor.ReferencedFile)

    End If

    End If

    Next

    End Sub




    1   ...   24   25   26   27   28   29   30   31   32


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