Jump to content

PostAction на сохранении структуры


Andrey337

Recommended Posts

Здравствуйте, коллеги!
 

Работаем с Управлением требованиями.

Есть объект типа RequirementSpec (ТЗ), структура которого состоит из объектов типа Requirement (Требование).

При открытии ТЗ в приложении Системное проектирование, для каждого Требования создается Runtime объект типа Fnd0RequirementBOMLine.

На Runtime объекте типа Fnd0RequirementBOMLine есть Runtime атрибут fnd0bl_hierarchical_number (Номер) в котором генерируются порядковые номера для каждого требования (грубо говоря нумерация требований).

image.png

 

Эту структуры мы выгружаем в Word (при помощи Сервис - Экспорт - Объекты в Word), но атрибут Номер выгрузить нельзя (если знаете как, буду признателен), т.к. его нет на ревизии требования и он Runtime, а ОЧЕНЬ нужно.

image.png

 

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

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

 

Постэкшен срабатывает при сохранении структуры BOM - окна, открытого в данный момент в приложении.

Т.е. нажатие на кнопку "Сохранить" в менеджере структуры однозначно вызывает это событие.  И когда это событие наступает, можно программно из открытого BOM-окна получить актуальный состав с уже установленными правилами конфигурирования.

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

В Системном пректировании несколько иначе все работает, приложение работает не с одной структурой, а с несколькими различными видами представления данных. И, похоже, сохранение и обновление данных в некоторых случаях делается другим способом без вызова стандартного события (например, напрямую через SOA вызовы, и непосредственно в сами изменяемые объекты). Отловить это практически невозможно, т.к. отсутствуют события.

 

Скажите, пожалуйста, может быть у кого-то есть идеи, как можно отловить действия приводящие к автоматическому сохранению структуры в приложении Системное проектирование?

Заранее благодарен!

 

Link to post
Share on other sites


UnPinned posts

А в Excel этот атрибут экспортируется? Еще как вариант, если если есть AWC, попробовать выполнить экспорт из под него также в Word.

Link to post
Share on other sites
1 час назад, Nek сказал:

А в Excel этот атрибут экспортируется? Еще как вариант, если если есть AWC, попробовать выполнить экспорт из под него также в Word.

Т.к. этот атрибут Runtime и он находится на системном Runtime объекте, я предполагаю, что его, вообще невозможно экспортировать без использования программирования.

AWC у нас нет.

Link to post
Share on other sites
1 час назад, Andrey337 сказал:

Т.к. этот атрибут Runtime и он находится на системном Runtime объекте, я предполагаю, что его, вообще невозможно экспортировать без использования программирования.

AWC у нас нет.

Ну так из Менеджера структуры экспорт в Excel нормально затягивает, например, столбец Количество, хотя он Runtime и на на Runtime объекте.

Я протестировал у себя экспорт требований в Word и похоже, что у меня столбец Номер в Word экспортируется нормально, см. вложения.

 

 

 

 

1.png

2.png

  • Нравится 1
Link to post
Share on other sites
26.01.2023 в 12:08, Nek сказал:

Я протестировал у себя экспорт требований в Word и похоже, что у меня столбец Номер в Word экспортируется нормально, см. вложения.

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

Вот так:

image.png

Если получится, то покажите, пожалуйста, Ваш шаблон выгрузки.

Link to post
Share on other sites
Цитата

Попробуйте, теперь сделать так...

 

друга есть номер в эксель ?
а попробуите Сами что то сделать ???

и нам пришлите плиз  - мы с вами вместе получим знания !!!

Edited by esergey
Link to post
Share on other sites

возможно нам стоит вместе с данным вопросом разобраться ? 
что мы видим на странице экселя ? 
мы видим номера колонок , мы видим их оглавление , мы видим данные которые стоят в строках в этих колонках ...
давайте попробуем их извлечь и использовать их для нашего блага !!!
имея эти данные мы смогем(жем) ими оперировать и менять их как нам захочется !

