Главная » Delphi, OLE, САПР » Уклон – КОМПАС в DELPHI

0

Параметры уклона (ksInclineDefinition)

Параметры уклона задаются с помощью интерфейса ksInclineDefinition. Его возвращает метод GetDefinition() интерфейса ksEntity, описывающего уклон. Рассмотрим свойства интерфейса ksInclineDefinition.

angle – угол уклона. Представляет собой угол между наклоняемой гранью и нормалью к плоскости основания уклона.

direction – направление уклона. Если значение этого свойства равно TRUE, то имеет место уклон наружу. Если же значение этого свойства равно FALSE, то имеет место уклон внутрь.

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

FaceArray() – возвращает интерфейс ksEntityCollection (см. главу 63) массива уклоняемых граней (o3d_face).

GetPlane() – возвращает интерфейс ksEntity, описывающий плоскость основания уклона.

SetPlane – устанавливает новую плоскость основания уклона. В качестве единственного параметра принимает интерфейс ksEntity, описывающий устанавливаемую плоскость. В случае успеха метод возвращает значение TRUE.

Пример

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

const

pTop_Part = -1;

o3d_planeXOY = 1;

o3d_sketch  = 5;

o3d_face    = 6;

o3d_baseExtrusion = 24;

o3d_incline = 42;

etBlind    = 0;

vm_Shaded  = 3;

var

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

EntitySketch, EntityPlaneXOY: ksEntity;

EntityExtrusion,EntityIncline: ksEntity; EntityCollectionPart,EntityCollectionIncline:ksEntityCollection;

SketchDefinition: ksSketchDefinition; Document2D : ksDocument2D;

BaseExtrusionDefinition: ksBaseExtrusionDefinition; InclineDefinition: ksInclineDefinition;

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(0,0,50,1);

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

SketchDefinition.EndEdit();

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

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

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

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

EntityExtrusion:=ksEntity(Part.NewEntity(o3d_baseExtrusion));

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

BaseExtrusionDefinition:=ksBaseExtrusionDefinition(EntityExtrusion.GetDefinition());

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

BaseExtrusionDefinition.SetSideParam(TRUE,etBlind,70,0,TRUE);

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

BaseExtrusionDefinition.SetSketch(EntitySketch);

//Создаем операцию выдавливания

EntityExtrusion.Create();

//Получаем массив граней детали

EntityCollectionPart:=ksEntityCollection(Part.EntityCollection(o3d_face));

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

//Уклон

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

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

EntityIncline:=ksEntity(Part.NewEntity(o3d_incline));

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

InclineDefinition:=ksInclineDefinition(EntityIncline.GetDefinition());

//Угол уклона

InclineDefinition.angle := 15;

//Уклон наружу

InclineDefinition.direction := TRUE;

//Получаем массив уклоняемых граней

EntityCollectionIncline:=EntityCollection(InclineDefinition.FaceArray()); EntityCollectionIncline.Clear();

//Заполняем массив уклоняемых граней

EntityCollectionIncline.Add(EntityCollectionPart.GetByIndex(0));

//Устанавливаем основание уклона

InclineDefinition.SetPlane(EntityPlaneXOY);

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

EntityIncline.Create();

//Устанавливаем полутоновое изображение модели

Document3D.drawMode:=vm_Shaded;

end;

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

Document3D.shadedWireframe:=TRUE;

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

kompas.Visible:=true;

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

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

По теме:

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