Перейти к публикации

как добавить форму на существующие детали и сборки


Aleximus

Рекомендованные сообщения

Всем привет!

Возник такой вопрос, нужно написать plugin на JAVA который будет искать все детали и сборки и для

каждой ревизии создавать форму и прикреплять нужное отношение. Plugin будет запускаться из приложения <Мой

Teamcenter>. Plugin должен быть добавлен в пункт главного меню <Инструменты>

с названием <Добавить форму Подпись>

У меня пока очень мало опыта в этом плане, и у меня есть пара вопросов о реализации:

1. Как отследить какая ревизия выбрана?

2. Как проводить с ней нужные манипуляции, например вставка формы?

Ссылка на сообщение
Поделиться на других сайтах


Всем привет!

Возник такой вопрос, нужно написать plugin на JAVA который будет искать все детали и сборки и для

каждой ревизии создавать форму и прикреплять нужное отношение. Plugin будет запускаться из приложения <Мой

Teamcenter>. Plugin должен быть добавлен в пункт главного меню <Инструменты>

с названием <Добавить форму Подпись>

У меня пока очень мало опыта в этом плане, и у меня есть пара вопросов о реализации:

1. Как отследить какая ревизия выбрана?

2. Как проводить с ней нужные манипуляции, например вставка формы?

InterfaceAIFComponent[] comps = application.getTargetComponents();

if(comps.length==1 && comps[0] instanceof TCComponentItemRevision)

