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

Получить свойства 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 пользователей

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




  • Сообщения

    • malvi.dp
      Допилил. Поддерживает многолистовые чертежи Начинает работу при нажатии на кнопку макроса: -при нахождении измененных (установлена галочка "Измененное значение") размеров окрашивает их в красный цвет; -если с измененного размера снята галочка "Измененное значение", т.е. он стал обычным - цвет становится обычным; -по окончании работы в сообщении выводится статистика найденных измененных размеров, если они есть. Тестировался на sw2016 и sw2020.   ChangeColorForOverridedDimensions.zip   Да, что-то прошло не так... Уже поправил.
    • maxx2000
      Я скорее согласен с Надеждой Януарьевной
    • Koels
      Мотора 54 градуса, что на 6 градусов больше соседнего станка, вентеляторы в норме да. Ещё хочу сравнить нагрузку координаты с соседним станком, но пока не дают. У этих двух станков проблемы с охлаждением, на соседнем стоит автомобильный радиатор для охлаждения масла. xD
    • Bot
      Dassault Systèmes Reports Solid First Quarter Results And Reaffirms Full-Year Objectives Просмотр полной статьи
    • Ninja
    • Ninja
      В зимнее время водители устанавливают на колёса специальные цепи против скольжения. В мире разработано множество видов цепей и способов их установки. Японцы применяют "цепи Абэ". Кто этот великий инженер? Это знаменитый японский писатель Кобо Абэ. Для уединенного писательского труда Абэ купил домик в горах. А в горах зима ранняя, снежная, затяжная. Без цепей на колёсах можно и улететь с обрыва. Абэ периодически заводил машину и спускался в долину. Почту получить/отправить, в магазине продукты купить, ящик рисовой водки. (Известное дело: насухую великую книгу не напишешь). В долине приходилось цепи снимать. По правилам цепи запрещается применять при отсутствии на дороге снежного покрова. В те времена для установки/снятия цепи требовалось домкратом поднимать каждое колесо. В машине 4 колеса. Товарищу Абэ приходилось корячиться с домкратом. При этом в самых нелитературных выражениях комментируя политику правящей партии и все домкраты в мире. Купил в магазине бухлишко-закусь. Поехал домой в горы. А там снег, скользко. Цепи требуются. Опять писатель и драматург Абэ домкрат крутит. Всё это насмерть надоело Абэ. Обратился к компаниям-производителям: придумайте способ установки цепей без домкрата! Но производители ничего не придумали. Или не захотели. Тогда Абэ сам придумал способ установки цепей без необходимости поднимать колесо. Послал изобретение на конкурс. И неожиданно получил призовое место и патент. Новый способ установки цепей быстро завоевал популярность. Так и пошло у японцев - "цепи Абэ". Кобо Абэ не получил Нобелевскую премию по литературе. Уже выдвигался, уже все были уверены в том, что он её получит. Но не успели, писатель умер. А это всё дурацкие цепи виноваты. Сколько времени он потерял в установке/снятии цепей? Сколько времени, вместо того чтобы писать, он крутил домкрат? Вот и не успел. https://ru.ruwiki.ru/wiki/Абэ,_Кобо
    • gudstartup
      приемлимо. температуру мотора посмотрите. если вентилятор нормально вращается и его скорость соответствует оригинальному а также контакт в разъеме нормальный а F все равно появляется то даже не знаю что у вас может быть так как привод у вас новый
    • Koels
      Хмм, я думал раз она вылазит даже в простое, то Z координата висит на тормозе и дело не в этом. Спасибо за мысль, щас узнаю. Вообще у нас рядом стоит точно такая же макина, точь в точь и там таким проблем нет. Много заказов и отсутствие специалистов сделало свое дело. :) @gudstartup, 58% нагрузка на координату
    • mrVladimir
      Что-то я немного засомневался. Если решим брать новое ЧПУ, то искать точно такое же необходимо по номеру сзади корпуса (пластикового пластмассового) - так? А если брать только плату (материнскую или как ее лучше назвать...), на которой установлена (запаена) микросхема 1 на моих фото выше, то искать плату необходимо по номеру, который указан на самой плате - так? В моем случае : ЧПУ : A02B-0321-B520. Код на плате : A20B-8201-0081/01A. Если, допустим, мы покупаем ЧПУ A02B-0321-B520 - будет ли это гарантией того, что в нем установлена плата A20B-8201-0081/01A. И можно ли будет его считать таким же. И с отдельно приобретаемой платой тоже самое - если номер на ней полностью совпадает с нашим, значит ли это, что она полностью идентична. P.S. : извиняюсь за , возможно, навязчивые вопросы. Просто не хотелось бы попасть впросак из-за своей некомпетентности. такой файл есть, но мне говорили, что после снятия архивов, его лучше вообще никогда нигде ни использовать. А на каком этапе он нам может понадобиться?. Если, как говорил Виктор, мы зальем архив SRAM на старый модуль (ROM-SRAM), установленный в новое ЧПУ, то и файл OPRMINF не нужен. Правильно же?
    • Slavdos
      Доброе. делюсь 1 внедренным китайцем. купили у ЛЛС MARVEL PRO 6000-3015.HGT , 2 шт , с автоматизацией. станки неплохие, интерфейс русские, достаточно дружелюбен. за автоматизацию зря переплатили, китай похоже в этом сильно уступает европе. из неожиданностей- резка воздухом дает неудаляемый грат, по сути необходимы зачистные станки.
×
×
  • Создать...