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

lookup_inst, interchange и pro/program


UrijJusa4ev

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

Добрый вечер.

Никак не могу разобраться самостоятельно. Может кто подскажет...

Есть параметрическая сборка. Ввожу параметры, по этим параметрам lookup_inst ищет подходящее исполнение в детали А. Если не находит, тогда ищет подходящее исполнение в детали Б. Если не находит, тогда в деталь Б экзэкьютит нужные параметры и получает нужную сгенерированную деталь, которую и вставляет.

Выглядит в уравнениях так

SOME_PART = lookup_inst("part_a.prt", 0, "PARAM1", PARAM1, …)

IF SOME_PART == "PART_A"

  SOME_PART = lookup_inst("part_b.prt", 0, "PARAM1", PARAM1, …)

ENDIF

 

В Pro/program выглядит примерно так:

 

INPUT

 PARAM1 NUMBER

...

END INPUT

 

IF SOME_PART == "PART_B"

  EXECUTE PART PART_B

    PARAM1 = PARAM1

    …

  END EXECUTE

ENDIF

 

...

 

ADD PART (SOME_PART)

 

Деталь А и деталь Б заменяется с помощью сборки interchange.

 

Всё работает хорошо, пока все детали в сессии. Но если почистить сессию, открыть сборку и ввести параметры, при которых переходит с детали А на деталь Б (или наоборот), тогда начинаются косяки. Видимо lookup_inst видит только то, что в сессии, но не видит всего того, что в рабочей папке.

Может можно как-то настроить, мол когда открываешь сборку, закидывай в сессию и деталь А и деталь Б??

 

Creo 3.0

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


В 02.03.2019 в 20:04, UrijJusa4ev сказал:

Может можно как-то настроить, мол когда открываешь сборку, закидывай в сессию и деталь А и деталь Б??

Вы не правильно пользуетесь.

Вы должны добавить в сборку обе детали, а погашать автоматичеки операторами If и endif.

Я бы наверно сделал так: 

SOME_PART1 = lookup_inst("part_a.prt", 0, "PARAM1", PARAM1, …)

IF SOME_PART1 == "PART_A"

  SOME_PART2 = lookup_inst("part_b.prt", 0, "PARAM1", PARAM1, …)

ENDIF

.....

IF SOME_PART1 неравно "PART_A"

ADD PART (SOME_PART1)

ENDIF

IF SOME_PART1 == "PART_A"

ADD PART (SOME_PART2)

ENDIF

 

Ну или типа того. 

Т.е. детали должны подгружаться.

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

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

По идее, подберет исполнение детали B только после второй регенерации.

 

 

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

В добавке исполнения тоже надо добавить:

IF SOME_PART2 == "PART_B" | SOME_PART1 == "PART_A" 

  EXECUTE PART PART_B

    PARAM1 = PARAM1

    …

  END EXECUTE

ENDIF

 

А то может подобрать первую деталь а вторая так и остаться PART_B (допустим до этого была), и будет клепать ненужные исполнения.

18 часов назад, UrijJusa4ev сказал:

По идее, подберет исполнение детали B только после второй регенерации.

Получилось хоть?

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

IF SOME_PART2 == "PART_B" & SOME_PART1 == "PART_A" 

  EXECUTE PART PART_B

    PARAM1 = PARAM1

    …

  END EXECUTE

ENDIF

 

Но наверное И, а не ИЛИ. Экзэкьютить нужно, если И первое И второе не нашел. В случае с или будет перестраивать генерик детали Б, даже если подобрал нужное исполнение Б

 

Работает не так, как хотелось бы 

Если открываешь сборку, и деталь Б подавлена. При попытке перейти на конкретное исполнение Б, при первой регенерации отключается А, и включается генерик Б с заэкзэкьютиными инпутами. После второй регенерации подбирается нужное исполнение Б. После этого обе детали в сессии и дальше работает хорошо.

 

А вот если сохранили с подавленной деталью А , то в чистой сессии на нее невозможно переключить, пока не подгрузишь деталь в сессию ручками. 

 

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

 

В любом случае спасибо

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

Но наверное И, а не ИЛИ.

есссно.

 

3 часа назад, UrijJusa4ev сказал:

А вот если сохранили с подавленной деталью А , то в чистой сессии на нее невозможно переключить, пока не подгрузишь деталь в сессию ручками. 

Но почему, если она уже добавлена в дерево? 

А как это отображается, ошибка вылезает или что еще? Просто крео не может написать про "не найдена деталь", когда она в рабочей папке.

3 часа назад, UrijJusa4ev сказал:

Работает не так, как хотелось бы 

Надо наверно "обнулять" ...

Может так:

   ВАРИАНТ=1       -как-бы обнуляем условия

SOME_PART1 = lookup_inst("part_a.prt", 0, "PARAM1", PARAM1, …)

IF SOME_PART1 == "PART_A"

  ВАРИАНТ=2

  SOME_PART2 = lookup_inst("part_b.prt", 0, "PARAM1", PARAM1, …)

ENDIF

.....

IF ВАРИАНТ==1

ADD PART (SOME_PART1)

ENDIF

