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

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


lucky beggar

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

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

Например, при: int(0 -  "Длина куба"/"Ширина панели") (См. сообщение #8). Там нет ни какого сравнения, т.к. для решения текущей задачи, достаточно округлить значение "Длина куба"/"Ширина панели" в большую сторону, и вычесть два, т.е.: ABS(int(0 - "Длина куба"/"Ширина панели")) - 2

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


кажись дошло до меня. Автор желает округления в большую сторону, так что ли? Тогда конечно всё верно.

Ссылка на сообщение
Поделиться на других сайтах
Автор желает округления в большую сторону, так что ли?

По крайней мере, его (автора) данное решение вполне устроило. :smile:  

Ссылка на сообщение
Поделиться на других сайтах
А я не понял Вашего вопроса...
ABS(int(0 - 10,1/2)) - 2 = 4

0- 10.1/2=-5.05 , int(-5.05)=-5, abc(-5)=5, 5-2=3

Как вы получили 4 ?

P.S.   int(-5.05)=-5, т.к. -5>-5,05

Ссылка на сообщение
Поделиться на других сайтах
0- 10.1/2=-5.05 , int(-5.05)=-5, abc(-5)=5, 5-2=3 Как вы получили 4 ?

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

int(10.1/2) = 5

int(0-10.1/2) = -6

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

Ещё раз большое всем спасибо за помощь,Хочу отписаться что у меня получилось, уравнение записал в таком виде: int(длина куба/ширина панели) то есть 0- я не стал писать (честно говоря так и не понял, зачем это надо?) дальше -2 тоже убрал, получилось что панели раскладываются по всей длине остаётся только остаток меньше целой ширины панели, что бы закрыть этот остаток я взял панель привязал её сопряжениями к концу массива (при помощи справочной геометрии, используя такое же уравнение) затем создал новую конфигурацию панели, сделал там вытянутый вырез привязал его при помощи внешних ссылок к крайней кромке куба. И всё заработало как надо, изменяешь длину куба пересчитывается кол-во массива а остаток закрывается обрезной панелью. Но есть один момент, когда длина куба кратна ширине панели то соответственно остатка нет, и с обрезной панелью беда(( Вот если бы Вы подсказали как этот момент обойти, я был бы Вам, ну очень признателен

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

Уважаемый lucky beggar, давайте попробуем рассмотреть на конкретных примерах.

Возьмем в качестве примера куб с размерами ("A") 949.9мм, 1000мм и 1050.1мм, а ширину панели ("B") 50мм

 

Рассмотрим уравнение: int ("A" / "B")

int (949.9 / 50) = 18

int (1000 / 50) = 20

int (1050.1 / 50) = 21

 

Рассмотрим уравнение: ABS (int (0 - "A" / "B"))

ABS (int (0 - 949.9 / 50)) = 19

ABS (int (0 - 1000 / 50)) = 20

ABS (int (0 - 1050.1 / 50)) = 22

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

Ещё раз большое всем спасибо за помощь,Хочу отписаться что у меня получилось, уравнение записал в таком виде: int(длина куба/ширина панели) то есть 0- я не стал писать (честно говоря так и не понял, зачем это надо?) дальше -2 тоже убрал, получилось что панели раскладываются по всей длине остаётся только остаток меньше целой ширины панели, что бы закрыть этот остаток я взял панель привязал её сопряжениями к концу массива (при помощи справочной геометрии, используя такое же уравнение) затем создал новую конфигурацию панели, сделал там вытянутый вырез привязал его при помощи внешних ссылок к крайней кромке куба. И всё заработало как надо, изменяешь длину куба пересчитывается кол-во массива а остаток закрывается обрезной панелью. Но есть один момент, когда длина куба кратна ширине панели то соответственно остатка нет, и с обрезной панелью беда(( Вот если бы Вы подсказали как этот момент обойти, я был бы Вам, ну очень признателен

if использовать. мой пример Вы пробовали?

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

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

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

Вдруг кому будет нужно и он наткнется на эту тему. Как в уравнениях солида именно округлять до целого, а не просто тупо отбрасывать дробную часть, т.е. как сделать, чтобы 1.95 округлялось до 2, а не до 1 (что делает int). Без всяких if. Итак. У нас есть дробное положительное число А (например размер). Записываем уравнение  =int(A)+int(2*(A-int(A))) -второе слагаемое дает 0 при дробной части <0.5 и 1 если больше или равно.

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

как сделать, чтобы 1.95 округлялось до 2, а не до 1 (что делает int). Без всяких if. Итак. У нас есть дробное положительное число А (например размер). Записываем уравнение  =int(A)+int(2*(A-int(A))) -второе слагаемое дает 0 при дробной части <0.5 и 1 если больше или равно.

Шибко мудрёно, возможно для вашей задачи подойдёт =Round(1.95) (если не мешают некоторые особенности этой функции):

https://cccp3d.ru/topic/6071-сделай-свою-работу-в-solidworks-эффективнее/?do=findComment&comment=873536

https://cccp3d.ru/topic/10358-скрытые-возможности-sw/?do=findComment&comment=1003119

https://cccp3d.ru/topic/6071-сделай-свою-работу-в-solidworks-эффективнее/?do=findComment&comment=873556

 

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

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

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

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

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

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

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

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

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

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

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




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