{

	TCComponentFormType formType =  (TCComponentFormType ) session.getTypeComponent("Form");

	TCComponentForm form =   formType.create( ... ); 

	form.save();

	form.unlock();

	TCComponentItemRevision rev = (TCComponentItemRevision)comps[0];

	rev.add("IMAN_reference",form);



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

InterfaceAIFComponent[] comps = application.getTargetComponents();

if(comps.length==1 && comps[0] instanceof TCComponentItemRevision)

{

	TCComponentFormType formType =  (TCComponentFormType ) session.getTypeComponent("Form");

	TCComponentForm form =   formType.create( ... ); 

	form.save();

	form.unlock();

	TCComponentItemRevision rev = (TCComponentItemRevision)comps[0];

	rev.add("IMAN_reference",form);



}
примерно так,на вскидку.параметры функций есть в явадоке.application и session думаю знаете как предварительно получить.

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

public class SampleHandler extends AbstractHandler {

	/**

	 * The constructor.

	 */

	

	public SampleHandler() {}

	

	public Object execute(ExecutionEvent event) throws ExecutionException {

		SearchAndCreateForm formClass = new SearchAndCreateForm(event.getCommand().getId());

		formClass.schedule();

		return null;

	}



	private class SearchAndCreateForm extends Job{

		private String id;

		public SearchAndCreateForm(String id) {

			super(id);

	

			this.id = id;

		}

		

		private AbstractAIFUIApplication application = (AbstractAIFUIApplication) AIFUtility.getActiveDesktop().getCurrentApplication();

		private TCSession session = (TCSession) application.getSession();

		

		@Override

		protected IStatus run(IProgressMonitor arg0) {

			try{

	

				InterfaceAIFComponent[] targetArray = application.getTargetComponents();

				

				TCComponent[] attachments = Translator.convertToTCComponents(targetArray);

	

				if (attachments != null) {

					for (int i = 0; i < attachments.length; i++) {

						TCComponent imanComponent = attachments[i];

						if(imanComponent instanceof TCComponentBOMLine) {

							imanComponent = ((TCComponentBOMLine)imanComponent).getItemRevision();

							

							TCComponentFormType formType =  (TCComponentFormType ) session.getTypeComponent("Form");

							DateFormat formatter = new SimpleDateFormat("EEE MMM dd HH:mm:ss yyyy");

							TCComponentForm form = formtype.create("Подписи", formatter.format(new Date()), "Tvz5_SignForm");

							form.save();

							form.unlock();

							

							imanComponent.add("Tvz5_SignRelation",form);

							

						}

					}

				}

			}catch(Exception exception){

				System.out.println("Error - " + exception.getMessage());

				return Status.CANCEL_STATUS;

			}

			

			return Status.OK_STATUS;

		}

	}		

}
Ссылка на сообщение
Поделиться на других сайтах
  • 1 месяц спустя...

Всем привет!

Возник такой вопрос, нужно написать plugin на JAVA который будет искать все детали и сборки и для

каждой ревизии создавать форму и прикреплять нужное отношение. Plugin будет запускаться из приложения <Мой

Teamcenter>. Plugin должен быть добавлен в пункт главного меню <Инструменты>

с названием <Добавить форму Подпись>

Проблему вы уже решили, но я хотел бы уточнить, с какой целью делали создание такой формы через меню? Ведь форма по сути отображает информацию, полученную в процессе согласования? Тогда можно было создавать форму через хэндлер EPM-create-form непосредственно из бизнес-процесса. С другой стороны, эта форма является неотъемлемой частью любой ревизии в системе. Тогда через Business Modeler можно настроить, чтобы при создании ревизии она создавалась автоматически.

Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...

Проблему вы уже решили, но я хотел бы уточнить, с какой целью делали создание такой формы через меню? Ведь форма по сути отображает информацию, полученную в процессе согласования? Тогда можно было создавать форму через хэндлер EPM-create-form непосредственно из бизнес-процесса. С другой стороны, эта форма является неотъемлемой частью любой ревизии в системе. Тогда через Business Modeler можно настроить, чтобы при создании ревизии она создавалась автоматически.

А почему нельзя эти данные добавить на саму форму ревизии? Можно, например, сделать на форме 2 вкладки, чтобы отделить данные.
Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...

А почему нельзя эти данные добавить на саму форму ревизии? Можно, например, сделать на форме 2 вкладки, чтобы отделить данные.

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

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




  • Сообщения

    • gudstartup
      вы тоже думаете что можно все компоненты чпу заменить и ничего не изменится и предупреждение о том чтобы oprminf не восстанавливали на другой машине которое фанук встроил даже в загрузчик это просто алармисткий текст и ничего не будет..... ну и ну и где написано что она mate как например здесь с чего тогда базовый чпу mate если гл.плата не mate мне непонятно из-за экрана что ли
    • статист
      Охренеть, ни за что бы не догадался. Хоть бы словом где обмолвились об этом в документации. Короче нужна команда EMODIF, E_ID, 3, N_ID где E_ID - номер элемента, который мы собираемся модифицировать. Так как используется BEAM188, то у него не два узла оказывается рассматривается, а три, где первые два принадлежат элементу, а третий узел - направляющий. И соответственно число 3 - это номер узла балки, который мы собираемся модифицировать, то есть направляющий узел. И мы этот узел соответственно заменяем на узел с номером N_ID. И тогда сечение реально вращается. Разобрался по этому видео.    
    • Александр1979
      Материнка такая в руководстве есть. На 0i-D я менял материнку, опции не слетели. 
    • gudstartup
      @Viktor2004 кстати конкретно модели автора в руководстве нет хотя оно последней редакции 18 года
    • Viktor2004
      конкретно на этой не менял. На каких менял, написал выше
    • gudstartup
      какие платы и на каких системах вот в чем ворос конкретно на этой возникут проблемы
    • Viktor2004
      ну да. А то что я менял платы это мои бредовые фантазии   Ну исправили в паспорте. И что?
    • gudstartup
      это догадки и гадание на кофейной гуще а япривожу документ где написано про то что прочитайте пункт 4.11 а там представляете вот что 4) Замена печатной платы может привести к изменению идентификационного номера ЧПУ. Проверьте это на Экран ЧПУ. Если оно отличается от описанного в техническом паспорте, исправьте его.  
    • Viktor2004
      я менял все платы. И на форуме наверное не я один их менял. И никто еще не писал что при этом у него слетел сертификат Возможно ID номера проверяются только в момент установки опции, а когда они уже установлены и мирно хранятся в OPRM INF возможно ти уже на ID наплевать
    • gudstartup
      для кого это написано CAUTION Before replacing a printed circuit board, be sure to read Section 4.11, “OPTION INFORMATION FILE” to confirm the procedure.  
×
×
  • Создать...