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

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


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

1 hour ago, DuS said:

моих умений хватит только на запись макроса))

Из текста копипастом новый макрос хватит знаний создать? :)

Макрос создаёт состояние отображения - "Имя конфигурации -Обработка" и красит элементы сборки в красный цвет (можно поменять в пути материала). Не красит элементы сборки, которые распространятся в деталь

Spoiler

Option Explicit
    Dim swApp As SldWorks.SldWorks
    Dim swModel As SldWorks.ModelDoc2
    Dim swConf As SldWorks.Configuration
    Dim swModelDocExt As SldWorks.ModelDocExtension
    Dim swSelectionMgr As SldWorks.SelectionMgr
    Dim swFeat As SldWorks.Feature
    Dim featAssy As SldWorks.Feature
    Dim swRenderMaterial As SldWorks.RenderMaterial
    Dim materialName As String
    Dim dpNames() As String
    Dim dpName As String
    Dim m1 As Long
    Dim m2 As Long
    Dim status As Boolean
    
Sub main()
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
        If swModel.GetType <> swDocASSEMBLY Then
            MsgBox ("You can only apply colors to assembly features.")
        Exit Sub
        End If
    Set swModelDocExt = swModel.Extension
        swModelDocExt.LinkedDisplayState = True
        
    Set swConf = swModel.GetActiveConfiguration
        materialName = "C:\Program Files\SOLIDWORKS Corp\SOLIDWORKS\data\graphics\Materials\solid\red.p2m"
    Set swRenderMaterial = swModelDocExt.CreateRenderMaterial(materialName)
    
            dpNames = swConf.GetDisplayStates
        dpName = swConf.Name & "-Обработка" '& "-" & Date & "/" & Time
        status = swConf.CreateDisplayState(dpName)

    Set swFeat = swModel.FirstFeature
    
    While Not swFeat Is Nothing
    
'            Debug.Print "Assy Feature " + swFeat.GetTypeName

        If swFeat.GetTypeName = "Chamfer" _
        Or swFeat.GetTypeName = "Fillet" _
        Or swFeat.GetTypeName = "Cut" _
        Or swFeat.GetTypeName = "RevCut" _
        Or swFeat.GetTypeName = "SketchHole" _
        Or swFeat.GetTypeName = "SweepCut" _
        Or swFeat.GetTypeName = "HoleWzd" _
        Or swFeat.GetTypeName = "LPattern" _
        Or swFeat.GetTypeName = "CirPattern" _
        Or swFeat.GetTypeName = "MirrorPattern" _
        Or swFeat.GetTypeName = "TablePattern" _
        Or swFeat.GetTypeName = "SketchPattern" Then

        status = swModelDocExt.SelectByID2(swFeat.Name, "BODYFEATURE", 0, 0, 0, False, 0, Nothing, 0)
        Set swSelectionMgr = swModel.SelectionManager
        Set featAssy = swSelectionMgr.GetSelectedObject6(1, -1)
        
        status = swRenderMaterial.AddEntity(featAssy)
        status = swModelDocExt.AddDisplayStateSpecificRenderMaterial(swRenderMaterial, 1, dpNames, m1, m2)
        
        End If
        Set swFeat = swFeat.GetNextFeature
    Wend
'    swModel.ForceRebuild3 True
    swModel.ClearSelection2 True
    Set swModel = Nothing
End Sub

 

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


22 часа назад, SWX сказал:

Из текста копипастом новый макрос хватит знаний создать? :)

Макрос создаёт состояние отображения - "Имя конфигурации -Обработка" и красит элементы сборки в красный цвет (можно поменять в пути материала). Не красит элементы сборки, которые распространятся в деталь

  Скрыть содержимое

