- •Гоувпо «Воронежский государственный технический университет» м.И. Чижов а.Н. Юров
- •Введение
- •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. Работа с твердотельными моделями и объектами
- •6.1. Построение твердотельных деталей посредством операций вращения и выдавливания
- •6.2. Построение фасок и скруглений в твердотельных моделях прикладных библиотек
- •6.3. Построение объектов в цвете
- •6.4. Работа со сборками
- •6.5. Включение в сборочные узлы твердотельных моделей без истории построения
- •6.6. Построение сборочных узлов и компонентов с параметрами посредством диалога
- •Заключение
- •Библиографический список
- •3 94026 Воронеж, Московский просп., 14
6.3. Построение объектов в цвете
В сборочных единицах и в деталях твердотельные модели имеют свойства поверхности (поверхностей), определенные системой как базовые. Изменить опции отображения модели можно в дереве построения активного документа Компас 3D, выбрав в дереве построения детали по правому клику мыши раздела «Свойства» и указав ряд параметров цветопередачи для 3D объекта. Программным путем данная задача выполняется посредством вызова функции SetAdvancedColor, унаследованной от интерфейса IEntityPtr. На листинге приводится программная реализация указанной функции для изменения параметров цвета и визуальных свойств объекта.
рис. 33. Построения фаски 2,5x45º по контуру детали и на ребре отверстия |
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();
}
} } } }
Применить функцию можно и к поверхности модели, указав заданную грань, а не только к объекту в целом. Результат работы прикладной библиотеки по изменению визуальных свойств объекта показан на рис. 34.
Рис. 34. Изменение цвета с помощью функции SetAdvancedColor |