Главная » Delphi, OLE, САПР » Эскиз – КОМПАС в DELPHI

0

 

Параметры эскиза (ksSketchDefinition)

Интерфейс ksSketchDefinition служит для описания параметров объекта

«эскиз». Получить этот интерфейс можно с помощью метода GetDefinition() интерфейса ksEntity, описывающего эскиз. Рассмотрим основные методы интерфейса ksSketchDefinition.

BeginEdit() – открывает режим редактирования эскиза. В случае успеха данный метод возвращает интерфейс ksDocument2D, с помощью которого и

осуществляется построение самого эскиза. Выполнение геометрических построений с помощью интерфейса ksDocument2D мы подробно рассматривали в главах 8 – 21.

EndEdit() – закрывает режим редактирования эскиза. В случае успеха возвращает значение TRUE.

GetLocation – возвращает смещение центра системы координат эскиза относительно проекции центра системы координат модели на плоскость эскиза. В случае успеха возвращает значение TRUE. Ниже приводится прототип этого метода.

GetLocation(

var x: Double; //Смещение вдоль оси x

var y: Double //Смещение вдоль оси y

): WordBool

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

SetLocation – устанавливает новое смещение центра системы координат эскиза относительно проекции центра системы координат модели на плоскость эскиза. В случае успеха данный метод возвращает значение TRUE.

Ниже приводится прототип этого метода.

SetLocation(

x: Double;  //новое смещение вдоль оси x

y: Double   //новое смещение вдоль оси y

): WordBool;

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


Пример

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

const

pTop_Part   = -1;

o3d_planeXOY = 1;

o3d_sketch  = 5;

…………………………

Var

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

EntityDraw, EntityPlane: ksEntity;

SketchDefinition: ksSketchDefinition; Document2D : ksDocument2D;

……………………………

Begin

……………………………

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

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

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

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

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

Document3D.Create(FALSE,TRUE);

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

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

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

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

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

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

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

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

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

SketchDefinition.SetPlane(EntityPlane);

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

EntityDraw.Create();

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

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

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

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

//Выходим из режима редактирования эскиза SketchDefinition.EndEdit(); kompas.Visible:=true;

end;

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

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

По теме:

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