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

Получить свойства POM api


butulec

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

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

Подскажите, как получить свойства POM и их свойства.

Я получаю объект TCComponentItemRevision,у него есть свойство с отсутствующей второй ссылкой (нет набора данных).

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

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


По возможности хотелось бы все свойства взять, просто каким методом у объекта TCComponentItemRevision можно взять свойства которые справа на скриншоте

3.png

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

через getTCProperty разве никак?

Через getTCProperty можно посмотреть все свойства, которые есть у объекта. Но мне нужно посмотреть именно ссылки для объекта, которые есть в ПОМ-свойствах.

Это свойство вообще может быть пустое, но в нашем случае оно пустое по ошибке, так как нет набора данных. Вот валидность проверить можно при анализе свойства, которое на скриншоте выше (Свойства (POM))

ТО есть если есть ссылка, но нет набора данных - ошибка

А если нет ссылки, свойство все равно будет (пустое) - не ошибка

 

4.png

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

В вашей модели данных для отношения тех.требования значение массив объектов или только один объект?

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

В вашей модели данных для отношения тех.требования значение массив объектов или только один объект?

Один объект, MSWord

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

TCProperty.getReferenceValue() пробовали?

Оказалось это отношение принимает массив объектов (выдал стек ошибок), я поправил как нужно.

Ситуация старая, если объект есть - он выводится

Если есть ссылка на объект, но набора данных нет - то массив пустой.

Но как определить есть ли сама ссылка ?

5.png

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

ссылка - это объект Relation, в вашем случае именуемый Тех.требования, верно?

Верно, на первом скриншоте на выделенной ревизии, в вкладке Анализ влияния, при выборе Свойства (POM) есть перечень ссылок. Там есть ссылка на структуру, карточку-форму, а также на объекты наборов данных которые находятся в ревизии (модели или тех.требования)

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

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

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

Тогда чтоб получить и перебрать Relation-объекты используйте функции whereReferenced()/whereReferenced(boolean )

 

в вашем случае нужен 2й вариант функции с параметром

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

Тогда чтоб получить и перебрать Relation-объекты используйте функции whereReferenced()/whereReferenced(boolean )

 

в вашем случае нужен 2й вариант функции с параметром

Мы приближаемся к истине)

1. Могли вы пояснить в чем между ними разница (whereReferenced(true) и whereReferenced(false)), у меня результаты разные, во 2 варианте перечень полный.

2. Так как результаты во 2 варианте правильные (нужные, там есть ссылка на тех.требования). Там вывод с UID, перебор ImanRelation. Как их правильно обработать могли бы подсказать? Выяснить наименование этого отношения как можно?

6.png

 

Нашел, whereReferenced.getComponent().getType(), так можно посмотреть тип отношения, но теперь вопрос, как найти вторичный объект по этому отношению?

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

true или false означает варианты просто ссылается или ссылается_POM, что не трудно догадаться (об этом написано в ява доке)

 

 

дальше просто проверяется на if( comp instanceof TCComponentTcRelation)

 

Если класса TCComponentTcRelation нет (я не помню за такой), возможно объекты Relation тогда будут просто TCComponent

чурез "object_name" можно потом отфильтровать нужное отношение

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

true или false означает варианты просто ссылается или ссылается_POM, что не трудно догадаться (об этом написано в ява доке)

 

 

дальше просто проверяется на if( comp instanceof TCComponentTcRelation)

 

Если класса TCComponentTcRelation нет (я не помню за такой), возможно объекты Relation тогда будут просто TCComponent

чурез "object_name" можно потом отфильтровать нужное отношение

Спасибо, искал сегодня очень долго!!! 

Остался последний момент, как найдя нужное отношение, найти по нему вторичный объект, и если его нет, соответственно, то это тот случай который нам нужен)  

Можно конечно извратиться и зайди в TCProperty и проверить значение, но возможно есть вариант по этому пути, имея компонент Relation, или по нему нельзя выйти на вторичный объект?

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

да скорее всего дальше просто через свойства primary_object/secondary_object

 

TCComponentTcRelation есть такой класс? У меня просто eclipse не перед глазами я не могу проверить

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

да скорее всего дальше просто через свойства primary_object/secondary_object

 

TCComponentTcRelation есть такой класс? У меня просто eclipse не перед глазами я не могу проверить

Да есть такой класс, но все компоненты попали в этот if при проверке, а мне нужен был конкретный по имени)

Сделал через TCProperty при наличии отношения нужного.

А свойства primary_object/secondary_object смотреть у ревизии вы имеете ввиду? 

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

Да есть такой класс, но все компоненты попали в этот if при проверке, а мне нужен был конкретный по имени)

Сделал через TCProperty при наличии отношения нужного.

А свойства primary_object/secondary_object смотреть у ревизии вы имеете ввиду? 

