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

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


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 пользователей

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



  • Сообщения

    • Rshevskiy
    • Павлуха
      В сборке сделать эскиз расположения, и не надо никаких глобальных и уравнений. Привязываетесь к сборке, в сборке таблица параметров. Всё.
    • clavr
      создали глобальные переменные. длина шпильки, диаметр хомута, диаметр гайки. в каждых деталях привязались к глобальным переменным. в таблице конфигурации вам остается только менять/добавлять эти три переменные. по моему очень удобно.   p.s. в экселе формировать имя конфигурации из значений в других ячейках. как говорится все возможности экселя вам в руки  
    • Kelny
      Можно брать базовую деталь, а в модели отвязывать её от исходной СДЕЛАТЬ ВИРТУАЛЬНОЙ. Если нужна такая же детель с другой длинной, то можно выбрать для виртуальной детали варинат СДЕЛАТЬ НЕЗАВИСИМЫМ и задать нужную длину для другого варианта. В этом случае ваши шпильки в каждой сбоке будут свои, со своей длиной и ни как не будут отражаться на исходной базовой детали.
    • Kelny
      Как именно построено конечно доподлино не знаю, но подозрения именно такие, т.к. нельзя запросить несколько ячеек, а каждая ячейка открывается с задержкой и выводом отдельного поля ввода поверх таблицы. Кстати массив заметок на те же 15 стобцов и 1000 строк намертво вешает программу при создании массива заметок или блока с заметкой.   На сколько знаю через АПИ можно к заметке добавить эскизы прямо в заметку, возможно этот массив построен именно по этому принципу с инструментом доступа к этому блоку данных.   Если тыкнуть в таблицу и посмотреть контекстное меню, то этот объект обозначен как: ДЕТАЛЬНЫЙ ЭЛЕМЕНТ## (Detail Item), то есть как некий блок.   @Leon А не пробовали разбирать таблицу не средствами SolidWorks, а через WinAPI с поиском дочерних окон? Может такой заход позволит получить более прямой доступ к массиву данных таблицы или объекту и тогда возможно получилось бы разогнать процесс работы с таблицей, данными в ней, в обход функционала Solidworks.
    • Akimyshka
      Такой вариант есть. Есть конфигурированный хомут, конфигурированная шпилька. Сборка с этими деталями, как раз с таблицей разных конфигураций. Проблема в том, что каждый раз (проект новый) требуются разные длины шпилек. Грубо говоря, подвес с трубами на разных высотах. И сделать все конфигурации длин конечно можно, но их будет бесчисленное множество. Вот и подумал сделать управляемую шпильку
    • fenics555
      Уважаемые господа! Имеется сборка с таблицей семейства, пытаюсь сохранить всю сборку с подсбр=орками и деталями- таблица семества пропадает. Что  делать? Может есть какой параметр?
    • qqqq
    • Rshevskiy
      Тип вращения в первую очередь проверил, в любом случае выдает через ось Y.  
    • clavr
      создайте одну конфигурацию. в конфигурации привяжите эксель. после откройте эксель, и спокойно добавьте новые строчки - новая строка равно новая конфигурация. после сохранения файла у вас все эти конфигурации отобразятся.   смысл собирать сборки и запускать макрос если все можно сделать в таблице эксель
×
×
  • Создать...