Option Explicit
    Dim swApp As SldWorks.SldWorks
    Dim swModel As SldWorks.ModelDoc2
    Dim swConf As SldWorks.Configuration
    Dim swModelDocExt As SldWorks.ModelDocExtension
    Dim swSelectionMgr As SldWorks.SelectionMgr
    Dim swFeat As SldWorks.Feature
    Dim featAssy As SldWorks.Feature
    Dim swRenderMaterial As SldWorks.RenderMaterial
    Dim materialName As String
    Dim dpNames() As String
    Dim dpName As String
    Dim m1 As Long
    Dim m2 As Long
    Dim status As Boolean
    
Sub main()
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
        If swModel.GetType <> swDocASSEMBLY Then
            MsgBox ("You can only apply colors to assembly features.")
        Exit Sub
        End If
    Set swModelDocExt = swModel.Extension
        swModelDocExt.LinkedDisplayState = True
        
    Set swConf = swModel.GetActiveConfiguration
        materialName = "C:\Program Files\SOLIDWORKS Corp\SOLIDWORKS\data\graphics\Materials\solid\red.p2m"
    Set swRenderMaterial = swModelDocExt.CreateRenderMaterial(materialName)
    
            dpNames = swConf.GetDisplayStates
        dpName = swConf.Name & "-Обработка" '& "-" & Date & "/" & Time
        status = swConf.CreateDisplayState(dpName)

    Set swFeat = swModel.FirstFeature
    
    While Not swFeat Is Nothing
    
'            Debug.Print "Assy Feature " + swFeat.GetTypeName

        If swFeat.GetTypeName = "Chamfer" _
        Or swFeat.GetTypeName = "Fillet" _
        Or swFeat.GetTypeName = "Cut" _
        Or swFeat.GetTypeName = "RevCut" _
        Or swFeat.GetTypeName = "SketchHole" _
        Or swFeat.GetTypeName = "SweepCut" _
        Or swFeat.GetTypeName = "HoleWzd" _
        Or swFeat.GetTypeName = "LPattern" _
        Or swFeat.GetTypeName = "CirPattern" _
        Or swFeat.GetTypeName = "MirrorPattern" _
        Or swFeat.GetTypeName = "TablePattern" _
        Or swFeat.GetTypeName = "SketchPattern" Then

        status = swModelDocExt.SelectByID2(swFeat.Name, "BODYFEATURE", 0, 0, 0, False, 0, Nothing, 0)
        Set swSelectionMgr = swModel.SelectionManager
        Set featAssy = swSelectionMgr.GetSelectedObject6(1, -1)
        
        status = swRenderMaterial.AddEntity(featAssy)
        status = swModelDocExt.AddDisplayStateSpecificRenderMaterial(swRenderMaterial, 1, dpNames, m1, m2)
        
        End If
        Set swFeat = swFeat.GetNextFeature
    Wend
'    swModel.ForceRebuild3 True
    swModel.ClearSelection2 True
    Set swModel = Nothing
End Sub

 

Да, скопипастить я могу) Могу даже иконку нарисовать) 

Ссылка на сообщение
Поделиться на других сайтах
11.02.2022 в 12:45, SWX сказал:

Из текста копипастом новый макрос хватит знаний создать? :)

Макрос создаёт состояние отображения - "Имя конфигурации -Обработка" и красит элементы сборки в красный цвет (можно поменять в пути материала). Не красит элементы сборки, которые распространятся в деталь

  Скрыть содержимое

Option Explicit
    Dim swApp As SldWorks.SldWorks
    Dim swModel As SldWorks.ModelDoc2
    Dim swConf As SldWorks.Configuration
    Dim swModelDocExt As SldWorks.ModelDocExtension
    Dim swSelectionMgr As SldWorks.SelectionMgr
    Dim swFeat As SldWorks.Feature
    Dim featAssy As SldWorks.Feature
    Dim swRenderMaterial As SldWorks.RenderMaterial
    Dim materialName As String
    Dim dpNames() As String
    Dim dpName As String
    Dim m1 As Long
    Dim m2 As Long
    Dim status As Boolean
    