у самого отношения тех.требования

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

у самого отношения тех.требования

Что то я запутался.

AIFComponentContext[] whereReferenced = itemRevision.whereReferenced(false);
            for (int i = 0; i < whereReferenced.length; i++) {
                TCComponent comp = (TCComponent) whereReferenced.getComponent();
            
            
                AIFComponentContext[] whereReferenced_pr = comp.getPrimary();
                AIFComponentContext[] whereReferenced_sec = comp.getSecondary();

}

Оба массивы пустые.

 

Вот что в модели данных написано 

     <TcProperty propName="IL2_TechnicalSpec_Relation" propTypeName="Relation" propValueType="PROP_untyped_relation"
         propMaxStringLength="0" isArray="true" arrayLength="-1" description="" referencedTypeConstant=""
         referencedType=""/>

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

 

org.eclipse.core.runtime.AssertionFailedException: assertion failed: Неправильный тип свойства

Можно просто вывести с помощью prop.getDisplayValue(), мне этого достаточно, но интересно, какой тип ему все таки нужен?

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

Берите TCProperty у Relation(тех. требования)

два свойства - secondary_object и primary_object

 

то что вы привели в xml - это касатеся самого Relation а не свойств его

думаю дальше справитесь. и проверьте ЛС

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • maxx2000
      @fenics555, я никогда не задавался таким вопросом, а можно ли отключить авторегенрацию компонентов или заморозить? Если прям опции нет, может через Тулкит или Апи?
    • fenics555
      штифты разрезные- понятно, что примонтаже изменяют размер по отверстию.  Резиновое кольцо уплотнительное- оно меняет не только диаметр наружный и внутренний, но и толщину. именно долго открываются сборки, содержащие эти изделия.  можно конечно и без нее обходиться, но мы уже привыкли. Только грузятся сборки очень долго, но это врятли из-за гибкости.
    • Viktor2004
    • UkulyAlex
      Добрый день. Работаю в t-flex 16. Имеется приспособление в котором более 150 позиций деталей, спецификация сделана по структуре изделия. Возникла необходимость изменения конструкции, некоторые детали из середины списка пришлось удалить. После обновления отчёта позиции сдвигаются, как сделать чтобы оставались на месте, т.е. был пропуск позиций в середине раздела "Детали"? 
    • статист
      Спасибо за цитату, полезная для меня   Я знал до этого способ использовать атрибуты LATT для задания направления, но они применялись только к построенным линиям. Если например рассматривать созданный элемент E, 1, 2, где для задания применяются только два узла, то тут уже никак не поменяешь положение третьего узла, так как его нет. Нужно тогда создавать отдельно направляющий узел  и задавать его через EMODIF,EID, 3, NID.   Но получается без создания узла, задать направление нельзя. В настране по крайней мере так можно. А в ансисе нужно плодить лишние узлы. Грустно)
    • FROST_R6
      Есть монорельса размером 12м. Хочу проверить перемещение при нагрузке на середину в 2 тонны. Саму монорельсу фиксировать не нужно, поэтому я поставил ее на 2 призмы и зафиксировал их. Расчет не получается провести - сначала программа пишет, что "деформация в данном исследовании слишком значительная и нереалистичная, хотите остановить программу и перезапустить исследование с меньшими нагрузками или с более жесткой моделью?". Я выбираю "нет". После долгого процесса расчета появляется сообщение о том, что "Состояние равновесия не было достигнута" и "Анализ больших смещений был остановлен до сохранения результата", появляется надпись о сбое расчета. 
    • maxx2000
      подгружаются при повторном открытии сборки или при первой вставке? Ну и гибкость сначала вызвала вопрос, но я не заметил существенной задержки при выборе способа вставки с ней или без неё.
    • Ветерок
      Я не понял зачем в этих деталях задана гибкость. При том, что новые значения размеров определяются не измерением, а вводом вручную.
    • BOJIOD9I
      Добрый день! Подскажите куда внести изменения на стойке fanuc 0i, чтобы когда вводишь коррекцию в графу износа она не отображалась на координатах. Пример: Резец точит размер 100 мм, по факту получается 101мм. В графе износ вносишь -1.0 мм. В итоге по координатам будет показано что резец точит 99мм, а по факту станет 100мм как нужно было.
    • ДОБРЯК
      Это есть в документации. Может быть эта информация будет полезна не только вам. https://www.mm.bme.hu/~gyebro/files/ans_help_v182/ans_elem/Hlp_E_BEAM188.html В этом разделе подробно написано Очень подробное описание этого элемента. Это элемент Тимошенко. Это надо учитывать используя этот элемент в расчетах. Остается только один вопрос зачем менять номер узла, если сразу можно задать нужный номер и менять его координаты?  
×
×
  • Создать...