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

Условия в уравнениях


lucky beggar

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

Добрый день! У меня такая проблема: Есть деталь в виде куба длиной одной стороны 10000мм, теперь я создаю сборку, вставляю этот куб и еще одну деталь(плита) шириной 1000мм и создаю массив (плиты) и мне необходимо что бы плиты покрывали всю сторону куба, тут вроде бы просто для этого захожу в уравнения и для кол-ва массива задаю ("длина куба"/"Ширина плиты"-1) проблема в том что длина куба не всегда кратна ширине плиты. Вопрос: как в уравнение задать условие если "Длина куба"/"Ширина панели"=Целое число то -2, если  "Длина куба"/"Ширина панели"=Число с запитой то -1?

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


Вопрос: как в уравнение задать условие если "Длина куба"/"Ширина панели"=Целое число то -2, если  "Длина куба"/"Ширина панели"=Число с запитой то -1?

Можно изначально возвращать только наименьшее целое число, и вычитать 2.

 

Например: int("Длина куба"/"Ширина панели") - 2

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

Если не хватает мат. возможностей солида, то всю "лабуду" можно делать в экселе, и притянуть ее в модель

Ссылка на сообщение
Поделиться на других сайтах
Если не хватает мат. возможностей солида, то всю "лабуду" можно делать в экселе, и притянуть ее в модель

В данном случае, это лишнее.

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

А так нельзя?

 

x = Длина/Ширина

ix = int(ix)

 

t= if ( "x" - "ix" = 0 , "ix" - 2 , "ix" - 1 )

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

Можно, только бессмысленно. Функция int не округляет, а возвращает ближайшее меньшее целое число.

Например: int(1) = 1, int(1,99) = 1

Ссылка на сообщение
Поделиться на других сайтах
Например: int("Длина куба"/"Ширина панели") - 2

Мне кажется, что я неверно понял задачу (и соответственно решил неверно)... :blush:

Может так: ABS(int(0 - "Длина куба"/"Ширина панели")) - 2 ?

 

Например: ABS(int(0 - 10/2)) - 2 = 3; ABS(int(0 - 10,1/2)) - 2 = 4

Ссылка на сообщение
Поделиться на других сайтах
Функция int не округляет, а возвращает ближайшее меньшее целое число. Например: int(1) = 1, int(1,99) = 1

Да в это-то и вся загвоздка, мне надо автоматом разложить панели по всей длине куба а последнею я обрезаю (в конфигурации) то есть если в уравнение получается число 16,97 то оно округляется до 17 и тогда всё нормально, то есть вот этот остаток 0,97 закрывается одной обрезной панелью, а вот если число получается например 16,3 то оно округляется до 16 и тогда не хватает 1,3 панели. Мне нужно добиться что бы при изменении длины куба всё автоматом раскладывалось 

Ссылка на сообщение
Поделиться на других сайтах
то есть если в уравнение получается число 16,97 то оно округляется до 17 и тогда всё нормально, то есть вот этот остаток 0,97 закрывается одной обрезной панелью, а вот если число получается например 16,3 то оно округляется до 16 и тогда не хватает 1,3 панели 

См. сообщение #8.

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

 

ix = int(ix)
 

Навреное ix = int(x)

?

 

сорри! Конечно  ix = int(x)

 

"ч"= некое_число

"с"=int("ч")

 

округлённое = if ( "ч" - "с" > 0.5 , "с" + 1 , "с" )

округлит как надо

Ссылка на сообщение
Поделиться на других сайтах
Может так: ABS(int(0 - "Длина куба"/"Ширина панели")) - 2 ?

Да оно. Ура!!!!!!!!!!!!!! 

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

 

Например: int("Длина куба"/"Ширина панели") - 2

Мне кажется, что я неверно понял задачу (и соответственно решил неверно)... :blush:

Может так: ABS(int(0 - "Длина куба"/"Ширина панели")) - 2 ?

 

Например: ABS(int(0 - 10/2)) - 2 = 3; ABS(int(0 - 10,1/2)) - 2 = 4

 

abc() не обязательно. Мы с нулём сравниваем

 

Ссылка на сообщение
Поделиться на других сайтах
abc() не обязательно. Мы с нулём сравниваем

Т.е. Вас устроит отрицательное число?

Ссылка на сообщение
Поделиться на других сайтах
Может так: ABS(int(0 - "Длина куба"/"Ширина панели")) - 2

не до конца попнял логику.. и зачем 0-.. может просто минус подствлять, без нуля?

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

А я не понял Вашего вопроса...

Основная идея ABS(int(0-"значение")) - округление до целого числа, в большую сторону.

 

и зачем 0-.. может просто минус подствлять, без нуля?

Можно и так.

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

 

abc() не обязательно. Мы с нулём сравниваем

Т.е. Вас устроит отрицательное число?

 

В случае с размерами SW разве смогут быть отрицательные числа?

Ссылка на сообщение
Поделиться на других сайтах
В случае с размерами SW разве смогут быть отрицательные числа?

В результате будет отрицательное число. Именно по этой причине, убрав функцию ABS, Вы получите предупреждение об ошибке.

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

каким образом здесь:

 

"ч"= некое число как величина размера. имхо оно всегда >0

"с"=int("ч")

округлённое = if ( "ч" - "с" > 0.5 , "с" + 1 , "с" )

 

получится отрицательное число?

 

 

При каких "ч" может быть отрицательное "ч"-int("ч")?

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

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

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

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

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

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

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

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

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

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

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




×
×
  • Создать...