назначить материал ВСЕМ body в сборке макрос

Программирование для CATIA.

назначить материал ВСЕМ body в сборке макрос

Сообщение heze » 07 окт 2015 12:37

Доброго времени суток всем!
Помогите, пожалуйста решить такую практическую задачу - есть одна активная сборка с множеством деталей, которые в свою очередь содержат только один body каждая.
Нужно КАЖДОМУ body назначить материал (один и тот же всем body)

знаю как просто назначить материал главному body в парте

Код: Выделить всё
Sub CATMain()
 
Dim MaterialDocPath As String
Dim MaterialName As String, MaterialFamilyName As String

MaterialName = "Alu"
MaterialFamilyName = "Metal"
MaterialDocPath = "D:\material_Catalog.CATMaterial"

Dim oMaterial_document As Document
Set oMaterial_document = CATIA.Documents.Read(MaterialDocPath)
 
Dim oMaterial As Material
Set oMaterial = oMaterial_document.Families.Item(MaterialFamilyName).Materials.Item(MaterialName)
 
Dim oPartDocument As Document
Set oPartDocument = CATIA.ActiveDocument
 
Dim oRootPart As Part
Set oRootPart = oPartDocument.Part
 
Set oManager = oRootPart.GetItem("CATMatManagerVBExt")
 
Dim oMainBody As Body
Set oMainBody = oRootPart.MainBody
 
linkMode = 0
oManager.ApplyMaterialOnBody oMainBody, oMaterial, linkMode
 
End Sub

помогите дописать перебор по продукту
heze
Новичок
Новичок
 
Сообщения: 32
Зарегистрирован: 22 авг 2015 01:49

Re: назначить материал ВСЕМ body в сборке макрос

Сообщение timkaam » 14 окт 2015 10:16

Переборку по продукту можно сделать циклом:
Set prodDoc1 = CATIA.ActiveDocument
Set prod1 = prodDoc1.Product
Set prods1 = prod1.Products
For i = 1 To prods1.Count
Next
только как-то прийдётся выкинуть из перебора сборки. Может попробовать выбором твёрдых тел?
нет, через selection не хочет, хотя в программе можно без проблем, запускаешь поиск, по телам, и выбору назначаешь материал. Всё работает безупречно
Последний раз редактировалось timkaam 14 окт 2015 17:16, всего редактировалось 1 раз.
timkaam
Новичок
Новичок
 
Сообщения: 69
Зарегистрирован: 02 дек 2014 16:15

Re: назначить материал ВСЕМ body в сборке макрос

Сообщение timkaam » 14 окт 2015 10:24

У меня ругается на эту строчку:
Dim oMaterial As Material
но и без неё макрос идёт, спасибо, не знал как можно назначить материал)
timkaam
Новичок
Новичок
 
Сообщения: 69
Зарегистрирован: 02 дек 2014 16:15

Re: назначить материал ВСЕМ body в сборке макрос

Сообщение Wireless_Fidelity » 16 окт 2015 22:03

Вроде, так:

Код: Выделить всё
Dim bd as Body
For Each bd in oRootPart.Bodies
  oManager.ApplyMaterialBody bd,...
Next
Аватара пользователя
Wireless_Fidelity
Активный участник
Активный участник
 
Сообщения: 394
Зарегистрирован: 10 апр 2010 00:11


Вернуться в CAA-RADE

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6