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

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


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

42 минуты назад, DuS сказал:

 

 

Снимок экрана 2023-08-22 170454.jpg

 

 

Я понял. Вы сначала создаёте деталь, потом из неё пытаетесь сделать свойство.

У меня наоборот, свойство первично.

Из свойства уже бeрётся толщина, радиус, и К.

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


39 минут назад, DuS сказал:

ссылка не менялась на значение, а оставалась ссылкой?

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

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

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

Да, именно так. Наоборот это надо менять шаблон, а учитывая что я не один на фирме и учитывая сколько деталей уже наделано...) 

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

Да, именно так. Наоборот это надо менять шаблон, а учитывая что я не один на фирме и учитывая сколько деталей уже наделано...) 

 

Пусть сделанные детали остаются.

Делайте новый шаблон, создавайте базу заготовок, делайте шаблон таббилдера.

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

это надо менять шаблон

в мозгу. А это сложнее. Особенно "на фирме".

Какой способ "правильнее" я не знаю. Мне нравятся оба :)

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

в мозгу. А это сложнее. Особенно "на фирме".

Какой способ "правильнее" я не знаю. Мне нравятся оба :)

 

Первый.

Ибо есть заготовка, у неё есть типоразмеры, которые должны быть прописаны в свойства на чертеже.

От неё и отталкиваться.

И пользуйтесь группой списков.

Они быстрее настраиваются, и значения в них зависимы линейно.

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

ЛД.prtdot 45 \u041a\u0431 · 5 скачиваний Листовой металл.prtprp 4 \u041a\u0431 · 5 скачиваний

Только там нужно в шаблоне таббилдера исправления делать. Он же к моей таблице привязан.

Спасибо за шаблоны!

Таб билдер запрашивает ещё какой-то файл сводных свойств. Можно его тоже глянуть?

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

Спасибо за шаблоны!

Таб билдер запрашивает ещё какой-то файл сводных свойств. Можно его тоже глянуть?

 

Это таблица с заготовками, фамилиями исполнителей, и т.д.

Нужно будет указать к нему путь.

 

Ну и дополнять по надобности.

Сводный список свойств.xlsx

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

Доброго. Кто поможет вытянуть кусок кода из макроса SaveAsPDF.

В этом макросе кроме всего прочего есть простанорвка текущей даты. и онна не привязана к свойствм детали. А это именно то что мне надо. 

Я хочу из данной вырезки создать кнопку макроса, чтоб при нажатии, в  основной надписи писалась текущая дата.

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

Я хочу из данной вырезки создать кнопку макроса, чтоб при нажатии, в  основной надписи писалась текущая дата.

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

$PRP:"SW-Дата, короткий вариант(Short Date)"
$PRP:"SW-Дата, длинный вариант(Long Date)"

 

2 часа назад, vik300001 сказал:

Кто поможет вытянуть кусок кода из макроса SaveAsPDF.

Открываете макрос на редактирование и во всём проекте ищете date.

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

    ' Дата
    ' Определяем дату
    MyDate = Date
    MyDay = Day(MyDate)
    MyMonth = Month(MyDate)
    MyYear = Year(MyDate)
    strData = CStr(MyDay) & "." & CStr(MyMonth) & "." & Right$(CStr(MyYear), 2)
    ' Активируем первый лист
    ok = swDraw.ActivateSheet(vSheetNames(0))
    Set swSheet = swDraw.GetCurrentSheet
    strSheetFormatName = swSheet.GetSheetFormatName()
    Set swSelMgr = swDraw.SelectionManager
    ' Проверяем наличие изменений (Revision)
    strTemp = "Revision4@" & strSheetFormatName
    ok = swDraw.Extension.SelectByID2(strTemp, "NOTE", 0, 0, 0, False, 0, Nothing, 0)
    If ok = True Then ' Есть заметка Revision4
        Set swNote = swSelMgr.GetSelectedObject2(1)
        strTemp = swNote.GetText()
        If Len(strTemp) < 2 Then ' Изменений еще не было
            ' Устанавливаем дату Разраб.
            For i = 0 To UBound(vSheetNames)
                ok = swDraw.ActivateSheet(vSheetNames(i))
                Set swSheet = swDraw.GetCurrentSheet
                strSheetFormatName = swSheet.GetSheetFormatName()
                strTemp = "Date@" & strSheetFormatName
                ok = swDraw.Extension.SelectByID2(strTemp, "NOTE", 0, 0, 0, False, 0, Nothing, 0)
                If ok = True Then
                    Set swNote = swSelMgr.GetSelectedObject2(1)
                    swNote.SetText strData
                End If
            Next i
        Else ' Изменения были
            ' Устанавливаем дату Изм.
            For i = 0 To UBound(vSheetNames)
                ok = swDraw.ActivateSheet(vSheetNames(i))
                Set swSheet = swDraw.GetCurrentSheet
                strSheetFormatName = swSheet.GetSheetFormatName()
                strTemp = "Revision4@" & strSheetFormatName
                ok = swDraw.Extension.SelectByID2(strTemp, "NOTE", 0, 0, 0, False, 0, Nothing, 0)
                If ok = True Then
                    Set swNote = swSelMgr.GetSelectedObject2(1)
                    swNote.SetText strData
                End If
            Next i
        End If
    End If
 

 

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

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

