Разработка программы, которая по указанному идентификатору изделия выполняет рекурсивный обход сборки

Страницы работы

Содержание работы

Министерство образования и науки Российской Федерации

Государственное образовательное учреждение

высшего профессионального образования

«Комсомольский-на-Амуре государственный технический университет»

Кафедра математического обеспечения и применения ЭВМ

Отчёт по производственной практике

Студенты группы 4ВC-1                                                               Рогозин В.А.

2007

Теория:

Teamcenter Engineering - набор инструментов интеграции (ITK) является инструментом для создания программного обеспечения, которое используется для интеграции различных приложений или создания собственных модулей для Teamcenter. ITK - ряд C функции, используемые непосредственно Teamcenter и Unigraphics.

Набор инструментов Интеграции - средства, которыми и внутренние и внешние приложения взаимодействуют с Teamcenter Техническое ядро (включая RDBMS) и Teamcenter Технический интерфейс (включая подсистему управления окном).

Teamcenter состоит из различных модулей. ITK соединяет интегрируемые приложения с этими модулями.

Задание:

Разработать программу, которая по указанному идентификатору изделия выполняет рекурсивный обход сборки, выдавая список компонентов сборки по указанному правилу модификации, сравнивающую ревизии изделий с действующими на данный момент.  

Выполнение:

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

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

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

Запуск программы:

Рис.1 Запуск программы

Текст программы.

/********************************************************************************

* © Рогозин Владимир Анатольевичь КнААПО ОИТ 2007 год.                         *

* Программа выдает список компонентов сборки по указанному правилу модификации *

* и сравнивая ревизии изделий, действующих на данный момент.                   *

*                                                                              *

* Командная строка: list_assembly_components -item_id=... -pm=...              *

* где item_id - номер item'а, pm - правило модификации.                       *

********************************************************************************/

#define IPLIB libsyss

#include <workspaceobject.h>

#include <iman_string.h>

#include <iman_stdlib.h>

#include <item.h>

#include <emh.h>

#include <imanfile.h>

#include <bom.h>

#include <time.h>

#include <stdlib.h>

#include <prop.h>

#include <cfm.h>

#include "sample_err.h"

tag_t rul, window2, rev;

int P=0;

char *item_id;

/////////////////////////////////////////////////////////////////////////////////////

int startup_ITK_environment();/* Описание:

* функция регистрирует в ITK и инициализирует AE и SA модули.

* должна быть вызвана перед началом каждой программы.

* Функция возвращает ноль, иначе, не нулевой код ошибки. */ 

int   shutdown_ITK_environment();/* Описание:

* функция вызывает AE и SA модули выхода и завершение вызовов ITK модуля выхода.

* функция должна вызываться в конце ITK программы.

* Функция возвращает ноль, иначе, не нулевой код ошибки. */

void get_errors(); // функция обработки ошибок.

void rekurs(tag_t,int);// функция рекурсивного обхода эллементов сборки.

//////////////////////////////////////////////////////////////////////////////////

int ITK_user_main(int argc, char *argv[], char *prm[])

{

char *pm, *rev_id;

tag_t window, item, item_rev, top_line ,  rul2,rul3, end_item_tag, u_n_tag;

FILE *out;

startup_ITK_environment();

item_id=ITK_ask_cli_argument("-item_id=");

pm=ITK_ask_cli_argument("-pm=");

//проверка на отсутствие параметров

if(pm == NULL || item_id == NULL)

{    

printf("\nВид: list_assembly_components -item_id=... -pm=...\n\

где pm - правило модификации.\n");

shutdown_ITK_environment();

return ITK_ok;

}

Похожие материалы

Информация о работе