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

изменение цвета линий на видах для каждой детали (сборки)


Майор вихрь

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

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

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

 

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

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


круто. спасибо большое.

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

но, тоже хорошо )))

 

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

то на видах будет цвет самих деталей. к сожалению это не пойдёт.... 

может есть ещё варианты?

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

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

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

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

если зайти в каждую сборку и переопределить цвет каждой детали - все работает. но это очень длинный путь получается.

 

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

вот это место

   Dim occ As ComponentOccurrence

         ' Get the render style of the occurrence.
         Dim color As RenderStyle
         Dim sourceType As StyleSourceTypeEnum
         Set color = occ.GetRenderStyle(sourceType)

т.е. вопрос в строке Set color = occ.GetRenderStyle(sourceType)... 

 

помогите пожалуйста.

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

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

 

Set color = occ.ContainingOccurrence.GetRenderStyle(sourceType)

 

это работает для сборок, глубиной в одно вложение... уже лучше конечно.

но если в эту сборку 1 уровня входит ещё одна сборка 2 уровня, то для её деталей данная строка кода даёт обратно свойства именно сборки второго уровня.

посмотрел окне свойств параметры сборки 2 уровня. она имеет ветку ContainingOccurrence со свойствами свойствами и там же вложением ещё ветка ContainingOccurrence со свойствами сборки 1 уровня.

 

т.е. все же мне перебором не найти эту команду, возвращающую имеено сборку верхнего уровня для любой входящей в неё делали любой степени вложения....

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

возможно конечно не самое красивое решение, но работает.

 

Set color = occ.OccurrencePath.Item(1).GetRenderStyle(sourceType)

берёт цвет сборки верхнего уровня для всех входящих деталей в любых уровнях вложения.

 

ещё пришлось добавить в код отключение обновления 

ThisApplication.ScreenUpdating = False

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

а с отключением обновления все получилось.

 

короче. теперь все работает как задумано. ))))

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

эх... печаль беда.

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

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

 

прям нужен инструментарий разнесения по слоям (или по цветам на сборке). хоть встроенная история, хоть внешняя.

 

Возможно, обрабатывает долго из за моего метода 

Set color = occ.OccurrencePath.Item(1).GetRenderStyle(sourceType)

 

А может, просто от того, что в цикле перебирает все детали на видах.

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

 

может кто все же может помочь?

1.jpg

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

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

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

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

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

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

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

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

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

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

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




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