Официальный форум российского программного комплекса T-FLEX PLM


Поиск  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Получить путь связанного объекта(файла) из Структуры изделия
 

Добрый день!

Я работаю с режимом "Структура изделия", все позиции которые есть в структуре изделия выгружаю в pdm систему, но чтобы это сделать нужно открыть каждую деталь и сохранить ее, для этого нужен путь файла. Путь файла искала в режиме 3D модель, обозначение файла брала из структуры изделия и искала соответствие в дереве построения. Но столкнулась с вариантом когда, в дереве построения и в структуре изделия обозначения отличаются, но при этом если в структуре становлюсь на какую-то позицию, то в дереве она подсвечивается. Столкнулась с тем, что могу вытащить путь связанного объекта и отдельно Обозначение и Наименование, но связать их между собой не получается.

На входе имею см. рисунок1.

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

Если я использую код:

[CODE] //создаем столбцы в Data Table
          System.Data.DataTable dt = new System.Data.DataTable();
          dt.Columns.Add("NOTE_SPEC", typeof(string));
          dt.Columns.Add("NAME_SPEC", typeof(string));
          dt.Columns.Add("CHECK_POS", typeof(Boolean));
          dt.Columns.Add("Path", typeof(string));
          document = TFlex.Application.ActiveDocument;
          //получаем объекты дерева построения            
          //1-параметр - ссылка на текущую сборку
          //2-параметр - указывает нужно ли, кроме ссылок на grb, возвращать ссылки на картинки, БД.
          //3-параметр - указывает нужно ли возвращать ссылки на библиотечные фрагменты
          //последний параметр - позволяет задать уровень вложенности,
          //для которого нужно получить ссылки(false - 1 уровень вложенности, true - поиск на всю глубину сборки)
          string[] filePaths = TFlex.Application.GetDocumentExternalFileLinks(document.FileName, false, false, false);

          //бегаем по спецификации T-flex
          foreach (var ps in document.GetProductStructures())
          {
              //перебор всех элементов/записей
              foreach (var elem in ps.GetAllRowElements())
              {
                  var includeInReport = (bool)elem.IncludeInDoc.Value; //true/false если стоит галочка включать в спецификацию
                  d = elem.SourceFragmentPath; //расположение (путь) связанного объекта

                  if (d != null)
                  {
                      //перебор групп(разделов) "главного" представления:
                      foreach (var group in ps.GetRowElementGroups())
                      {
                          string groupName = group.Name;

                          if ((groupName == "Документация") || (groupName == "Сборочные единицы") || (groupName == "Детали") || (groupName == "Прочие изделия"))
                          {
                              foreach (var item in group.Items)
                              {
                                  //Значения элемента
                                  dynamic mainElem = item.MergedElements.First();
                                  string paramValue = mainElem[new Guid("ee9a8bc0-c016-4915-9baa-69b2d8c28786")].ValueAsString; //обозначение
                                  string paramValue1 = mainElem[new Guid("44bb724a-de07-4fd3-9882-ced1c8425057")].ValueAsString; //наименование

                                  if ((groupName == "Документация") || (groupName == "Детали") || (groupName == "Сборочные единицы") || (groupName == "Прочие изделия"))
                                  {
                                      //добавляем строку в Data Table и запоняем ее
                                      DataRow newRow = dt.Rows.Add();
                                      newRow.SetField("NOTE_SPEC", paramValue);
                                      newRow.SetField("NAME_SPEC", paramValue1);
                                      newRow.SetField("CHECK_POS", true);
                                      count_row = Convert.ToInt16(dt.Rows.Count.ToString());

                                      if (paramValue.Contains(" СБ") == true)
                                      {
                                          string paths = document.FileName.ToString();
                                          newRow.SetField("path", paths); //заполняем строку
                                      }
                                      else
                                      {
                                          newRow.SetField("path", d); //заполняем строку
                                      }
                                  }
                              }
                          }
                      }
                  }
              }  
          }
          gridContrl.DataSource = null;
          gridContrl.DataSource = dt;

[/CODE]
то на выходе получаю (см.рисунок2). Обратите внимание, что колонки Обозначение и Расположение файла не соответствуют.