IF ВАРИАНТ==2

ADD PART (SOME_PART2)

ENDIF

 

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

Одна деталь всегда погашена, хоть и в дереве. В сессию не попадает при загрузке сборки.

1.JPG.07cc0d0d3fce150423379e1734818182.JPG

В случае если пытаемся переключится с Б на А и А не в сессии, пишет предупреждение внизу Invalid data type combination at right side of expression

SOME_PART1 = lookup_inst("part_a.prt", 0, "PARAM1", PARAM1, …) /*(не сработает, т.к. part_a.prt не найдет, SOME_PART1 останется с прежним значением, то есть SOME_PART1 = "PART_A")

IF SOME_PART1 == "PART_A"

  SOME_PART2 = lookup_inst("part_b.prt", 0, "PARAM1", PARAM1, …) /*(не найдет исполнения, в итоге SOME_PART2 = "PART_B")

ENDIF

А дальше будет экзэкьютить в деталь Б и строить по параметрам

 

Кстати, если зайти в relations, то на ОК уже нажать не получится)

2.thumb.JPG.86657e1d5531902ea67f27ea12797c4e.JPG

 

 

 

 

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • Fedor
      "Основной вопрос в том, правда ли что в таком "разжиженом" грунте возникает сила Архимеда" - я делал так - задавал все со своими удельными весами, потом включал ускорение свободного падения и получал необходимые подъемы грунта при условии что модуль разгрузки 5 Eg  в Ансисе  . Как и описано в статье.  Труба это по сути тело с меньшей плотностью и на комбинацию труба -земля действует ускорение свободного падения которое и приводит к закону Архимеда.   Да. И грузило :)
    • Борман
    • Fedor
      Сила плавучести = вес объекта в пустом пространстве − вес объекта, погруженного в жидкость.  <= https://en.wikipedia.org/wiki/Archimedes'_principle      Давления тут не участвуют ... 
    • Jesse
      ну вот вы ж сами пишите что подлодка (очень массивная штука!) будет деформировать грунт. Это ж не лёгкий шарик какой нибудь:D Вполне могут образоваться места куда вода не попадает.   ничего хорошего не будет))
    • kolo666
      UPDATE 2024   Нас уже 17 человек в команде инженеров расчетчиков (FEA/CFD). 2 года полная загрузка по расчетам ресурса планера SSJ100,95 (причем машины уже в эксплуатации, вы на них даже летаете скорее всего), интерьеры МС21, ТУ214 (в том числе VIP). Работаем по госконтрактам, в том числе и ГОЗ. Сейчас формируем новый отдел под большой проект реверс-инжиниринга (наша часть только CAE) нефтегазового оборудования для Газпромнефти. В общем динамично движемся вперед, на этот года минимальная планка по выручке 100 млн. ;)  
    • Fedor
      Есть табличка в СП Нагрузки и воздействия. Немного могут разниться.  Насыпные грунты насыщенной влажности 1800 кГ/куб.м   удельный вес .   При вибрациях структурные связи грунта нарушаются и будет действовать закон Архимеда с такой плотностью....  Закопанная в землю цистерна всплывает если не применять специальных мер удержания. Я проектировал винный погреб одному олигарху из железобетона, так чтобы он не всплывал навинтил винтовых свай для удержания из расчета 1800 кГ/куб.м. В отличие от архитектора из Жмурок жив, так что не ошибся :)     На дне в грунте действует давление, так что, думаю, лодку ничто не удерживает...  Если закопаете в реке полено в грунт, то оно все равно всплывет :) 
    • Кирилл5566
      Нам очень помог интернет-магазин Всерезаки . Долго мучались с расходниками, а теперь проблем не знаем.  
    • Orchestra2603
      неее... ))) Сами подумайте. Рядом с подлодкой же есть давление ro*g*h. Если подлодка не изолирована от окружающей воды, то даже если микроскопический какой-то подтёк есть из вне, то туда будет поступать воды, пока давление не выровняется со внешним, а там ro*g*h. Поскольку форма корпуса у них близка к циллиндру, то там эта ro*g*h будет распределена по довольно большой площади днищевой поверхности. Сложно себе представить, что  подлодка сядет на грунт так, что прям вытолкнет из под себя всю воду и "загерметизирует" днище на достаточной площади контакта так, чтобы нивеллировать разницу давлений сверху и снизу, которая с учетом размеров подлодки довольно существенная. Это надо конкретно так забуриться в грунт. Кстати интересная задачка была бы, определить такое "критическое внедрение в грунт" :)   А.. и еще.. Вы не забывайте что между легким и прочным корпусом у подлодки есть пространство, заполненной забортной водой, где давление такое же как снаружи. Интерсно, кстати говоря, что станет с легким корпусом после такой посадки :)
    • lem_on
      Об этом мы возможно никогда не узнаем. Военная тайна.  Мы как кто даже радиаторы "строгали", но это была медь и поднимало довольно таки неплохо.
    • GHEB
      К сожалению у меня не было и нет пока что возможности проверить, но я практически точно уверен что это поможет. Удвительно что я сам не заметил эту галку,в ернее её отсутствие
×
×
  • Создать...