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

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

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

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

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

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

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



  • Сообщения

    • Snake 60
      Скорее всего исправляли в конкретной сборке, для конкретных тел. Насколько я помню, надо в самом эскизе профиля заполнить свойство Description
    • Snake 60
      Делаете дырку в свае - вставляете в нее трубу и 2 человеко-силы крутят сваю ) Дёшево и сердито и не нужен никакой планетарный редуктор ))
    • gudstartup
      вы всегда ищите свой путь или будете делать то что вам советуют? с самого начала прежде чем приступать к экспериментам вам нужно было вынуть носитель и сделать образ. diskcopy делает копию гибкого диска на другой а вам надо сделать образ жесткого диска или карты памяти. делайте как советует @Viktor2004 иначе еще чего нибудь сломаете или вам станок не нужен и вы его приобрели для экспериментов ? вот а печатной машинке из прошлого нельзя а вот на синумерике можно - удивительные вещи в настоящем происходят!! на 100 % уверен что там не модуль а либо писимиси ай либо жд @mircomax81 хотите работать в дос почитайте помощь по командам 
    • PuKoLLleT
      Доброго дня всем. Поделитесь опытом,раньше такое не доводилось делать. На торце фланца нужно сделать  восемь отверстий ф17H7 на токарно-фрезерном станке с осью Y ,имеется ManualGuide.В моем понимании нужно просверлить,а затем торцевой фрезой расточить нужный диаметр.Получится такой фокус,или надо разверткой доводить нужный размер?  Стойка Fanuc 0i-Tf.
    • Snake 60
      Всё верно, я даже русификатор делал для него (ушло на это где-то около года). Хороший софт был, я всех знакомых на него подсадил в свое время :) У меня даже где-то образ на виртуалке лежит с SW2014+MechSoft, Жаль, что автодеск его поглотил, а не DS :( А по сути вопроса, проектировал двухступенчатый планетарный редуктор в свое время. Что было нужно: Справочник по планетаркам (автора не помню, если надо поищу), из софта MathCAD + GearTeq (софтина идет вместе с GearTrax, только рассчитывает и моделирует несколько зацеплений согласно выбранной схеме, в том числе планетарки) Ой и ошибаетесь. Звездочки - не равно зубчатые колеса в планетарке) Мы намучились с малой точностью изготовления на эл.эрозии, а Вы лазером ))) Был собран опытный образец редуктора с незакаленными деталями, чисто проверить геометрию, отладить сборку. Так потом начальство этот редуктор сказало испытать в бою, как я не противился)) Помер за пару дней интенсивных нагрузок ))) Материал, термообработка и точности изготовления решают )
    • Snake 60
      @Тихоход  Ещё один вариант - изучать программирование и писать свою программу/макрос. Вот пример конфигуратора двери: https://www.youtube.com/watch?v=wv4HryWQBSk
    • mircomax81
      Посредством Diskcopy можно сделать адекватную копию на флоппи диск?
    • Andrey_kzn
      Да, ведь советовали автору вытащить жёсткий диск и сделать образ. Неужели самому не интересно, как устроен этот старый промкомпьютер? Там может стоять как жёсткий диск, так и CF-карта, или же Disc-on-chip или Disc-on-module.  Как-то очень давно, на подобном промышленном оборудовании (большая печатная машина) я не смог перенести  ПО с родной CF - карты на другую, такого же размера но другой фирмы. Была также станочная оболочка под досом.  Образ я делал Нортон гостом, развернул его на другую CF-карту без проблем. Машина загрузилась нормально и работала ровно 2 дня, на неродной CF-карте,  потом зависла, и отказалась загружаться. Пришлось вызывать сервисника. От него мы узнали, что нельзя просто так взять и заменить карту  - носитель системного ПО, на другую. А полезли мы туда, так как руководство захотело печатать отчёты по работе машины. В станочном ПО такая функция была. Вот только принтер надо было купить у фирмы - производителя этой самой машины. В попытках заставить работать другой принтер мы редактировали файл  AUTOEXEС.BAT, на предмет загрузки драйвера принтера, ничего не получилось, зато перестали открываться некоторые страницы станочного ПО.  Образ у нас был давно снят, и мы развернули его на другую карту памяти. Родную карту я трогать не стал (как чувствовал, что нельзя ). Сервисник восстановил ПО с архивной дискеты на родную карту памяти, и всё заработало. Дискеты с архивами ПО шли вместе с документацией к машине.  Там были дискеты с Досом, станочной оболочкой, параметрами приводов, программой ПЛК. Он же и предупредил нас о предельно аккуратном обращении с родной картой памяти, и посоветовал немедленно сделать образы с архивных дискет, что мы сразу и проделали.. Вот такой сюрприз от машины эпохи Дос.
    • Борман
    • gudstartup
      а ведь все работало...
×
×
  • Создать...