начнем ? 
мы видим с вами заголовок в первой строке  - в нем написано  - Номер 
читаем 
как получить текст из колонки 
начнем с имени листа на котором мы будем искать данные 


Переменные для листов
Set sh = ThisWorkbook.Worksheets("Лист1")
Set sh = ThisWorkbook.Worksheets(listname)
или 
обратиться к листу в эксель VBA 
https://vremya-ne-zhdet.ru/vba-excel/rabochiy-list-obrashcheniye-pereimenovaniye-skrytiye/

 

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

https://vremya-ne-zhdet.ru/vba-excel/metod-range-find
https://codernotes.ru/articles/vba/poisk-na-liste-excel.html
https://www.cyberforum.ru/vba/thread803973.html
https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=100925&MID=833885#message833885

 

как получить значение из ячейки 

https://codernotes.ru/articles/vba/chtenie-i-zapis-znacheniya-yachejki-v-vba.html
https://vremya-ne-zhdet.ru/vba-excel/yacheyki-obrashcheniye-zapis-chteniye-ochistka/
https://voxt.ru/poluchit-znachenie-yachejki-v-excel-vba/
https://excelfiles.space/ru/ms-office-ru/excel-ru/cells-excel-vba-ru


после того как мы получим значения из ячеек в переменную  - мы можем применить их в значениях других ячеек 
ячейка N = ячейка N & переменная 
или 
ячейка N.formulaR1C1 = ячейка N.formulaR1C1 & переменная 


итого 

мы можем найти значение колонки в первой строке с именем "Номер"
получить номер колонки в которой стоит номер вложенности вашей сборки 
потом мы идем по колонке и берем номера ячеек в переменную 
    номер колонки куда добавить номер 
    и номер колонки в которой стоит нужный вам номер 
    
    теперь мы можем изменить значение колонки в которую вам нужно добавить номер 
    оно равно = значение колонки & номер  =  Пупкин 123
    или равно  = номер & значение колонки  = 123 Пупкин
    
    
    
теперь мы можем открыть вкладку разработчик vba 
написать макрос (Sub Name) 
и на листе добавить кнопку 
и кнопке назначить выполнение макроса (Sub Name)

теперь после открытия файла с экспортированными данными  - мы можем применить номера к любой требуемой нами колонке !!!


если нужно - дайте данные в формате Excel  я вам напишу вам макрос без проблем !!!


теперь далее - если у вас что то после вин 7  - то любая книга с макросом открытая и разрешенная к использованию макросов 
в дальнейшем будет открываться без проблем 
в противном случае вам в настройках экселя нужно создать безопасное расположение и книги с макросами помещать туда 
из этого расположения все книги Excel  с макросами будут открываться без предупреждения и со включенными макросами ... 
Дерзайте  !!!


БлаБлаБла.rar






 


 

  • Нравится 1
Link to post
Share on other sites
27.01.2023 в 14:02, Andrey337 сказал:

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

Вот так:

image.png

Если получится, то покажите, пожалуйста, Ваш шаблон выгрузки.

Это значительно отличается от задачи описанной вами в первом посте, это по сути другая задача. Я шаблон Word не смотрел и не знаю как он выглядит, времени смотреть пока его нет. Но, если у вас через шаблон не получается вывести Номер в необходимое место, то попробуйте использовать альтернативный вариант (на который вас уже направил @esergey), например, написать код на Visual Basic для приложений (VBA) для Office.

Насколько я понял это все же заголовки и подзаголовки? Значит можно попробовать с помощью VBA считать их и добавить им в конце номер, возможно это будет проще, чем кастомизировать Teamcenter.

Link to post
Share on other sites
Andrey337
27.01.2023 в 14:34, esergey сказал:

 

друга есть номер в эксель ?
а попробуите Сами что то сделать ???

и нам пришлите плиз  - мы с вами вместе получим знания !!!

Здравствуйте!