В том то и дело что нужно чтоб дата оставалась даже при открытии документа через год. этожведь дата выдачи чертежа.... Скорее всего из свойств ее невзять. Задумка такая: Нажал на кнопку и в осеовной надписи появилась текущая дата. Так чтоб минимум движений и больше автоматизации.

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

Скорее всего из свойств ее невзять. Задумка такая: Нажал на кнопку и в осеовной надписи появилась текущая дата. Так чтоб минимум движений и больше автоматизации.

Если в свойствах создано свойство для даты, то можно в шаблон чертежа добавить заметку, а в заметке ссылку на нужное свойство.

Данные в свойствах можно просмотреть через свойства файла не открывая документ.

 

https://help.solidworks.com/2010/english/api/sldworksapi/get_custom_properties_for_configuration_example_vb.htm

 

 

1 час назад, vik300001 сказал:

В том то и дело что нужно чтоб дата оставалась даже при открытии документа через год. этожведь дата выдачи чертежа....

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

В помощью ГОСТ501, 502, 503.

А так же при глубоком рассмотрении возможно задуматься о PDM/PLM.

 

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

Изменено пользователем Kelny
Ссылка на сообщение
Поделиться на других сайтах
19 часов назад, vik300001 сказал:

Я хочу из данной вырезки создать кнопку макроса, чтоб при нажатии, в  основной надписи писалась текущая дата.

Установка текущей даты.zip

Ссылка на сообщение
Поделиться на других сайтах
Работаю над созданием макроса пакетного изменения свойств листового металла.
   Цель макроса понятна из названия, но распишу немного подробней. Иногда бывает такая ситуация, что необходимо одновременно изменить толщины и параметры гибки всех или некоторых листовых материалов в сборке. Допустим, привезли лист другой толщины, или закончился на предприятии листовой прокат определенной толщины и надо оперативно поменять толщины и параметры гибки в сборочной модели и быстро получить развертки на измененные детали. Вот как раз в этом случае и поможет данный макрос. Ещё одна ситуация, когда его можно использовать - это, если поменялся подрядчик листовых гнутых деталей, и срочно надо поменять параметры гибки (не меняя толщину). С этой задачей тоже справится данный макрос. Чуть попозже запишу видео отработки данного макроса.
   На данный момент написана и проверена работа основного кода. Вроде бы всё работает как задумано, остались небольшие правки.
   Разработан интерфейс, выглядеть будет вот так:

d3237715-82ea-4e1c-a878-2958e52fe0ad?cha

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

Хочется узнать и понять, допустим как, самое простое, выглядит код VB на такое действие, две операции. алгоритм такой.

Нахожусь в редактировании эскиза. Эскиз определен, не закрыт.

1. Появляется запрос, типа всплывающего окна MsgBox на ввод числа

2. Выдавить по средней плоскости на расстояние, введенное в MsgBox.

И все. Я просто пытаюсь понять самое простое.

 

Макрос, получаемый средствами штатной записи такой

' ******************************************************************************
Dim swApp As Object

Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long

Sub main()

Set swApp = Application.SldWorks

Set Part = swApp.ActiveDoc
Dim myFeature As Object
Set myFeature = Part.FeatureManager.FeatureExtrusion2(True, False, False, 6, 0, 0.006, 0.007, False, False, False, False, 1.74532925199433E-02, 1.74532925199433E-02, False, False, False, False, True, True, True, 0, 0, False)
Part.SelectionManager.EnableContourSelection = False
End Sub

Но я не понял, где то самое расстояние.

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

@Srgwell, расстояние для выдавливания в одну сторону стоит на шестом месте (0.006 - т.е. 6 мм) , в другую сторону - на седьмом (0.007 - 7 мм). Но метод FeatureExtrusion2 уже считается устаревшим, лучше использовать по-новее, например FeatureExtrusion3  ( смотря в какой версии Solidworks Вы работаете ). Рекомендую также использовать пользовательские формы (User Forms) для ввода расстояний и выбора типа выдавливания.

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

