Главная » Delphi, OLE, САПР » Операция «выдавливание вращением» – КОМПАС в DELPHI

0

Параметры операции «выдавливание вращением» (ksBaseRotatedDefinition)

Параметры операции «выдавливание вращением» описываются интерфейсом ksBaseRotatedDefinition. Этот интерфейс возвращает метод GetDefinition() интерфейса ksEntity, описывающего эту операцию. Основным свойством интерфейса ksBaseRotatedDefinition является свойство directionType.

directionType – тип направления выдавливания. Данное свойство аналогично свойству directionType интерфейса ksBaseExtrusionDefinition (см. главу 54).

Теперь рассмотрим основные методы интерфейса ksBaseRotatedDefinition.

GetSketch() – возвращает интерфейс ksEntity, описывающий эскиз операции «выдавливание вращением».

SetSideParam – устанавливает параметры операции «выдавливание вращением». Ниже представлен прототип этого метода.

SetSideParam(

side1: WordBool; //направление вращения angle: Double   //угол вращения

): WordBool;

Параметр side1 задает направление вращения. Если значение этого параметра равно TRUE, то имеет место вращение в прямом направлении. Если же значение этого параметра равно FALSE, то имеет место вращение в обратном направлении.

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

В случае успеха метод SetSideParam возвращает значение TRUE.

SetSketch – устанавливает эскиз операции «выдавливание вращением». В качестве единственного параметра данный метод принимает интерфейс ksEntity, описывающий новый эскиз. В случае успеха метод SetSketch возвращает значение TRUE.

Пример

Ниже приводится ключевой фрагмент исходного текста программы, демонстрирующей построение операции «выдавливание вращением».

const

pTop_Part = -1;

o3d_planeXOY = 1;

o3d_sketch  = 5;

o3d_baseRotated = 27;

dtNormal = 0;

vm_Shaded = 3;

var

kompas: KompasObject; Document3D: ksDocument3D; Part: ksPart; EntityPlaneXOY: ksEntity;

EntitySketch,EntityRotated: ksEntity; SketchDefinition: ksSketchDefinition; BaseRotatedDefinition: ksBaseRotatedDefinition; Document2D : ksDocument2D;

begin

//Подключаемся к КОМПАСу

kompas:=KompasObject(CreateOleObject(‘Kompas.Application.5′));

//Получаем интерфейс документа-модели

Document3D:=ksDocument3D(kompas.Document3D());

//Создаем документ-модель

Document3D.Create(FALSE,true);

//Получаем интерфейс компонента

Part:= ksPart(Document3D.GetPart(pTop_Part));

//Получаем интерфейс объекта "плоскость XOY"

EntityPlaneXOY:=ksEntity(Part.GetDefaultEntity(o3d_planeXOY));

///////////////////////////////////////////////

//Эскиз

///////////////////////////////////////////////

//Получаем интерфейс объекта "Эскиз"

EntitySketch:=ksEntity(Part.NewEntity(o3d_sketch));

//Получаем интерфейс параметров эскиза

SketchDefinition:=ksSketchDefinition(EntitySketch.GetDefinition());

//Устанавливаем плоскость XOY базовой для эскиза

SketchDefinition.SetPlane(EntityPlaneXOY);

//Создаем эскиз

EntitySketch.Create();

//Входим в режим редактирования эскиза

Document2D:=ksDocument2D(SketchDefinition.BeginEdit());

//Строим окружность

Document2D.ksCircle(-30,0,15,1);

//Строим осевую линию

Document2D.ksLineSeg(0,-15,0,15,3);

//Выходим из режима редактирования эскиза

SketchDefinition.EndEdit();

////////////////////////////////////////////////

//Операция "выдавливание вращением"

////////////////////////////////////////////////

//Получаем интерфейс объекта "операция выдавливание вращением"

EntityRotated:=ksEntity(Part.NewEntity(o3d_baseRotated));

//Получаем интерфейс параметров операции "выдавливание вращением"

BaseRotatedDefinition:=ksBaseRotatedDefinition(EntityRotated.GetDefinition());

//Направление выдавливания – прямое

BaseRotatedDefinition.directionType:=dtNormal;

//Устанавливаем параметры операции

BaseRotatedDefinition.SetSideParam(TRUE,90);

//Устанавливаем эскиз операции

BaseRotatedDefinition.SetSketch(EntitySketch);

//Создаем операцию

EntityRotated.Create();

//Включаем полутоновое отображение модели

Document3D.drawMode:=vm_Shaded;

end;

//Включаем отображение каркаса

Document3D.shadedWireframe:=TRUE;

//Делаем КОМПАС видимым

kompas.Visible:=true;

На рисунке ниже показан результат работы этой программы.

Источник: Норсеев Сергей, «РАЗРАБОТКА ПРИЛОЖЕНИЙ ПОД КОМПАС В DELPHI»

По теме:

  • Комментарии