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

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


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

Продублирую сообщение из другой темы, тк вроде здесь выкладываются все макросы.

 

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

Белый цвет при печати "не печатается".

 

Например (только здесь белый цвет показан зеленым, чтоб на всех фонах было видно =) ):

А4 | - | АБВГ.123456.789       |

А4 | - | АБВГ.123456.789-01  |

А4 | - | АБВГ.123456.789-02  |

 

Если у вас нет листа с названием "SP1", то просто закоментите строчку:

swDraw.ActivateSheet ("SP1")

 

Если нужно "красить" только основную часть, то закоментите две строчки в двух местах:

swTable.Text(intRow, 0) = "<FONT color=0x00ffffff>" & m0 & "<FONT color=0x00000000>"
swTable.Text(intRow, 1) = "<FONT color=0x00ffffff>" & m1 & "<FONT color=0x00000000>"

 

RecolorConfiguration.zip

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


10 часов назад, Docuk1 сказал:

Продублирую сообщение из другой темы, тк вроде здесь выкладываются все макросы.

 

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

Белый цвет при печати "не печатается".

 

Например (только здесь белый цвет показан зеленым, чтоб на всех фонах было видно =) ):

А4 | - | АБВГ.123456.789       |

А4 | - | АБВГ.123456.789-01  |

А4 | - | АБВГ.123456.789-02  |

 

Если у вас нет листа с названием "SP1", то просто закоментите строчку:

swDraw.ActivateSheet ("SP1")

 

Если нужно "красить" только основную часть, то закоментите две строчки в двух местах:

swTable.Text(intRow, 0) = "<FONT color=0x00ffffff>" & m0 & "<FONT color=0x00000000>"
swTable.Text(intRow, 1) = "<FONT color=0x00ffffff>" & m1 & "<FONT color=0x00000000>"

 

RecolorConfiguration.zip 9 \u041a\u0431 · 2 скачивания

А зачем это нужно? 

Если так в госте написано - тогда подумайте: почему? 

Я думаю что это сделано чтобы меньше было ручного труда. У вас же автомат. Что вам экономить? Тонер в принтере? 

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

А зачем это нужно? 

Если так в госте написано - тогда подумайте: почему? 

Я думаю что это сделано чтобы меньше было ручного труда. У вас же автомат. Что вам экономить? Тонер в принтере? 

Почему, это давно всем известно.

Если есть вопросы по ЕСКД, лучше задавать их в соответствующей теме, придерживаясь элементарных правил форума.

Чтоб не захламлять тему.

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

Пришел к нам новый сотрудник, осваивает солид и вдруг спрашивает, а как раскрасить детали в сборке в рандомные цвета! 

А в самом деле как, есть ли такая функция?

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

Пришел к нам новый сотрудник, осваивает солид и вдруг спрашивает, а как раскрасить детали в сборке в рандомные цвета! 

А в самом деле как, есть ли такая функция?

не уверен. 

но думаю написать программу- не сложно

только зачем?

 

Думаю алгоритм такой:

получить дерево

выбрать из него только детали

сгенерировать количество цветов

присвоить к деталям цвета в массиве

пройти дерево сравнивая его с массивом

использовать какой нибудь метод addcolourinpart добавить сгенерированные цвета

 

 

6 часов назад, brigval сказал:

Почему, это давно всем известно.

Если есть вопросы по ЕСКД, лучше задавать их в соответствующей теме, придерживаясь элементарных правил форума.

Чтоб не захламлять тему.

нет, вопросов по ескд у меня нет.

я просто показываю товарищу иную точку зрения на вопрос.

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

 

ЕСКД предписывает не показывать базовую часть обозначения исполнений в спецификациях.

Вы спрашиваете:

17 часов назад, Sturmann сказал:

А зачем это нужно?

 

А потом отвечаете, что

 

23 минуты назад, Sturmann сказал:

вопросов по ескд у меня нет.

 

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

Будьте внимательны! )

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

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

А в самом деле как, есть ли такая функция?

Встроенной функции нет, но если мне не сильно изменяет память, что-то подобное попадалось на глаза на одном из популярных забугорных ресурсов :g:

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

осваивает солид и вдруг спрашивает, а как раскрасить детали в сборке в рандомные цвета! 

А в самом деле как, есть ли такая функция?

В меню Инструменты-Вычислить-Визуализация сборки. Можно щёлкнуть цветовую шкалу, чтобы включить/отключить раскраску.

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

Краткое описание инструмента Визуализация сборки - 2012 - Справка по SOLIDWORKS

...

3 hours ago, Sturmann said:

не уверен. но думаю написать программу- не сложно

Ну так напиши, раз несложно, принеси пользу людям :)

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

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

Пришел к нам новый сотрудник, осваивает солид и вдруг спрашивает, а как раскрасить детали в сборке в рандомные цвета! 

А в самом деле как, есть ли такая функция?

