Изменение исполнения через переменную

Автор kalach, 15.04.15, 10:51:07

« назад - далее »

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

kalach

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

Сейчас реализовано через то что нет исполнений, а просто переменными исключаются из расчета одни операции и включаются другие.

Для примера: Есть сборка редуктора. И в зависимости от значения переменной я хочу чтобы зацепление было организовано через шестерни,  фрикционы, шкивы с ремнем или звезды с цепью. Причем валы остаются одними и теми же, а в зависимости от исполнения меняются только навесные элементы. Можно Это сделать ручками покликав на каждой детали необходимое исполнение, но если таких деталей 100 - то не вариант.

teo

Для таких целей Вам лучше подойдет T-Flex CAD

kalach

Цитата: teo от 15.04.15, 17:33:26
Для таких целей Вам лучше подойдет T-Flex CAD
Возможно. Но не не подойдет для многих других целей.

VIO

#3
А если Вам попробовать создать независимое исполнение.
В нём можно задавать размеры отличные от исходника.
И управлять ими через внешние переменные

kalach

Размеры исходника я и так могу задавать. Вопрос в том как переключать исполнения. Другими словами: Есть переменная 'A'

Если А=0  - то 0 исполнение
Если А=1  - то 1 исполнение
Если А=2  - то 2 исполнение
и так далее...

А зависимые исполнения или нет не принципиально.

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

Taro

Можно обойтись без исполнений.
Например, если А = 0, то мне нужно чтобы присутствовала только деталь 1, если А =1 - то только деталь 2.
Следовательно, в окне переменных для Детали 1 в первом параметре ("Исключить из расчета") в поле "Выражение" я напишу условие "|A|<0.001?0:1". Для детали 2 условие будет "|A-1|<0.001?0:1".
Поясню запись "|A-1|<0.001?0:1"
Переменная А - вещественная (число с плавающей запятой). Вы будете ею управлять как целочисленной. КОМПАС (да и не только КОМПАС) не всегда корректно обработает условие равенства типа "А==1". Даже если у Вас будет записано что "А" = "1.0", вполне может статься, что система будет считать "А=1.0000001" или "А=0.9999999", и в результате А не будет равен 1 - условие не будет выполняться. Запись " |A-1|<0.001" говорит о том, что модуль разницы "А-1" должно стремится к нулю (быть меньше 0.001). Далее идет логическое уравнение Если условие (" |A-1|<0.001") выполняется ("?") -  присвоить значение вычисляемой переменной "0" (деталь включена в расчет), в противном случае (":") - присвоить "1" (деталь исключена из расчета).

В Вашем случае просто деталей будет не 1 и не две, а больше.

Алхимик

Taro Вы сильно заморочились создав условия.
Компас воспринимает как 1 любое число меньше или больше 0. Т.е. для такого рода исполнений нужно просто ставить, в сборке

А = 0.

Для деталей с 0 исполнением ставим, в окне исполнение А
для исполнений 1 ставим А-1, для 2го исполнения А-2 и так далее.

В итоге при А = 4 включаться будет только детали с А-4.

kalach

#7
Цитата: Taro от 16.04.15, 16:01:28
Можно обойтись без исполнений.
Например, если А = 0, то мне нужно чтобы присутствовала только деталь 1..
Так уже и реализовано
Цитата: kalach от 15.04.15, 10:51:07
Сейчас реализовано через то что нет исполнений, а просто переменными исключаются из расчета одни операции и включаются другие.

Через исполнения было бы куда удобнее.

Сейчас есть деталь (набор операций 0)
Напротив каждого "исключить из расчета"  Условие A==0?1:0
другое исполнение (набор операций 1)- Условие A==1?1:0
и.т.д.,
но. есть минусы
1. когда делаешь- ничего, а потом проста ад, т.к. операций тьма.
2. Обозначение и наименование не меняется, а с исполнениями можно.

Так что пока думаем и надеемся..
*******************
Например при создании листового тела с гибом, автоматом создается пачка переменных.
Вот думается что и при создании исполнения такая переменная должна быть.



Taro

Цитата: Алхимик от 16.04.15, 16:16:06
Taro Вы сильно заморочились создав условия.

.....

В итоге при А = 4 включаться будет только детали с А-4.

Не знаю, как у Вас, но у меня встречались случаи, что при А = 4, А на самом деле было А = 3.999. В результате деталь всегда была исключена из расчета. В результате я теперь всегда предпочитаю именно "мою" запись, что бы потом не тратить время на поиски "что не так?".

kalach , я же не спорю, что исполнения были бы удобнее.
Но, на мой взгляд, не все так просто. При создании листового тела переменные создаются автоматически, так как они касаются только геометрии. А исполнения - это уже не только геометрия. Это уже отдельный объем информации. Например, Вы же не можете параметризировать материал или хотя бы плотность материала модели, так как данная информация касается не только геометрии.

Алхимик

Цитата: Taro от 17.04.15, 09:38:42
Не знаю, как у Вас, но у меня встречались случаи, что при А = 4, А на самом деле было А = 3.999.
Как система может понимать не целое число?! Это если вы переменную А привязали какому нить расчету и в столбце Выражение будет стоять 4, а по факту да может быть и 3,999... но если пользователь ввел 4, то и программа должна брать 4, а не 4,0001.

Цитата: Taro от 17.04.15, 09:38:42
параметризировать материал или хотя бы плотность материала модели, так как данная информация касается не только геометрии.
А храниться эта информация в виде чего? Цифр или в какой то валюте? Как то ж умудряются в Фотошопе и других программах вручную вводить значение того или иного цвета.

kalach

Цитата: Taro от 17.04.15, 09:38:42
Не знаю, как у Вас, но у меня встречались случаи, что при А = 4, А на самом деле было А = 3.999.......

А бы предпочел вместо вашей записи в таком случае запись типа CEIL(A)==4
CEIL - округление до ближайшего целого.

bombey

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

Подскажите пожалуйста, можно ли по значению переменной вставлять в 2Д чертеж определенный фрагмент (из отдельного файла)?

Есть библиотека 2Д фрагментов, хотелось бы автоматическую подстановку нужного фрагмента в чертеж по значению переменной.
Сейчас приходится выбирать нужный фрагмент вручную.

kalach

Библиотека фрагментов не параметризуется. переменные есть только внутри фрагмента, но загнать все в 1 фрагмент за счет разных переменных - практически не реально.

Elaeagnus

 Попробуйте подойти с другой стороны!