Спасибо за Ваш ответ.

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

Я предполагал, что пользователь Nek, выгрузил их по другому, поэтому и попросил реализовать мой пример.

Так он написал, что не смотрел шаблон, то атрибут номер появился, благодаря работе стилей Word.

27.01.2023 в 23:54, esergey сказал:

возможно нам стоит вместе с данным вопросом разобраться ? 
что мы видим на странице экселя ? 
мы видим номера колонок , мы видим их оглавление , мы видим данные которые стоят в строках в этих колонках ...

Спасибо, за подробное описание работы с этим атрибутом в Excel.

При помощи VBA мы у себя собираем ТЗ из того, что выгружает ТС в Word.

Меня интересовал метод именно выгрузки данного атрибута, про постройку костылей мне известно, мой код по формированию ТЗ знатный инвалид)))

Если у кого-то будут вопросы по теме выгрузки или макрсоов под Word могу подсказать.

Если вопросов по выгрузке не будет, то тему можно закрывать, т.к. программисты нашли выход.

Они решили запускать свой код, при любом изменении в структуры, которое приводит к её автоматическому сохранению.

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.




  • Сообщения

    • medoosh
      Чертеж и скрин модели по ссылке: https://drive.google.com/drive/folders/1EHupAKNeR4ep0_n4pxHuxSOgjCNwyLa6?usp=sharing Получается в исходнике (чертеже): наружный диаметр 235 мм, делительный - 227,58 мм. А на модели, которая строится на основании данных из библиотеки (на скрине - радиусы): наружный диаметр 238,262 мм, делительный - 227,68 мм. Диаметр впадины зуба тоже отличается. Он не обозначен.  При моделировании звездочек по чертежам или образцам такое постоянно. Это не первый случай. На чертеже идет прямая ссылка на ISO или DIN
    • Holodilshik_R-717
      Здраствуйте. Проблема: сохраняю сборку в Солидворксе в формате STEP и пытаюсь открыть в Инверторе. Другие сборки и детали с Солидворкса без проблем открываются таким способом. Что именно влияет на успех в перехода с Солидворкса в Инвертор через STEP?
    • sloter
      Имеющиеся сгибы изменить при переводе в листовой металл нельзя. В принципе можно удалить все скругления на сгибах командой Удалить грань (Удалить и применить заплату) и при переводе в листовой назначить свой радиус. Но, в данном вашем случае задать больший радиус скорей всего нельзя геометрически. 
    • Ivan 769
      Я даже боюсь представить  что творится в твоей больной голове. В любом случае вам придётся баловаться в л/с со своими собратьями по разуму. Тема закрыта. Проблема в силовой плате станка. 
    • Udav817
      Я понял. В зависимости от назначения может быть или как у столовых приборов - плюс-минус полверблюда или же как с аэродинамическими поверхностями.
    • AlexKaz
      Взято из одной толстой книжки с очень одиозным названием. Книжка доступна всем в сети. Но, IMHO, для инженеров бесполезна практически полностью. А вот менеджерам, в первый раз вживую увидевшим CAD/CAE/сопромат и прочие инженерные расчёты, как введение подойдёт. Пробелов нет, т.к. копипаст из pdf.  
    • Nastyrnuy
      Ну так и просится..Иван- .олван! Форева заходить чтобы обгадить!!  
    • Ivan 769
      Уважаемые умники. Вы идите переписываться в л/с
    • Дмитрий22
      Здравствуйте! Начал пользоваться данными макросами. Все хорошо. Но смущает, что приходится в сборке открывать все подсборки, чтобы присвоить атрибуты (Обозначение + Наименование + Фамилии). А есть макрос, который бы пробегал по всем подсборкам и присваивал данные атрибуты автоматически?
    • Kelny
      Разорвать связь со STEP, а дальше либо распознать в листовой металл и поменять или в твердотеле наростить материала на нужный радиус, а всё лишнее срезать/вырезать.
×
×
  • Create New...