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

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


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

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




  • Сообщения

    • eljer0n
      @malvi.dp в общем порядок следующий (на каждое исполнение свой чертеж и позиция в спецификации):   Для исполнения с 2мя знаками. 1. Есть деталь с именем формата ХХ-01.01-01 (последнее -01 это исполнение) 2. В Мпроп детали назначается исполнение из конфигурации (как у вас на картинке). Отображается корректно 3. Создается чертеж по модели, исполнение в основной надписи чертежа детали отображается корректно. 4. Сохраняется через SaveDRW с корректным именем. 5. В спецификации сборки все отображается корректно.     Для исполнения с 3мя знаками. 1. Есть деталь с именем формата ХХ-01.01-011 (последнее -011 это исполнение) 2. В Мпроп детали назначается исполнение из конфигурации. Отображается корректно 3. Создается чертеж по модели, исполнение в основной надписи чертежа детали отображается корректно. 4. Сохраняется через SaveDRW с некорректным именем, а именно - с обрезанным до двух знаков исполнением (-01). 5. В спецификации сборки шифр отображается (внезапно! может какой глюк был: у солида или у меня ) корректно, как и у вас на рисунке.     Выходит, загвоздка все-таки только в сохранялке чертежа.
    • gudstartup
      да информация о решенной проблеме очень важна так что будем ждать хороших новостей!
    • mrVladimir
      @gudstartup Спасибо Вам за помощь. Теперь дело в приобретении платы. Как что-то получится (сперва приобрести, потом поставить) обязательно отпишусь.
    • gudstartup
      а как вы taxid фирмы нашли?
    • gudstartup
      все что я написал в цитате выше по теме полная фигня в связи с вновь приобретённой информацией. можно менять любые компоненты в пределах серии чпу если только не меняете по или записываете oprminf но  всегда могут быть нюансы  @mrVladimir все должно получиться извините за то что выдал непроверенную информацию за мнение типа знающего эксперта оказывается я 
    • malvi.dp
      Какое у детали имя файла и как формируете Обозначение и Наименование? Вы каждое исполнение сохраняете в новый чертеж? Или это групповой чертеж? Если групповой-то имя конфигурации в нем быть не должно. Стоит ли галочка "Исполнение" "Из конфигурации"? На сколько мне не изменяет память макрос сохраняет файл чертежа с тем же именем что и файл модели в папке модели. В спецификации все правильно отображается, даже если знаков исполнений больше трех  
    • gudstartup
      и главная деталь чтобы на системе была remote option system а именно файл oprminf.000 c сертификатами и были ли проблемы с ними после замены компонентов.
    • boomeeeer
      с него родимого
    • Grundick
    • eljer0n
      Большое спасибо! Посмотрю. Но, судя по всему, даже если удастся заставить его сохранять чертеж с трехзначным исполнением, видимо, в той же спецификации правильного отображения не добиться. У Леона с товарищем был об этом разговор, что солид вроде как не воспринимает исполнения дальше двузначного. Хотя, может и я неправильно понял. Вернусь к этому вопросу чуть позже. Еще раз спасибо за совет.
×
×
  • Создать...