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

Сделай свою работу в Solidworks эффективнее


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



3 часа назад, shuha сказал:

Помощи прошу

 

3 часа назад, shuha сказал:

SWPlus пользуюсь для SW 2017 SP 5.0

 

Это сюда

 

 

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

формулы для округления переменных или выражений в уравнениях SOLIDWORKS

Скрытый текст

XXXX - имя переменной или выражение которую(ое) нужно округлить.

Округление до целого:
= IIF ( int ( ( XXXX - int ( XXXX ) ) * 10 ) < 5 , int ( XXXX ) , int ( XXXX ) + 1 )

Округление до 0,1:
= IIF ( int ( ( XXXX * 10 - int ( XXXX * 10 ) ) * 10 ) < 5 , int ( XXXX ) + int ( ( XXXX - int ( XXXX ) ) * 10 ) / 10 , int ( XXXX ) + int ( ( XXXX - int ( XXXX ) ) * 10 ) / 10 + 0.1 )

Округление до 0,01:
= IIF ( int ( ( XXXX * 100 - int ( XXXX * 100 ) ) * 10 ) < 5 , int ( XXXX ) + int ( ( XXXX - int ( XXXX ) ) * 100 ) / 100 , int ( XXXX ) + int ( ( XXXX - int ( XXXX ) ) * 100 ) / 100 + 0.01 )

 

 

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

fox1001, оператор "Round" делает тоже самое без проблем

Показать содержимое  

round.thumb.JPG.03cd36160791f325d107ae7f5733dffc.JPG

 

Hide  


 
Изменено пользователем malvi.dp
Ссылка на сообщение
Поделиться на других сайтах
22 минуты назад, malvi.dp сказал:

"Round" делает тоже самое без проблем

в справке про него ни слова

Ссылка на сообщение
Поделиться на других сайтах
3 минуты назад, fox1001 сказал:

в справке про него ни слова

Функции vba для работы с числовыми значениями:
ABS()
Int()
Fix()
Round()
Rnd()
Sgn()

 

Ссылка на сообщение
Поделиться на других сайтах
3 минуты назад, alek77 сказал:

Функции vba для работы с числовыми значениями

откуда инфа? ссылку можно?

Ссылка на сообщение
Поделиться на других сайтах
5 минут назад, fox1001 сказал:

откуда инфа? ссылку можно?

https://msdn.microsoft.com/ru-ru/vba/language-reference-vba/articles/sgn-function

все там

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

в справке про него ни слова

Это вы зря, есть там это:

 

Цитата

При указании размеров модели можно также использовать функцию Visual Basic IIf. Эта функция возвращает одно из двух значений в зависимости от оценки выражения. Например, если указано уравнение "D1@Sketch1" = (IIf("D1@Sketch4">15, 20, 10)) + 8

 

http://help.solidworks.com/2010/russian/solidworks/sldworks/legacyhelp/sldworks/parts/Operators_and_Constants.htm

 

54 минуты назад, fox1001 сказал:

откуда инфа? ссылку можно?

Можно открыть редактор макросов VBA (Инструменты-Макрос) и там выбрать справку по VBA (через меню или F1). Ну или в интернете справка по VBA как написали выше.

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

@fox1001

Да и темы по округлению были:

http://cccp3d.ru/topic/10358-скрытые-возможности-sw/?page=11#comment-781222

http://cccp3d.ru/topic/32914-помощь-новичку-solidworks/?page=194#comment-682110

 

9 минут назад, fox1001 сказал:

про функцию Round в справке SOLIDWORKS нет никаких упоминаний. 

Есть упоминание, что можно использовать функции Visual Basic, а дальше уже ограничения в ваших познаниях Visual Basic. При определённых познаниях и умении пользоваться справкой уже всё остальное найдёте, где и нашёл всё это в своё время по ключевым словам из справки: " можно также использовать функцию Visual Basic "

 

Кстати так же обратите внимание, что ROUND может округлять к четному числу:

Цитата

The ROUND function utilizes round-to-even logic. If the expression that you are rounding ends with a 5, the ROUND function will round the expression so that the last digit is an even number. For example:

Round(12.55, 1)
Result: 12.6   (rounds up)

Round(12.65, 1)
Result: 12.6   (rounds down)

Round(12.75, 1)
Result: 12.8   (rounds up)

https://www.techonthenet.com/excel/formulas/round_vba.php

 

Изменено пользователем Kelny
Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...

Добрый день! Есть задача. Нужно написание макроса в solidworks для копирования свойств из спецификации сборки в детали сварных конструкций. Готов обсудить стоимость работы.

 

 

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

Доработал макрос Сохранения копии модели с новым именем вместе с чертежом. убрал ограничение на кол-во символов в имени файла (было 34), добавил строку для указания папки куда сохранить, и убрал то, что имя файла оказывалось всё в верхнем регистре.

SaveAsCopy.zip

картинко  

SaveAsCopy.png.09b18501646bedfdd52c1ff340094baf.png

Hide  
Изменено пользователем tompsongun
Ссылка на сообщение
Поделиться на других сайтах

Я не очень силён в макросах. И вот возник вопрос. на трёх машинах он запускается, а на 4й - нет - нажимаешь и ничего не происходит. там где он работает в настройках кнопки метод CopyFile1.main, а где не работает метод пишет SaveAsCopyWithDrawing1.main. Переписывание не помогает - сбрасывает на это же название. макрос имеет имя SaveAsCopyWithDrawing.swp

Подскажите, пожалуйста в чём может быть заковыка?