Если использую код, который вытаскивает правильно Обозначение, то не могу получить Расположение файла, так как SourceFragmentPath есть только в GetAllRowElements. (см. рисунок3)[CODE]//создаем столбцы в Data Table
           System.Data.DataTable dt = new System.Data.DataTable();
           dt.Columns.Add("NOTE_SPEC", typeof(string));
           dt.Columns.Add("NAME_SPEC", typeof(string));
           dt.Columns.Add("CHECK_POS", typeof(Boolean));
           dt.Columns.Add("Path", typeof(string));
           document = TFlex.Application.ActiveDocument;
           //получаем объекты дерева построения            
           //1-параметр - ссылка на текущую сборку
           //2-параметр - указывает нужно ли, кроме ссылок на grb, возвращать ссылки на картинки, БД.
           //3-параметр - указывает нужно ли возвращать ссылки на библиотечные фрагменты
           //последний параметр - позволяет задать уровень вложенности,
           //для которого нужно получить ссылки(false - 1 уровень вложенности, true - поиск на всю глубину сборки)
           string[] filePaths = TFlex.Application.GetDocumentExternalFileLinks(document.FileName, false, false, false);

           //бегаем по спецификации T-flex
           foreach (var ps in document.GetProductStructures())
           {
               //перебор всех элементов/записей
               foreach (var elem in ps.GetAllRowElements())
               {
                   var includeInReport = (bool)elem.IncludeInDoc.Value; //true/false если стоит галочка включать в спецификацию
                   d = elem.SourceFragmentPath; //расположение (путь) связанного объекта
               }
                   if (d != null)
                   {
                       //перебор групп(разделов) "главного" представления:
                       foreach (var group in ps.GetRowElementGroups())
                       {
                           string groupName = group.Name;

                           if ((groupName == "Документация") || (groupName == "Сборочные единицы") || (groupName == "Детали") || (groupName == "Прочие изделия"))
                           {
                               foreach (var item in group.Items)
                               {
                                   //Значения элемента
                                   dynamic mainElem = item.MergedElements.First();
                                   string paramValue = mainElem[new Guid("ee9a8bc0-c016-4915-9baa-69b2d8c28786")].ValueAsString; //обозначение
                                   string paramValue1 = mainElem[new Guid("44bb724a-de07-4fd3-9882-ced1c8425057")].ValueAsString; //наименование

                                   if ((groupName == "Документация") || (groupName == "Детали") || (groupName == "Сборочные единицы") || (groupName == "Прочие изделия"))
                                   {
                                       //добавляем строку в Data Table и запоняем ее
                                       DataRow newRow = dt.Rows.Add();
                                       newRow.SetField("NOTE_SPEC", paramValue);
                                       newRow.SetField("NAME_SPEC", paramValue1);
                                       newRow.SetField("CHECK_POS", true);
                                       count_row = Convert.ToInt16(dt.Rows.Count.ToString());

                                       if (paramValue.Contains(" СБ") == true)
                                       {
                                           string paths = document.FileName.ToString();
                                           newRow.SetField("path", paths); //заполняем строку
                                       }
                                       else
                                       {
                                           newRow.SetField("path", d); //заполняем строку
                                       }
                                   }
                               }
                           }
                       }
                   }
               //}  
           }
           gridContrl.DataSource = null;
           gridContrl.DataSource = dt;[/CODE]

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

Подскажите пожалуйста, как получить и Расположение связанных объектов, и Обозначение, и Наименование, при этом сохранив все условия из кода?

Создание меню после открытия документа
 
Добрый день!

На основе примера StarPlagin в разделе Сервис создала меню, оно появляется при запуске программы и все прекрасно работает.[CODE]protected override void OnCreateTools()
       {

           RegisterCommand((int)Commands.Create, "Создание документа в TechnologiCS", LoadIconResource("testObjectIcon"), LoadIconResource("testObjectIcon")); // Регистрируем команду создания
           //-----------------------------------------------------------------------------------

           TFlex.Menu submenu = new TFlex.Menu();

           submenu.CreatePopup();

           submenu.Append((int)Commands.Create, "&Создание документа в TechnologiCS", this);

           TFlex.Application.ActiveMainWindow.InsertPluginSubMenu("Technologics", submenu, MainWindow.InsertMenuPosition.BeginOfTools, this);
       }
[/CODE]
Теперь необходимо, чтобы после открытия документа появлялось подменю в созданном меню.
[CODE]protected override void DocumentOpenEventHandler(DocumentEventArgs args)
       {
           //Событие приходит после открытия документа

           MessageBox.Show("Документ открыт");

           TFlex.Menu submenu2 = null;

           RegisterCommand(4, "Привет", null, null);

           submenu2 = submenu.AppendSubMenu("&Привет");
       }
[/CODE]
Но вместо этого появляется ошибка. см вложение

[IMG WIDTH=336 HEIGHT=156]data:image/png;base64,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[/IMG]

Может быть кто-то сталкивался с подобной задачей и знает решение, ну или мысли какие-то есть?
Изменено: Анна - 25.03.2019 08:42:47
Обработка меню и подменю созданные в разделе Сервис
 
Добрый день!

На основе примера StarsPlugin, создала меню с выпадающим списком (см.вложение), который строится динамически на основе sql запроса. Человек который будет пользоваться этим меню, может выбрать любой пункт подменю.
Как определить какой пункт подменю выбрал пользователь, т.е. нажал левой клавишей мышки по одной из строк сформированных динамически?
Получить все сборки, детали, стандартные изделия входящие в 3D модель
 
Здравствуйте! Подскажите пожалуйста, как макросом пробежаться по дереву построения 3D модели сборки и получить имена, пути входящих деталей, сборок и т.д.? T-flex 15.1.70.0
Написала в техподдержку, но они молчат  :(
Перебор страниц в документе
 
Здравствуйте! В документе есть несколько  страниц (Страница1, Страница2, Спецификация), Страница1 активная. Подскажите пожалуйста, как макросом можно перебрать все страницы документа и сделать Страницу2 активной, выполнить определенные действия, сделать Срецификацию активной, выполнить определенный действия и вернуться к Странице1?
Страницы: 1