@Srgwell, расстояние для выдавливания в одну сторону стоит на шестом месте (0.006 - т.е. 6 мм) , в другую сторону - на седьмом (0.007 - 7 мм). Но метод FeatureExtrusion2 уже считается устаревшим, лучше использовать по-новее, например FeatureExtrusion3  ( смотря в какой версии Solidworks Вы работаете ). Рекомендую также использовать пользовательские формы (User Forms) для ввода расстояний и выбора типа выдавливания.

Спасибо, разобрался. Только 0,007 это не в другую сторону. Судя по всему 0,006 это в метрах, как раз выдавливается в разные стороны на 3мм.

Не смейтесь надо мной. Просто это моя первая программа. Забил на клавишу. Просто я всегда выдавливаю от центра в разные стороны. По аналогии можно и вырезать.

Код работает, только нужно чтобы эскиз был открыт.

Dim swApp As Object

Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Dim chis
Dim a As String

Sub main()

Set swApp = Application.SldWorks

Set Part = swApp.ActiveDoc
Dim myFeature As Object
a = InputBox("расстояние выдавливания") / 1000
Set myFeature = Part.FeatureManager.FeatureExtrusion2(True, False, False, 6, 0, a, 0.007, False, False, False, False, 1.74532925199433E-02, 1.74532925199433E-02, False, False, False, False, True, True, True, 0, 0, False)
Part.SelectionManager.EnableContourSelection = False

End Sub

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

@Srgwell Вы безусловно молодец) (Я вроде в предыдущем ответе и не смеялся над Вами). Только зачем Вы пишете программу для тех действий, которые также можно сделать штатными средствами Solidworks ? Или Вы просто тренируетесь ?

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

Всем привет!

Как обычно, может кому-то будет полезно.

В соседней ветке разговорились про функционал Продвинуть в свойствах конфигурации.

Я этим инструментом пользуюсь постоянно, мне удобно.

Но много тыкать мышем вредно, поэтому набросал очередной макрос, который в активной сборке и активной конфигурации выбирает свойство Продвинуть за два клика.

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

Прошу быть аккуратным с этим инструментом, если вы используете SWR-спецификацию или ПДМ "Аппиус". Коллеги пишут, что эти спецификации не распознают функционал солида Продвинуть. Проверяйте.

Работает именно в активной сборке и активной конфигурации, ее свойства и меняет.

Со свойством Скрыть нужно быть очень аккуратным, оно не отображается в дереве конструирования верхней сборки, в отличие от свойств Продвинуть, конверт, исключить из спецификации, их видно.

Со значками не играл, взял первые попавшиеся, кому надо - поменяет на свои.

Можно использовать как пример кода для доступа к свойствам активной конфигурации активной сборки.

За скрин сасибо @Krusnik

image.png

 

PromoteActiveConfiguration.bmp PromoteActiveConfiguration.swp

;)

Ну и играть с каждой сборкой по отдельности - не наш вариант.

Ниже макрос для Продвинуть у всех выделенных подсборок верхней сборки.

Работает так, выделяете в дереве все подсборки, которые нужно продвинуть, запускаете макрос, и получаете продвинутые сборки, не открывая каждую.

Код также будет полезен тем, кто хочет выполнять определенные манипуляции сразу со всеми выделенными компонентами сборки по паре кликов.

Смотрите реализацию и подгоняйте под свои задачи.

Отработает только в конфигурациях вставленных и выделенных в верхней сборке, остальные конфигурации не затронет.

Выявленные косяки приветствуются моей безграничной благодарностью!

 

PromoteActiveConfigurationInAssembly.bmp PromoteActiveConfigurationInAssembly.swp

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

Редко пользуюсь PackAndGo, при этом очень часто просто копирую нужную имеющуюся модель, даю новое имя, корректирую и т.д.
При оформлении копирую чертеж от старой, переименовываю, а потом начинается свистопляска с привязкой нового чертежа к новой модели. Это ж надо нажать открыть, выбрать этот чертеж, заменить ссылки, муторно короче, особенно когда файлов в папке много. Набросал макрос, который открывает скопированный и переименованный чертеж и автоматом перепривязывает его к новой модели. Попробуйте, может кому будет полезен.

 

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


Можно просто использовать для открытия чертежа из модели, или для переключения на чертеж, если он уже открыт.

 

Описание работы:
- Скопировать исходную модель и дать новое имя, скорректировать геометрию.
- Скопировать чертеж исходной модели в папку новой модели, переименовать новый чертеж по имени новой модели.
- Из новой модели запустить макрос.
Откроется новый чертеж, ссылки на новую модель будут перезаписаны автоматом.

 

Выявленные косяки приветствуются! Тестировал не много, не проверяйте на рабочей документации.

OpenDrwAndChangeRef.swp OpenDrwAndChangeRef.bmp

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

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

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

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

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

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

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

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

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

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

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




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