On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение



Не зарегистрирован
Рейтинг: 0
ссылка на сообщение  Отправлено: 03.11.05 10:32. Заголовок: Как назначить цвет детали?


Как программно назначить ЦВЕТ детали в AI10?

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 8 [только новые]





Не зарегистрирован
Рейтинг: 0
ссылка на сообщение  Отправлено: 07.11.05 09:53. Заголовок: Re:


Из Help'а Инвентора
The Material object supports the RenderStyle property that allows you to define which render style is associated with a material. By default, the render style applied to a part is the render style associated with the material. The sample below gets a specific Material object and sets its render style. Dim oPartDoc As PartDocument
Set oPartDoc = ThisApplication.ActiveDocument

' Get a specific material.
Dim oMaterial As Material
Set oMaterial = oPartDoc.Materials.Item("Aluminum-6061")

' Get a specific render style.
Dim oRenderStyle As RenderStyle
Set oRenderStyle = oPartDoc.RenderStyles.Item("Orange")

' Assign a render style.
oMaterial.RenderStyle = oRenderStyle




Спасибо: 0 
ПрофильЦитата Ответить



Не зарегистрирован
Рейтинг: 0
ссылка на сообщение  Отправлено: 07.11.05 10:13. Заголовок: Re:


Да , я бы еще добави перед Set oRenderStyle = oPartDoc.RenderStyles.Item("Orange")
Dim oControlDef As ControlDefinition

Set oControlDef = ThisApplication.CommandManager.ControlDefinitions.Item("AppRenderStyleComboCmd")
oControlDef.Execute
Что бы появился стандартный ComboBox ( если он уже есть в Tools'ах, то появиться его alias), где можно выбрать указателем цвета Инвентора ( As Material,.... и т.д).

Спасибо: 0 
ПрофильЦитата Ответить



Не зарегистрирован
Рейтинг: 0
ссылка на сообщение  Отправлено: 08.11.05 10:15. Заголовок: Re:


>Витек
Не получается.
Когда мы назначаем цвет детали он в редакторе стилей делается активным.
Я делал программно его активным в редакторе стилей, но на экране деталь не меняла свой цвет :(

Спасибо: 0 
ПрофильЦитата Ответить



Не зарегистрирован
Рейтинг: 0
ссылка на сообщение  Отправлено: 08.11.05 11:30. Заголовок: Re:


Я так понимаю - нужно пробежаться по всей колекции материалов для активного документа (ipt ), найти активный в данный момент материал ( For Each oNewMaterial In oBMaterial) и для него выбрать свое рендеринг( цвет)

Строчка:
Set oNewMaterial = ListDoc.Materials.Add(Mater, Den)

ListDoc.ComponentDefinition.Material = oNewMaterial
Это для помещения в колекцию нового материала.

Бывает наоборот , если поставить цвет Default , а потом менять материал , то цвет по мере изменения типа материала - Не меняется.

Все остальное должно работать.
Может функция UpdateFromGlobal() , если вы ее ипользуете, переобозначет ваши изменения?

Мой код:

Public ListDoc As PartDocument
.....
Set ListDoc = ThisApplication.ActiveDocument
......

Public Sub CreateMaterial(Mater As String, Den As Double) ' имя материала, плотность
' Set a reference to the part document.
' This assumes a part document is active.
' Create a new material.
Dim oNewMaterial As Material
Dim oBMaterial As Materials
Set oBMaterial = ListDoc.Materials
For Each oNewMaterial In oBMaterial
If oNewMaterial.Name Like Mater Then ' Если создаваемый материал уже есть , то только выбрать цвет мат.
GoTo IsMat
End If
Next oNewMaterial
Set oNewMaterial = ListDoc.Materials.Add(Mater, Den)

ListDoc.ComponentDefinition.Material = oNewMaterial

IsMat:
Set oControlDef = ThisApplication.CommandManager.ControlDefinitions.Item("AppRenderStyleComboCmd") ' 'цвет
oControlDef.Execute
oControlDef.Enabled = True

End Sub


Бывает наоборот , если поставить цвет Default , а потом менять материал , то цвет по мере изменения типа материала - Не меняется.

Все остальное должно работать.
Может функция UpdateFromGlobal() , если вы ее ипользуете, переобозначет ваши изменения?

Мой код:

Public ListDoc As PartDocument
.....
Set ListDoc = ThisApplication.ActiveDocument
......

Public Sub CreateMaterial(Mater As String, Den As Double) ' имя материала, плотность
' Set a reference to the part document.
' This assumes a part document is active.
' Create a new material.
Dim oNewMaterial As Material
Dim oBMaterial As Materials
Set oBMaterial = ListDoc.Materials
For Each oNewMaterial In oBMaterial
If oNewMaterial.Name Like Mater Then ' Если создаваемый материал уже есть , то только выбрать цвет мат.
GoTo IsMat
End If
Next oNewMaterial
Set oNewMaterial = ListDoc.Materials.Add(Mater, Den)

ListDoc.ComponentDefinition.Material = oNewMaterial

IsMat:
Set oControlDef = ThisApplication.CommandManager.ControlDefinitions.Item("AppRenderStyleComboCmd") ' 'цвет
oControlDef.Execute
oControlDef.Enabled = True

End Sub


Спасибо: 0 
ПрофильЦитата Ответить



Не зарегистрирован
Рейтинг: 0
ссылка на сообщение  Отправлено: 08.11.05 11:56. Заголовок: Re:


Тут я два раза части с кодом при ответе скопировал...извини.

Спасибо: 0 
ПрофильЦитата Ответить



Не зарегистрирован
Рейтинг: 0
ссылка на сообщение  Отправлено: 08.11.05 12:00. Заголовок: Re:


brigval пишет:
цитата
Я делал программно его активным в редакторе стилей

так я думаю нельзя , активным но не измененым ( присвоенным через Set для ListDoc.ComponentDefinition.Material )

Спасибо: 0 
ПрофильЦитата Ответить



Не зарегистрирован
Рейтинг: 0
ссылка на сообщение  Отправлено: 08.11.05 14:36. Заголовок: Re:


У меня получилось.
Твой самый первый пример из хелпа не включил следующие за ним несколько строк кода. Именно они и сработали. Спасибо, Витек.

Спасибо: 0 
ПрофильЦитата Ответить



Не зарегистрирован
ссылка на сообщение  Отправлено: 03.12.08 10:50. Заголовок: cсдраствуйте.Уменя т..


cсдраствуйте.Уменя трабл и я незнаю как его решить.....

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

помогите плз,т.к. надо нагрузки проверить а материал неназначен........

Спасибо: 0 
Цитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 3
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация вкл, правка нет