Официальный форум российского программного комплекса T-FLEX PLM


Поиск  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
Переменная ссылка на фрагмент, Сохранение пары: переменная фрагмента -> переменная сборки
 
В процессе изучения библиотечного элемента: Крепежные соединения 3D>Винтовое соединение, из стандартной библиотеки, я заметил одну интересную вещь. При установке ссылки на фрагмент "<Винты нормальные>Винт ГОСТ 1491-80" (1-й в списке) для переменных d0 и L0 этого фрагмента в качестве выражений стоят переменный d и L соответственно. При установке ссылки на фрагмент "<Винты нормальные>Винт ГОСТ 11644-75" (2-й в списке) для переменных d и l этого фрагмента в качестве выражений так же стоят переменный d и L соответственно. Как это сделано, если для перечисленных переменных "переменные сборки" не назначены вообще? Я пытался поэкспериментировать и заменить выражение d на константу, а потом снова заменить на d, но заложенный разработчиками механизм уже переставал работать…
Кто ищет - тот всегда найдет!
 
Я думаю, что имя переменной сборки здесь ни при чем. Просто переменные d и l были заданы для обоих вариантов именования переменных во фрагментах винта. И система это помнит.
Думаю, что если бы у фрагмента винта было две внешних переменных (d и d0), система бы поставила обоим этим переменным фрагмента переменную d сборки.
 
Цитата
Osiris2000 пишет:

Думаю, что если бы у фрагмента винта было две внешних переменных (d и d0), система бы поставила обоим этим переменным фрагмента переменную d сборки.

Так и есть. Не понятно только как сделано так, что система это запомнила?
Поясню:
Цитата
Brom25 пишет:

Я пытался поэкспериментировать и заменить выражение d на константу, а потом снова заменить на d, но заложенный разработчиками механизм уже переставал работать…

После каждой замены производился пересчет. После этого эксперимента при изменения ссылки на фрагмент в поле "выражение" всегда стояло константное значение, причем не только для переменных d и d0, но и для l и L0. То есть "память утрачивалась". Вопрос в том, как воспроизвести такое "запоминание".
Кто ищет - тот всегда найдет!
 
Я сделал два файла фрагмента.
Фрагмент1 содержал в себе 4 внешних переменные: a, b ,c ,d.
Фрагмент2 содержал в себе только 2 внешних переменных: a,b.

Вставил в чертеж Фрагмент1, задал его переменным значения. ОК.
Далее я зашел в свойства фрагмента и в параметрах задал путь к Фрагменту2 вместо Фрагмента1. ОК. Значит теперь у нас на чертеже фрагмент, с двумя внешними переменными, вместо 4-х.

Далее я поменял у фрагмента путь с Фрагмента2 на Фрагмент1. Теперь у фрагмента снова 4 внешних переменных. Смотрим параметры фрагмента - все 4 переменных заданы, их значения остались прежними.
То есть фрагмент не заметил временной потери 2-х внешних переменных.

Но это работает только если после исчезновения 2-х переменных не менять значения в переменных фрагмента. Если поменять значения, фрагмент "забудет" о том, что когда-то у него были заданы 4 переменные, а не 2.
 
Это все хорошо. Но как быть если имена переменных фрагментов разные (см. первый пост)?!
Кто ищет - тот всегда найдет!
 
Извиняюсь за свою "тугоухость"...

Цитата
Osiris2000 пишет:

Фрагмент1 содержал в себе 4 внешних переменные: a, b ,c ,d.
Фрагмент2 содержал в себе только 2 внешних переменных: a,b.

Вставил в чертеж Фрагмент1, задал его переменным значения. ОК.

После этого во Фрагменте1 нужно просто отключить флаг "внешняя переменная" для переменных a и b. Тогда система будет "помнить" переменные значения для обоих фрагментов, причем набор внешних переменных во фрагментах в этом случае абсолютно разный.

P.S. А ларчик просто открывался...
Изменено: Brom25 - 30.07.2009 22:45:58
Кто ищет - тот всегда найдет!
Страницы: 1