Ссылка на сообщение
Поделиться на других сайтах
27 минут назад, tompsongun сказал:

заковыка

в применении исправления глюка винды. Тут выкладывали решение с записью в реестр - исправления установки - восстанволение записи реестар.

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

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

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

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

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

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

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

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

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

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

    • dush



  • Сообщения

    • Viktor2004
      Туда вроде наоборот заносится значение какое-то, но не считывается Смотрю чужие программы, там вроде только 8549 используют. При чем у них в программах циклы поболее моих, которыми я круги чертил O4198 ; #500=#8549 ; IF[ #8549 EQ 0 ] THEN ; #10409=0 ; ENDIF ; IF[ #8549 EQ 134 && #10409 EQ 0 && #10422 NE 0 ] THEN ; #10409=1 ; #10422=FIX[#10422 / 10] ; #10427=1 ; ENDIF ; IF[ #8549 EQ 48 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 0 ; #10427=1 ; ENDIF ; IF[ #8549 EQ 49 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 1 ; #10427=1 ; ENDIF ; IF[ #8549 EQ 50 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 2 ; #10427=1 ; ENDIF ; IF[ #8549 EQ 51 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 3 ; #10427=1 ; ENDIF ; IF[ #8549 EQ 52 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 4 ; #10427=1 ; ENDIF ; IF[ #8549 EQ 53 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 5 ; #10427=1 ; ENDIF ; IF[ #8549 EQ 54 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 6 ; #10427=1 ; ENDIF ; IF[ #8549 EQ 55 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 7 ; #10427=1 ; ENDIF ; IF[ #8549 EQ 56 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 8 ; #10427=1 ; ENDIF ; IF[ #8549 EQ 57 && #10409 EQ 0 ] THEN ; #10409=1 ; #10422=#10422 * 10 + 9 ; #10427=1 ; ENDIF ; IF[ #10422 GT 9999 ] THEN ; #10422=FIX[#10422 / 10] ; ENDIF ; IF[ #500 EQ 249 && #8500 EQ 4170 ] THEN ; #8500=4601 ; M99 ; ENDIF ; IF[ #500 EQ 240 ] THEN ; IF[ #8500 EQ 4174 || #8500 EQ 4173 || #8500 EQ 4177 ] THEN ; #8500=4170 ; M99 ; ENDIF ; IF[ #8500 EQ 4178 ] THEN ; #8500=4170 ; M99 ; ENDIF ; ENDIF ; IF[ #500 EQ 248 && #8500 EQ 4170 && D34.0 NE 0 ] THEN ; #8500=4174 ; M99 ; ENDIF ; IF[ #500 EQ 247 && #8500 EQ 4170 && D30.4 EQ 1 && D29.6 EQ 0 ] THEN ; #8500=4175 ; M99 ; ENDIF ; IF[ #500 EQ 246 && #8500 EQ 4170 && D35.0 EQ 1 && D35.4 EQ 1 ] THEN ; #8500=4178 ; M99 ; ENDIF ; IF[ #8549 EQ 152 && #10409 EQ 0 && #10422 EQ 5656 ] THEN ; #8500=4177 ; M99 ; ENDIF ; M99 ;  
    • nicomed
      Как победить проблему с блокированием сегментов эскиза не знаю. Поэтому пока полумеры... Ввел активацию чертежного листа после разрыва линии. Для разблокирования сегментов после закрытия программы двойным кликом активировать чертежный вид, где надо двигать сегменты эскиза. Добавил настройки. Можно настроить величину генерируемого зазора в  файле options.xml. По толщине и стилю линии, если кто подскажет как прочитать стиль и толщину выбранной кромки ( силуэтной кромки), то тогда можно будет "напосмотреть".   Пару раз натыкался на такой глюк - остается только один сегмент эскиза, грешу на рассинхронизацию работы солида и приложения. EdgeTrim_v3.3.zip
    • si-64
      да, это работает. спасибо. но как то особо не работал со слоями, нужно прямо заморачиваться(
    • nicomed
    • Stanislav
      Фрезеровка и токарка ЧПУ. Территориально Нижний Новгород, отправка в регионы ТК. Фрезеровка Алюминия и его сплавов, Латунь, Текстолиты, Сталь в небольших объемах. Токарка как цветные так и черный металлов и неметаллов. Габариты деталей для фрезеровки порядка 400мм*600мм. Оплата, пока что, наличные или на карту. Чертежи и модели отправлять на почту 0563506@mail.ru там же все согласования и обсуждения.
    • Александр1979
      Можно попробовать код считывать из переменной #8501. В руководстве написано что значение сохраняется в переменной до тех пор, пока не будет произведено чтение из неё.
    • si-64
      Можно ли сделать так чтобы в чертеже все размеры были черные, а в эскизе детали цвета управляемых и управляющих различались? настройка меняет цвет как в чертеже так и в эскизах: Зачем это нужно? В чертеже есть элементы, отличные от черного, поэтому вариант печати (сохранения в PDF) в ч/б не устраивает.
    • Artas28
      Шота получилось. Всё равно. Жду ответа от гуру NX, как сделать фаску красиво в 5 осях, что бы вектор инструмента менялся.  
    • Viktor2004
      Моя программа считывает его лишь тогда, когда в момент нажатия кнопки программа выполняет команду считывания переменной. Во всех остальных случаях код получается не считан
    • gudstartup
      но кто то же этот код считывает из mdi буфера раз его там не оказывается когда ваша программа его опрашивает? 
×
×
  • Создать...