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

Подъем от TCComponentDataset до TCComponentItemRevision


Progress

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

Стоя на ревизии item'а, опускаюсь до нужного Dataset'а (код внизу). Это проблем не вызывает. Но как быть, если стоя на Dataset'е необходимо найти ревизию item'а?

AIFComponentContext[] itemRevChild = itemRev.getChildren();
for (AIFComponentContext itrch : itemRevChild) {
	if (itrch.getContext().toString().contains("root_activity")) { //если дочерний объект в нужном отношении
		InterfaceAIFComponent activity = itrch.getComponent();
		TCComponent activityCom = (TCComponent)activity;
		TCComponent[] activityComps = activityCom.getRelatedComponents(); //все объекты в отношениях с TCComponent activityCom
		for (TCComponent activityComp : activityComps) {
			if (activityComp.getTypeComponent().toString().contains("MENCProgram")) { //если объект нужного типа
				TCComponent[] achPrComps = activityComp.getRelatedComponents();		 //все объекты в отношениях с TCComponent activityComp
				for (TCComponent achPrComp : achPrComps) {
					if (achPrComp.getTypeComponent().toString().contains("UGCAMPTP")) { //если объект нужного типа
						TCComponentDataset cam_dataset = (TCComponentDataset)achPrComp;
						TCComponentTcFile tc_files[] = cam_dataset.getTcFiles(); //получаем файлы TCComponentDataset cam_dataset
						for (TCComponentTcFile tc_file : tc_files) {
							tc_file.getFile(sPath);
						}
					}
				}
			}
		}
		break;
	}
}

 

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


От управляющей программы "подняться" до ревизии айтема... Эх, если выясните - напишите, что ли. Тоже интересно :smile:

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

А зачем там куда-то подниматься? есть св-во item_revision - получайте значение и ловите ревизию.

Это не для случая с root_activity,а просто для датасета под ревизией

Изменено пользователем lexx174
Ссылка на сообщение
Поделиться на других сайтах
3 часа назад, NGM сказал:

От управляющей программы "подняться" до ревизии айтема... Эх, если выясните - напишите, что ли. Тоже интересно :smile:

Скорей всего только через метод WhereReferenced, т.к MENCProgram  это что-то вроде обычной папки

Ссылка на сообщение
Поделиться на других сайтах
5 минут назад, lexx174 сказал:

Скорей всего только через метод WhereReferenced, т.к MENCProgram  это что-то вроде обычной папки

Я внутритимцентровской программистской терминологией владею на твердую 2-, но если речь идет об анализе влияния "где ссылается" - то да, оно :)

Ссылка на сообщение
Поделиться на других сайтах
Только что, NGM сказал:

Я внутритимцентровской программистской терминологией владею на твердую 2-, но если речь идет об анализе влияния "где ссылается" - то да, оно :)

я вам ответил на программном языке - есть такой непосредственно метод одноименный. Т.к объект MENCProgram это по сути папка-контейнер то по сему прямых методов через свойства/отношения добраться обратно нет. Так что можно попробовать через WhereReferenced

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

Спасибо за подсказки! Вот что получилось в итоге:

if (comp.getTypeComponent().toString().contains("MENCProgram")) {
	try {
		String itemRevId = "error", itemId = "error";
		AIFComponentContext[] compUsed = comp.whereReferenced(); //где используется компонент MENCProgram
		for (AIFComponentContext compU : compUsed) {
			InterfaceAIFComponent compI = compU.getComponent();
			TCComponent compTC = (TCComponent)compI; //преобразование в TCComponent compTC
			AIFComponentContext[] compTCUsed = compTC.whereReferenced(); //где используется компонент TCComponent compTC
			for (AIFComponentContext compTCU : compTCUsed) {
				InterfaceAIFComponent compTCI = compTCU.getComponent();
				TCComponent compTC2 = (TCComponent)compTCI; //преобразование в TCComponent compTC2
				TCComponentItemRevision itemRev = (TCComponentItemRevision)compTC2; //преобразование в TCComponentItemRevision itemRev
				itemRevId = itemRev.getProperty("item_revision_id"); //получение item_revision_id
				TCComponentItem item = itemRev.getItem(); //получение самого item
				itemId = item.getProperty("item_id"); //получение item_id
				//получены item_id и item_revision_id
			}
		}
		/*...*/
	} catch (TCException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
}

Будут идеи как улучшить, выслушаю с радостью.

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

Почему вы начинаете с MENCProgram а не с Dataset? Условие же было с Dataset.

И не помешают проверки какие объекты возвращает WhereReferenced

Изменено пользователем lexx174
Ссылка на сообщение
Поделиться на других сайтах
46 минут назад, lexx174 сказал:

Почему вы начинаете с MENCProgram а не с Dataset? Условие же было с Dataset.

Было принято решение что так будет удобнее пользователю. Потому реализация претерпела небольшие изменения.

 

PS. надеюсь окончательное)