Sub main()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swElement As Object
Dim vElementArr As Variant
Dim vElement As Variant
Dim vMatProp As Variant
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
vMatProp = swModel.MaterialPropertyValues
'Get all elements
If swModel.GetType = swDocPART Then
vElementArr = swModel.GetBodies2(swAllBodies, False)
For Each vElement In vElementArr
Set swElement = vElement
Randomize
vMatProp(0) = Rnd 'Red
vMatProp(1) = Rnd 'Green
vMatProp(2) = Rnd 'Blue
vMatProp(3) = Rnd / 2 + 0.5 'Ambient
vMatProp(4) = Rnd / 2 + 0.5 'Diffuse
vMatProp(5) = Rnd 'Specular
vMatProp(6) = Rnd * 0.9 + 0.1 'Shininess
swElement.MaterialPropertyValues2 = vMatProp
Next
ElseIf swModel.GetType = swDocASSEMBLY Then
vElementArr = swModel.GetComponents(False)
For Each vElement In vElementArr
Set swElement = vElement
Randomize
vMatProp(0) = Rnd 'Red
vMatProp(1) = Rnd 'Green
vMatProp(2) = Rnd 'Blue
vMatProp(3) = Rnd / 2 + 0.5 'Ambient
vMatProp(4) = Rnd / 2 + 0.5 'Diffuse
vMatProp(5) = Rnd 'Specular
vMatProp(6) = Rnd * 0.9 + 0.1 'Shininess
swElement.MaterialPropertyValues = vMatProp
Next
ElseIf swModel.GetType = swDocDRAWING Then
MsgBox ("You can only apply random colors to part bodies or assembly components.")
Exit Sub
End If
'Redraw to see new color
swModel.GraphicsRedraw2
End Sub

Нашел вот здесь.

Из минусов: красит детали тулбокса и не понимает конфигурации, то есть деталь и все ее конфигурации будут одинаковым цветом.

Тестил в SW 2022 - работает.

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

В меню Инструменты-Вычислить-Визуализация сборки. Можно щёлкнуть цветовую шкалу, чтобы включить/отключить раскраску.

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

Краткое описание инструмента Визуализация сборки - 2012 - Справка по SOLIDWORKS

...

Ну так напиши, раз несложно, принеси пользу людям :)

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

визуализация сборки - это не то

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

6 часов назад, Snake 60 сказал:

Sub main()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swElement As Object
Dim vElementArr As Variant
Dim vElement As Variant
Dim vMatProp As Variant
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
vMatProp = swModel.MaterialPropertyValues
'Get all elements
If swModel.GetType = swDocPART Then
vElementArr = swModel.GetBodies2(swAllBodies, False)
For Each vElement In vElementArr
Set swElement = vElement
Randomize
vMatProp(0) = Rnd 'Red
vMatProp(1) = Rnd 'Green
vMatProp(2) = Rnd 'Blue
vMatProp(3) = Rnd / 2 + 0.5 'Ambient
vMatProp(4) = Rnd / 2 + 0.5 'Diffuse
vMatProp(5) = Rnd 'Specular
vMatProp(6) = Rnd * 0.9 + 0.1 'Shininess
swElement.MaterialPropertyValues2 = vMatProp
Next
ElseIf swModel.GetType = swDocASSEMBLY Then
vElementArr = swModel.GetComponents(False)
For Each vElement In vElementArr
Set swElement = vElement
Randomize
vMatProp(0) = Rnd 'Red
vMatProp(1) = Rnd 'Green
vMatProp(2) = Rnd 'Blue
vMatProp(3) = Rnd / 2 + 0.5 'Ambient
vMatProp(4) = Rnd / 2 + 0.5 'Diffuse
vMatProp(5) = Rnd 'Specular
vMatProp(6) = Rnd * 0.9 + 0.1 'Shininess
swElement.MaterialPropertyValues = vMatProp
Next
ElseIf swModel.GetType = swDocDRAWING Then
MsgBox ("You can only apply random colors to part bodies or assembly components.")
Exit Sub
End If
'Redraw to see new color
swModel.GraphicsRedraw2
End Sub

Нашел вот здесь.

Из минусов: красит детали тулбокса и не понимает конфигурации, то есть деталь и все ее конфигурации будут одинаковым цветом.

Тестил в SW 2022 - работает.

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

 

6 часов назад, Snake 60 сказал:

ElseIf swModel.GetType = swDocASSEMBLY Then vElementArr = swModel.GetComponents(False) For Each vElement In vElementArr Set swElement = vElement

вот тут нужно добавить менеджер конфигураций  и уже с помощью него пройти все конфигурации и присвоить внешние виды

6 часов назад, SWX сказал:

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

интересно как вы это так определили? Вашим обычным методом- "методом научного тыка"?

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

Если не знать как строить модель руками то как можно писать программу которая будет это делать автоматически? Ждем вашего пояснения.

 

 

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

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

интересно как вы это так определили? Вашим обычным методом- "методом научного тыка"?

Ну да, я потыкал сообщения от ника @Sturmann, а в этом сообщении так и ещё одно подтверждение моих слов

9 hours ago, Sturmann said:

визуализация сборки - это не то

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

 