Sub main()
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
        If swModel.GetType <> swDocASSEMBLY Then
            MsgBox ("You can only apply colors to assembly features.")
        Exit Sub
        End If
    Set swModelDocExt = swModel.Extension
        swModelDocExt.LinkedDisplayState = True
        
    Set swConf = swModel.GetActiveConfiguration
        materialName = "C:\Program Files\SOLIDWORKS Corp\SOLIDWORKS\data\graphics\Materials\solid\red.p2m"
    Set swRenderMaterial = swModelDocExt.CreateRenderMaterial(materialName)
    
            dpNames = swConf.GetDisplayStates
        dpName = swConf.Name & "-Обработка" '& "-" & Date & "/" & Time
        status = swConf.CreateDisplayState(dpName)

    Set swFeat = swModel.FirstFeature
    
    While Not swFeat Is Nothing
    
'            Debug.Print "Assy Feature " + swFeat.GetTypeName

        If swFeat.GetTypeName = "Chamfer" _
        Or swFeat.GetTypeName = "Fillet" _
        Or swFeat.GetTypeName = "Cut" _
        Or swFeat.GetTypeName = "RevCut" _
        Or swFeat.GetTypeName = "SketchHole" _
        Or swFeat.GetTypeName = "SweepCut" _
        Or swFeat.GetTypeName = "HoleWzd" _
        Or swFeat.GetTypeName = "LPattern" _
        Or swFeat.GetTypeName = "CirPattern" _
        Or swFeat.GetTypeName = "MirrorPattern" _
        Or swFeat.GetTypeName = "TablePattern" _
        Or swFeat.GetTypeName = "SketchPattern" Then

        status = swModelDocExt.SelectByID2(swFeat.Name, "BODYFEATURE", 0, 0, 0, False, 0, Nothing, 0)
        Set swSelectionMgr = swModel.SelectionManager
        Set featAssy = swSelectionMgr.GetSelectedObject6(1, -1)
        
        status = swRenderMaterial.AddEntity(featAssy)
        status = swModelDocExt.AddDisplayStateSpecificRenderMaterial(swRenderMaterial, 1, dpNames, m1, m2)
        
        End If
        Set swFeat = swFeat.GetNextFeature
    Wend
'    swModel.ForceRebuild3 True
    swModel.ClearSelection2 True
    Set swModel = Nothing
End Sub

 

