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

Сделай свою работу в 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 эмодзи.

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

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

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

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

    • Дмитрий22
    • mme



  • Сообщения

    • Danil89nur
      Доброе время суток. Столкнулся с проблемой на новой работе. Много деталей у который в свойствах отсутствует раздел "Материал" и приходится каждый раз вручную заходить туда, создавать раздел и выбирать там ""SW-Material@Name.SLDPRT". Возможно кто-то знает, либо сможет помочь с написанием простенького макроса, при нажатии на который в свойствах детали будет создаваться необходимый раздел и в нем сразу написан выбранный материал (желательно, чтоб там было указано сразу наименование материала, а не формула для его получения ""SW-Material@Name.SLDPRT"). Пытался самостоятельно через ChatGPT, но так как в програмировании я 0, то ничего не получилось)
    • Bot
      Коллеги, Благодарю вас за интерес к проекту электронной энциклопедии в области инженерного программного обеспечения PLMpedia, который более 15 лет развивался группой компаний ЛЕДАС. Представленный ниже скриншот передаёт содержание и структуру базы данных энциклопедии, накопленной за эти годы: именно такую начальную страницу, можно было до сегодняшнего дня увидеть, придя по адресу https://plmpedia.ru/ В последние несколько лет ЛЕДАС особенно интенсивно и результативно вкладывает все ресурсы в развитие своего основного бизнеса: см. ниже «О компании ЛЕДАС». Сегодня я с некоторым сожалением констатирую, что у компании ЛЕДАС более нет возможности отвлекать ресурсы своих сотрудников на некоммерческий (фактически волонтерский) проект PLMpedia. Вся база данных ресурса может быть безвозмездно передана любому юридическому или физическому лицу с единственным условием: наш преемник должен будет публично объявить о состоявшейся передаче и взятии на себя [...] View the full article
    • gudstartup
      @NordCom  у вас наверное это так происходит читайте этот раздел itnc_530.pdf
    • fenics555
      интересный индус. А нового то чего?
    • gudstartup
      откудова качаете мне интересно?
    • ДОБРЯК
      Совсем забыл про собственные вектора       собственный тон частота           0.013                        1   Расчет собственных форм и частот   1         1   7.0711E-01   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   1         2   7.0711E-01   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00       собственный тон частота       15910.75                         2   Расчет собственных форм и частот   1         1   7.0711E-01   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   1         2  -7.0711E-01   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00   0.0000E+00        
    • gudstartup
      так я это и написал
    • Viktor2004
      Обычно если сразу по всем осям, тогда это вентилятор БП. А на старых БП вентилятор может быть и на плате управления
    • gudstartup
      @NordCom какого года чпу? посмотрим более древние руководства а в принципе надо setup.elf запустить или у вас с windows?
    • Deunet
      Спасибо Вам! Но на пикчер ссылки не рабочие, пришлите пожалуйста, если у вас есть.
×
×
  • Создать...