Создание переменной на исключение из расчета и ее обратного значения.

Автор rom6816, 20.08.15, 13:12:06

« предыдущая - следующая »

0 Пользователей и 1 гость просматривают эту тему.

rom6816

Всем доброго времени суток.
Есть большая сборка. Необходимо из этой сборки с помощью переменно удалять часть сборки, и вместо нее вносить другую.
Т.е к примеру внося в строку "Исключить из расчета" - 1. То деталь пропадает. И нужно чтобы на ее место поставилась другая. Значит в сборке вместо этой детали с цифрой 1. Должен появиться НОЛИК.

Также как, быть. Если я таким образом исключаю из расчета несколько деталей, то при исключении 2-х должна появиться одна.
То есть 0 и 0 то будет 1 для определенной детали.

Кто знает как решить данную задачу?
Желательно показать примером....
Заранее всем спасибо.

Дормидонт Евпатьевич

+ Благодарностей: 1

rom6816

Спасибо. Т.е. получается прийдется создавать для каждого условия отдельную логическую функцию.
А есть такое  при значении 1 пропадает 1 деталь.
При значении 2 пропадают 3 детали, и на их место встает 2 детали.
При значении 3 пропадают 8 деталей и добавляются к примеру 6.

Сморозил наверное лишнего.

Алхимик

Это сильно сложно)

Просто... для первой группы элементов ставим в поле для исключение А- х (где х - номер исполнения). У компаса своеобразная логика... все что не равно 0 считается 1й - исключается.

Aleksei

В первом примере вместо ветвления a==0?1:0 можно просто написать отрицание !a. Тогда и с большим количеством переменных проще будет разобраться.

rom6816


rom6816

Цитата: Aleksei от 20.08.15, 14:10:58
В первом примере вместо ветвления a==0?1:0 можно просто написать отрицание !a. Тогда и с большим количеством переменных проще будет разобраться.


Можно тут по подробнее

rom6816

Цитата: Алхимик от 20.08.15, 13:59:18
Это сильно сложно)

Просто... для первой группы элементов ставим в поле для исключение А- х (где х - номер исполнения). У компаса своеобразная логика... все что не равно 0 считается 1й - исключается.

У меня 15 home не открывается документ.
А так что то не понял.

Алхимик

Сохранил в 14й.

Обратите внимание на первое выдавливание: А-1. А = 3, а в графе "Значение" стоит 1. Хотя, если подставим значения получим: 3 - 1 = 2.
Цитата: Алхимик от 20.08.15, 13:59:18
все что не равно 0 считается 1й - исключается.
Даже если мы присвоим А = 2, то для третьего выдавливания получим 2-3 = -1. а видим что? видим положительную единицу))

Единица - оптимист :)))))
+ Благодарностей: 1

rom6816

Всем спасибо, за советы. Уже у меня есть интересные мысли.
А есть еще какие нибуть решения?
Хотелось бы выслушать множество вариантов, для выбора...

rom6816

Цитата: Алхимик от 20.08.15, 15:40:29

Единица - оптимист :)))))

Согласен. Довольно интересно получается. Уже по этому принципу можно групировать.
А есть еще какие нибуть варианты??? Поделись опытом.

Aleksei

Цитата: rom6816 от 20.08.15, 15:14:56
Можно тут по подробнее

Оператор ! меняет для булевой переменной (а у нее здесь смысл именно такой) значение на противоположное. Если а равно 0,  то !a превращается в 1, все просто. Это легко можно использовать, когда нужно сделать так, чтобы одна деталь была выключена,  когда другая включена,  и наоборот.
Цитата: rom6816 от 20.08.15, 16:43:38
Всем спасибо, за советы. Уже у меня есть интересные мысли.
А есть еще какие нибуть решения?
Хотелось бы выслушать множество вариантов, для выбора...

Если я правильно понял задачу, то в вашем случае лучше всего составить специальную таблицу включений (или истинности, как называют ее в логике). Мы со студентами таким способом реализовывали анимацию модели цифрового таймера:
http://mtvpo.vstu.by/science/articles1/98-2014/332-tez14-07.html
Выкладываю пример, сохраненный в V14. Вкратце все это работает следующим образом.
Для примера у нас есть три детали и три раличных варианта их состояния (деталей и состояний можно задать сколько угодно). Состояния такие:
Вариант первый: деталь 1 активна, детали 2 и 3 выключены.
Вариант второй: детали 1 и 2 активны, 3 выключена.
Вариант 3:  деталь 1 выключена, детали 2 и 3 активны.
Тогда (см. картинку) для переменных p1, p2 и p3, управляющих видимостью деталей, следует задать следующие формулы:
- для p1:   !(Variant==1||Variant==2)
- для p2:  !(Variant==2||Variant==3)
- для p3:  !(Variant==3)
Т.е. указать, при каких вариантах деталь должна быть включена.
Оператор || означает логическое ИЛИ.
Пример для многотельной детали, в сборке будет то же самое.
Если это не совсем то, что нужно, то, возможно, натолкнет на какие-либо мысли.
+ Благодарностей: 1

kalach

Цитата: Алхимик от 20.08.15, 13:59:18
Это сильно сложно)

Просто... для первой группы элементов ставим в поле для исключение А- х (где х - номер исполнения). У компаса своеобразная логика... все что не равно 0 считается 1й - исключается.

Это схема работает, но для грамотных пользователей. Нет защиты от дурака. Что будет если ввести A=3.5
Я предпочитаю другую схему: При определенном значении "Type" включаются в расчет необходимые детали. На картинке еще старая схема, когда со всем разбирался. Сейчас переменные Т1-T4 опущены и выражения пишутся прямо в "Исключить из расчета"