Что-то  макрос у меня не заработал( Что я сделал не так?

Цвет в сборке.swp

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

Что-то  макрос у меня не заработал( Что я сделал не так?

Цвет в сборке.swp 28 \u041a\u0431 · 0 скачиваний

Починил, вопрос снимается.

Ссылка на сообщение
Поделиться на других сайтах
39 minutes ago, DuS said:

Починил, вопрос снимается.

что было, путь к файлу внешнего вида другой?

Ссылка на сообщение
Поделиться на других сайтах
54 minutes ago, DuS said:

Починил, вопрос снимается

Перед вставкой текста макро нужно удалять всё в окне макроса, который солид создаёт по умолчанию. У тебя там лишняя строка осталась (самая верхняя), удали и всё заработает

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

Перед вставкой текста макро нужно удалять всё в окне макроса, который солид создаёт по умолчанию. У тебя там лишняя строка осталась (самая верхняя), удали и всё заработает

Путь к файлу другой и со выставкой текста ошибся. 

Вопрос, а как сделать чтобы внешний вид брался из папки с макросом? 

Сейчас макрос такой :

Цвет обработки в сборке

https://disk.yandex.ru/d/e9ehV4so9nh3 FQ

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

Цвет обработки в сборке

https://disk.yandex.ru/d/e9ehV4so9nh3 FQ

Ничего не найдено
Владелец удалил файлы либо закрыл к ним доступ или в ссылке опечатка.
Ссылка на сообщение
Поделиться на других сайтах
12 минут назад, Snake 60 сказал:
Ничего не найдено
Владелец удалил файлы либо закрыл к ним доступ или в ссылке опечатка.

https://yadi.sk/d/e9ehV4so9nh3FQ
а так?

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

Доброго времени суток! Я начинающий солидворкер)

Есть такая задачка. Как наверняка знаете, панели инструментов быстрого доступа можно редактировать (по умолчанию в верхней части экрана) оставляя только самые важные для себя инструменты. Как их удалить и добавлять я разобрался.

Но непонятно, как сделать 2 и более инструмента в одном выпадающем списке? Из тех что есть по умолчанию при установке солида, пример: вкладка эскиз - далее пункт "эскиз" содержит 2 инструмента: эскиз и 3д эскиз. То есть они не отдельно а в одном выпадающем списке. Как мне тоже делать такие штуковина? Они экономят место. Но я как ни извращался с клавиатурой и с мышкой, никак не получается. Если это возможно, подскажите, как это сделать. Спасибо

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

По-моему, нет такой возможности. Хотя может я не знаю про это, пусть коллеги поправят если я не прав.

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

Вы написали макрос который добавляет внешний вид к элементу в дереве детали?

Ссылка на сообщение
Поделиться на других сайтах
2 hours ago, Maximis said:

То есть они не отдельно а в одном выпадающем списке. Как мне тоже делать такие штуковина?

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

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

Вы написали макрос который добавляет внешний вид к элементу в дереве детали?

Нет, я его скопировал из поста выше. И он работает со сборкой, а не с деталью. 

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

Нет, я его скопировал из поста выше. И он работает со сборкой, а не с деталью. 

а все перечисленные элементы тоже относятся к сборке?

 

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

а все перечисленные элементы тоже относятся к сборке?

 

да

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

да

ок. тогда получается что все эти внешние виды добавляются к элементам но находятся в сборке.

а если открыть деталь отдельно то она не будет с новым цветом?

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

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

Я не против и такого решения, но некоторые иконки не помещаются и приходится наживать двойную стрелку чтобы открыть непоместившиеся инструменты, а потом выбирать. Как тогда быстро переходить к ним? Может что-то с колёсиком мыши? Но так вроде не получается

Ссылка на сообщение
Поделиться на других сайтах
On 2/12/2022 at 12:01 PM, DuS said:

как сделать чтобы внешний вид брался из папки с макросом? 

Сейчас макрос такой

Закомментируй абсолютный путь к материалу, а ниже добавь новые строки

Spoiler

'        materialName = "C:\Program Files\SOLIDWORKS Corp\SOLIDWORKS\data\graphics\Materials\solid\red.p2m"
    Dim pathname As String
    pathname = swApp.GetCurrentMacroPathFolder
'        Debug.Print pathname
    materialName = pathname + "\red.p2m"

 

5 hours ago, Sturmann said:

макрос который добавляет внешний вид к элементу в дереве детали?

для раскраски элементов детали макрос не нужен, это стандартная фича солида

изображение.png

 

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

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

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

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

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

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

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

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

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

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

    • Grig75



  • Сообщения

    • Orchestra2603
      Много делал расчетов для общей вибрации корпуса судна. Так вот мы просто вокруг корпуса делали объемную сетку и "заливали" ее элементами акустической жидкости (т.е. из степеней свободы только давление). Получался типа такого параллелипепеда из воды. В тех элементах, которые граничат с конструкции, там нужно включать расширенные набора степеней свободы (давление и еще пермещения), чтобы обеспечить совместность. Если объем достаточно большой, так что в модальнике видно, что на нектором отдалении от границ параллелепипеда давления падают, то размер этот параллелепипеда не влияет на частоты/формы. Знаю, что еще есть всякие полубесконечные специальные элементы, где на одной из граней можно сразу задавать асимптотические условия на бесконечности, но я такими не пользовался сам, так что не знаю, как оно работает. Еще надо понимать, что из-за вот этих интерфейсных элементов жидкости пропадает симметрия матриц, так что там есть еще вычислительные особенности для модальника.   Надо еще понимать, что для разных видов движений (т.е. по сути для разных форм колебаний, если мы говорим о вибрации) присоединенная масса будет отлисчаться. Существует,например, формула для присоединенных масс для поступательного движения циллиндра. И там для бесконечного объема жидкости вокруг циллиндра. Но понятное дело, что это не совсем то, что нужно.    Вообще, что касается гидродинамики (если она там есть), то это вообще отдельная история. Если объем там внутри насоса замкнутый (насколько я понимаю), и скорости существенные, то там куча всякого интеренсого может проиходить. Если прям есть задача или желание заморачиваться, то надо бы тогда и CFD посчитать. Представьте себе... Совсем недавно имел дело с расчетами динамики опорной конструкции для оффшорного ветрогенератора. И там под Cambell diagram они как раз имелли ввиду примерно такой же график!  По оси x - частота вращения, по оси y - частоты.  Там строят графики для частот возбуждения разных порядков (1P, 3P, 6P, ...), которые (ясен пень!) линейны относительно частоты вращения ротора. Еще рисуют горизонтальные прямые, которые соответствуют каким-то собственным частотам и ращным самым формам... Получается картинка, очень похожая на вашу! Я всегда считал, что Campbell diagramm - это про динамическую неустойчивость при вращательном движении. А тут вот - нет! Короче.. Всегда хорошо уточноить у заказчика, что конкретно они хотят получить. Очень может быть, что вам и не нужно сильно заморачиваться. 
    • Говорящий Огурец
      Да, как-то так это и работает. На сколько я помню, "слепки" станка можно делать упрощенные и полные. И заставить работать Sinutrain - та еще задачка...
    • Kelny
      Просто ВАРИАНТы.   Получается не верно.   Как вариант ГОСТ 2.109. В графе кол-во пусто, а в примечании: "1 шт. допускается замена на поз. или поз." (если есть базовый вариант поставки) и для остальных поз. "1 шт. применяется в замен поз. или поз.", которые заменяют друг друга.   Но так понимаю этот вариант не предполагает поставку всех пяток, а только одного варианта.   Выходит правильный вариант всё таки как КОМПЛЕКТ МОНТАЖНЫХ ЧАСТЕЙ с картинками как их правильно установить в паспорте или руководстве по эксплуатации, а не на сборочном чертеже (т.к. сборочный чертёж покупателю вашего изделия поставляться не должен).
    • Павлуха
    • maxx2000
      не, не никакого STL, только твердотельные STEP, IGES
    • maxx2000
      Есть мнение, что обработку надо вести вдоль оси W, как самое простое. Т.е.  деталь должна быть ориентирована на столе вдоль оси Z рабочей плоскости XYZ и  ось W будет совпадать с Z. А наклон будет минимизирован автоматически.
    • ДОБРЯК
      Не посложнее, а алгоритм решения нужен. Слово КАК замените на алгоритм решения.  Есть много алгоритмов или методов решения задачи определения собственных чисел и векторов.  В терминах понятных вам. То что вы решили квадратное уравнение вы не нашли собственную пару (к, u). :=) Есть две разреженные матрицы [К] и [М]. Нужно найти первые собственные числа и вектора.  Или опять не понимаете задачу которую нужно решить... :=) Это задача которая решается в любой КЭ программе. Вы даже задачу не можете понять. А пишете столько умных слов и букв. :=)
    • Artas28
      Вариант (К Точке), строит более менее, но не разворачивает инструмент(((
    • ANT0N1DZE
      Приведите фото/видео/ссылку на аналог этого изделия для понимания. 
    • Irukanjii
      Только проверил, всё работает. Напишите, пожалуйста, на почту, которую указал в шапке темы, могу продублировать и отправить модели в stl.
×
×
  • Создать...