Изменено пользователем Progress
Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • Авенир
      ахаха)) мы нет, - мы за развитие российской науки и российского производства!  
    • Борис Е
    • Igor Lipin
      Спасибо, завтра попробуем.
    • Авенир
      Имеются чертежи комнат (помещений) - 16 штук, строящегося здания. Нужно оформить эти чертежи по стандарту DIN. Нам необходимо отправить чертежи иностранной компании, а они не принимают в российском формате. Есть кто-то, кто может помочь в этом вопросе? 1
    • gudstartup
      @Igor Lipin у релюшек контакты почистите и проверьте блокировку замка раб зоны может проводочек от замка отсох но не совсем если кабель подвижен или сам замочек поистерся. вот телеграммы и не доходят до привода
    • KsunReh
      Странно, раньше ИНТОС поставлял их... По поводу выдержит или нет:   1) Усилие гидроцилиндра одна из его рабочих характеристик. Прикиньте грубо какое давление в полости будет действовать на знак (с помощью симуляции или по формулам) и сопоставьте с паспортным усилием г/ц 2) У ТПА (литьевой машины) обычно есть функция удержания давления на ввод гидрознаков во время впрыска. Если этой функции нет или она отключена в меню, то пункт №1 частично теряет смысл. 3) На гидроцилиндр можно поставить гидрозамок. Стоимость вопроса - 5 - 20 т.р. за 1 цилиндр. Гидрозамок увеличивает усилие отжима штока цилиндра и делает его независимым от пункта №2   По вашему случаю картинка у вас маленькая, непонятна конструкция + какое сырье, например льете ли вы ПК или ПП от этого зависит давление в форме...     
    • Авенир
    • andref
      Попробуйте  если заменить реле проблематично, хотя бы поменять их местами (может другая ошибка появится )
    • Orchestra2603
      Была такая проблема у нас. Стол вибростенда бился об ограничитель. Но тогда это было ждя внутренних целей, так что мы сильно не заморчивались - все всё прекрасно понимали.   Но вообще можно по-разному попробовать выкрутиться.   1. Специально для испытаний в низкочастотной области можно присобачить между стендом и изделием какую-то "мягкую" подвеску. Тогда между стендом и изделием булет промежуточная простейшая система с своей АЧХ. Можно подобрать такую жесткость подвески, чтобы как раз в области низких частот был первый резонанс, и тогда при небольшом ходе стола можно получить бОльшую амплитудлу перемещения на самом изделии относительно стенда, ну и соответственно и ускорения будут также кратно выше. Можно поставить на изделие дополнительный акселерометр, чтобы знать точно там амплитуду ускорения. Очень похоже на задачу подбора параметров всяких виброгасителей, только в обратную сторону ))) Насколько это удобно и практично - это конечно вопрос открытый. Если можно было бы посмотреть на изделие и на стенд, может, че-нить придумали бы вместе.   2. Можно просто в МКЭ посчитать гармонический анализ, подогнать демпфирование и скорректировать жесткости/массы, чтобы для более высоких частот все хорошо ложилось. Тогда заказчику можно будет сказать, что это очень сложная задача поставить эксперимент для таких частот, но есть надежные расчетные модели, которые показывают хорошее совпадение с экспериментом на более высоких частотах (показываем графики), и они позволяют надежно предсказать результаты таких испытаний в низкочастотной области. Тут, кончено зависит то того, как это правильно преподнести заказчику. Нужна харизма определенная :)   3. Можно вообще придумать что-то типа маятника, и подвесить туда изделие. Варьируя высоту подвеса, можно менять частоту колебаний.  Амплитуду можно варьировать меняя начальное отклонение, причем можно сделать ее довольно большой (только отклонения должны быть маленькими, чтобы не проявлялась сильно нелинейность восстанавливющего момента). Вот такое я делал для калибровочных целей, был довольно забавный самопал конечно ))             Хз... можно внести искажения в АЧХ изделия. Надо осторожно
    • Igor Lipin
      Извиняюсь, да такой модуль есть. Я предположил он установлен в самом приводе  https://postimg.cc/gallery/cJHmJHg
×
×
  • Создать...