- •Введение
- •1. Создание проектов прикладных библиотек
- •2. Работа с графическими объектами на плоскости
- •2.1. Функции для работы с графическими документами
- •2.2. Функции построения составных объектов
- •2.3. Функции ввода параметров
- •3. Методы и их составляющие для проведения вспомогательных построений
- •3.1. Математические функции
- •3.2. Функции вычисления пересечений
- •3.3. Функции вычисления длин, расстояний, углов
- •4. Работа с базами данных
- •5. Примеры проектирования библиотек в 2d
- •5.1. Построение графиков функций
- •5.2. Построение фигур
- •5.3. Построение эскизов
- •6. Твердотельное моделирование объектов в компас 3d
- •6.1. Построение твердотельных деталей посредством операций вращения и выдавливания
- •Элементы системы координат
- •Элементы детали
- •Конструктивные элементы
- •Операции
- •6.2. Построение фасок и скруглений в твердотельных моделях прикладных библиотек
- •6.3. Построение объектов в цвете
- •6.4. Работа со сборками
- •6.5. Включение в сборочные узлы твердотельных моделей без истории построения
- •6.6. Построение сборочных узлов и компонентов с параметрами посредством диалога
- •7. Пример Разработки твердотельных моделей компонентов и Сборочного узла направляющего патрубка
- •Заключение
- •Библиографический список
- •Оглавление
- •3 94026 Воронеж, Московский просп., 14
6.3. Построение объектов в цвете
В сборочных единицах и в деталях твердотельные модели имеют свойства поверхности (поверхностей), определенные системой как базовые. Изменить опции отображения модели можно в дереве построения активного документа Компас 3D, выбрав в дереве построения детали по правому клику мыши раздела «Свойства» и указав ряд параметров цветопередачи для 3D объекта. Программным путем данная задача выполняется посредством вызова функции SetAdvancedColor, унаследованной от интерфейса IEntityPtr. На листинге приводится программная реализация указанной функции для изменения параметров цвета и визуальных свойств объекта.
void
WorkWithColour ( IPartPtr& part )
{IEntityPtr
entitySketch( part->NewEntity(o3d_sketch), false ); if
( entitySketch )
{
ISketchDefinitionPtr sketchDefinition( IUnknownPtr(
entitySketch->GetDefinition(), false) ); if
( sketchDefinition ) {
IEntityPtr
basePlane( part->GetDefaultEntity( o3d_planeYOZ ), false );
sketchDefinition->SetPlane(
basePlane ); //
Создадим
эскиз
entitySketch->Create(); //
Войти в режим редактирования эскиза
if
( sketchDefinition->BeginEdit()
) { reference
p;
//Определение
контура Contour(1);
LineSeg(119,15,171,-92,1); LineSeg(171,-92,321,-92,1); LineSeg(321,-92,321,-87,1); LineSeg(321,-87,219,15,1); LineSeg(219,15,119,15,1); p
= EndObj(); Circle(219,-15,10,1); //Выйти
из режима редактирования эскиза
sketchDefinition->EndEdit(); }
//Оперция
выдавливани IEntityPtr
entityExtrusion( part->NewEntity( o3d_baseExtrusion ), false ); if
(entityExtrusion) { //
Интерфейс базовой операции выдавливания IBaseExtrusionDefinitionPtr
extrusionDefinition( IUnknownPtr( entityExtrusion->GetDefinition(),
false ) ); if
( extrusionDefinition ) { //
Установка параметров операции
выдавливания
extrusionDefinition->SetDirectionType(
dtBoth );
//
Параметры
выдавливания
extrusionDefinition->SetSideParam(
true,
etBlind,
20,
0,
false
);
extrusionDefinition->SetSketch(
entitySketch );
entityExtrusion->SetAdvancedColor(
RGB(171,219,228),
//Цветовая составляющая значений от 0
до 255
//красного,
зеленого и синего цветов 0.5,
// Общий свет 0.5,
// Диффузия 0.3,
// Зеркальность 0.5,
// Блеск 1,
// Прозрачность 0.5
); //Излучение entityExtrusion->Create();
}
} } } }
Применить функцию можно и к поверхности модели, указав заданную грань, а не только к объекту в целом. Результат работы прикладной библиотеки по изменению визуальных свойств объекта показан на рисунке 38.
Рис. 38. Изменение цвета с помощью функции SetAdvancedColor |