Ничего не пропадёт. Визуализации можно сохранять в "Состояния отображения" (нажать треугольник справа от названий столбцов) и затем переключаться между ними. И да, состояния отображения в чертежах можно использовать

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

 

Чтобы назначить другой цвет компоентам - ПКМ по слайдеру

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

 

@Sturmann без обид, если по теме сказать нечего, пройди лучше молча мимо

On 2/5/2022 at 3:19 AM, brigval said:

Чтоб не захламлять тему

 

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

Ну да, я потыкал сообщения от ника @Sturmann, а в этом сообщении так и ещё одно подтверждение моих слов

 

Ничего не пропадёт. Визуализации можно сохранять в "Состояния отображения" (нажать треугольник справа от названий столбцов) и затем переключаться между ними. И да, состояния отображения в чертежах можно использовать

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

 

Чтобы назначить другой цвет компоентам - ПКМ по слайдеру

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

 

@Sturmann без обид, если по теме сказать нечего, пройди лучше молча мимо

 

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

даже если добавляется новое состояние отображения то только для этой сборки. для компонентов нет ничего))))

смотрите в корень проблемы.

Ссылка на сообщение
Поделиться на других сайтах
28.04.2014 в 07:06, streamdown сказал:

Программа раскраски сборки или многотельной детали. Без привязки к версии Solidworks (работает с любой версией, начиная с 2006).

http://www.streamdivision.com/raskraska-sborki/

Не могу скачать данный макрос. Спасибо БОЛЬШОЕ за помощь!

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

Не могу скачать данный макрос. Спасибо БОЛЬШОЕ за помощь!

Надо денежку за сайт занести. 

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

Сайт автора переехал на домен RU Только там нет этого макроса

Ссылка на сообщение
Поделиться на других сайтах
On 2/5/2022 at 1:21 PM, Snake 60 said:

Нашел вот здесь.

Из минусов: красит детали тулбокса и не понимает конфигурации, то есть деталь и все ее конфигурации будут одинаковым цветом

Макрос прикольный, но уровень детали лучше не трогать - мало ли в какой ещё сборке эта деталь всплывёт в радужной раскраске. Вот для сборки децл передаланый вариант - сначала добавляет связанное с конфигом состояние отображения, затем раскрашивает компоненты. Раскраска - это увлекательно )

Spoiler

Option Explicit
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swElement As Object
Dim vElementArr As Variant
Dim vElement As Variant
Dim vMatProp As Variant
Dim swModelDocExt As SldWorks.ModelDocExtension
Dim swConfigMgr As SldWorks.ConfigurationManager
Dim swConfig As SldWorks.Configuration
Dim status As Boolean
Dim dpName As String

Sub main()
    dpName = Date & "/" & Time
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swModelDocExt = swModel.Extension
Set swConfigMgr = swModel.ConfigurationManager
swConfigMgr.LinkDisplayStatesToConfigurations = True
vMatProp = swModel.MaterialPropertyValues

If swModel.GetType <> swDocASSEMBLY Then
MsgBox ("You can only apply random colors to assembly components.")
Exit Sub
End If
    swModelDocExt.LinkedDisplayState = True
    Set swConfig = swModel.GetActiveConfiguration
    status = swConfig.CreateDisplayState(dpName)
vElementArr = swModel.GetComponents(False)
For Each vElement In vElementArr
Set swElement = vElement
Randomize

vMatProp(0) = Rnd 'Red
vMatProp(1) = Rnd 'Green
vMatProp(2) = Rnd 'Blue
vMatProp(3) = Rnd / 2 + 0.5 'Ambient
vMatProp(4) = Rnd / 2 + 0.5 'Diffuse
vMatProp(5) = Rnd 'Specular
vMatProp(6) = Rnd * 0.9 + 0.1 'Shininess
swElement.MaterialPropertyValues = vMatProp
Next
swModel.ForceRebuild3 True
End Sub

 

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

Макрос прикольный, но уровень детали лучше не трогать - мало ли в какой ещё сборке эта деталь всплывёт в радужной раскраске

Он же и так не красит на уровне деталей. Красит только на уровне сборки, что хорошо, можно легко удалить потом. А плохо что одинаковые по обозначению детали красит в разные цвета, по логике хотелось бы чтоб одинаковые детали (файлы) были одного цвета. Сможете сие реализовать?))

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

уровень детали лучше не трогать - мало ли в какой ещё сборке эта деталь всплывёт в радужной раскраске

Он же и так не красит на уровне деталей. Красит только на уровне сборки, что хорошо

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

13 minutes ago, DuS said:

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

В визуализации сборки ПКМ по цветовой шкале - Группировать идентичные и потом создать состояние отображения, как выше показывал

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

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

В визуализации сборки ПКМ по цветовой шкале - Группировать идентичные и потом создать состояние отображения, как выше показывал

В принципе тоже удобно.

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

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

В визуализации сборки ПКМ по цветовой шкале - Группировать идентичные и потом создать состояние отображения, как выше показывал

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

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

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

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

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

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

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

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

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

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

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

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

    • tiomat
    • zheka-8.196



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