Главная » Delphi, OLE, САПР » Технические требования – КОМПАС в DELPHI

0

Прямоугольная область (ksRectParam)

Интерфейс ksRectParam служит для определения прямоугольной области. Получить данный интерфейс можно с помощью метода GetParamStruct интерфейса KompasObject. Для этого в качестве единственного параметра ему  нужно  передать значение константы ko_RectParam. Свойств у интерфейса ksRectParam нет, поэтому сразу переходим к рассмотрению его методов.

GetpBot() – возвращает интерфейс ksMathPointParam (см. главу 29) левой нижней точки задаваемой прямоугольной области.

SetpBot – устанавливает новую левую нижнюю точку прямоугольной области. Интерфейс параметров устанавливаемой точки (ksMathPointParam) передается в качестве единственного параметра данного метода. В случае успеха он возвращает значение TRUE.

GetpTop() – возвращает интерфейс ksMathPointParam (см. главу 29) правой верхней точки задаваемой прямоугольной области.

SetpTop – устанавливает новую правую верхнюю точку прямоугольной области. Интерфейс параметров устанавливаемой точки (ksMathPointParam) передается в качестве единственного параметра данного метода. В случае успеха он возвращает значение TRUE.

Вывод строки

Вывод строки осуществляется с помощью метода ksTextLine интерфейса ksDocument2D. У данного метода всего один параметр – это либо интерфейс компоненты строки ksTextItemParam (см. главу 5), либо интерфейс строки ksTextLineParam (см. главу 40). Поскольку интерфейс ksTextItemParam намного проще своего «собрата», то использовать мы будем именно его.

В случае успеха метод ksTextLine возвращает значение 1, а в случае ошибки – значение нуль.

Возникает вопрос: может ли метод ksTextLine служит альтернативой методу ksText (см. главу 7) того же интерфейса? Ответ: нет, не может. Дело в том, что метод ksTextLine предназначен для вывода строк внутри какого- либо составного объекта1, в состав которого входят строки.

1 Составной объект – это объект, состоящий из нескольких объектов. Например, объект «технические требования» как будет показано ниже состоит из нескольких строк.


Построение технических требований

Технические требования – это составной объект, состоящий из строк. Его построение осуществляется в три этапа: 1) запуск; 2) вывод строк, входящих в его состав; 3) завершение построения. Рассмотрим эти этапы более подробно.

Запуск построения технических требований осуществляется с помощью метода ksOpenTechnicalDemand интерфейса ksDocument2D. Вот прототип этого метода:

ksOpenTechnicalDemand(

const pGab: IDispatch; //массив областей style: Integer        //стиль текста

): Integer

Массив областей представляет собой интерфейс динамического массива ksDynamicArray (см. главу 22). Элементами в этом массиве являются интерфейсы прямоугольных областей ksRectParam (см. выше). Именно они и определяют положение технических требований.

Стиль текста представляет собой номер системного стиля текста. Существующие номера системных стилей текста приводились в главе 22. Здесь лишь напомню, что для технических требований предусмотрен системный стиль текста с номером 2.

В случае успеха метод ksOpenTechnicalDemand возвращает значение 1, а в случае ошибки – значение нуль.

После того, как процесс построения технических требований запущен, мы можем выводить строки, которые и составляют технические требования. Для вывода строк используется метод ksTextLine (см. выше).

После того как все строки выведены, мы должны явно завершить процесс построения технических требований. Для этого используется метод

ksCloseTechnicalDemand() интерфейса ksDocument2D. Данный метод не имеет входных параметров.

По поводу того, что возвращает метод ksCloseTechnicalDemand() документация КОМПАСа противоречит сама себе. В описании метода ksOpenTehnicalDemand    (см.    выше)    говорится    буквально    следующее:

«ksCloseTechnicalDemand возвращает указатель на технические требования». А вот в описании самого метода ksCloseTechnicalDemand() говорится, что он, в случае успеха возвращает значение 1, а в случае ошибки – значение нуль.

Как показывает эксперимент, он возвращает числовой идентификатор построенного объекта «технические требования».


Пример

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

var

kompas: KompasObject; Document2D: ksDocument2D; DynamicArray: ksDynamicArray; RectParam: ksRectParam;

MathPointParam: ksMathPointParam;

TextItemParam: ksTextItemParam;

………………………………

Begin

………………………………

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

DynamicArray:=ksDynamicArray(kompas.GetDynamicArray(8));

DynamicArray.ksClearArray();

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

RectParam:=ksRectParam(kompas.GetParamStruct(ko_RectParam));

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

MathPointParam:=ksMathPointParam(RectParam.GetpBot());

MathPointParam.x:=100; MathPointParam.y:=200;

//Получаем интерфейс правой верхней точки MathPointParam:=ksMathPointParam(RectParam.GetpTop()); MathPointParam.x:=200;

MathPointParam.y:=110;

//Добавляем прямоугольник в массив прямоугольников

DynamicArray.ksAddArrayItem(-1,RectParam);

//Начинаем строить технические требования

Document2D.ksOpenTechnicalDemand(DynamicArray,2);

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

TextItemParam:=ksTextItemParam(kompas.GetParamStruct(ko_TextItemParam)); TextItemParam.type_:=0;

TextItemParam.iSNumb:=0;

TextItemParam.s:=’Первое техническое требование’+#10;

Document2D.ksTextLine(TextItemParam); TextItemParam.s:=’Второе техническое требование'; Document2D.ksTextLine(TextItemParam);

//Завершаем построение технических требований

Document2D.ksCloseTechnicalDemand();

kompas.Visible:=true;

end;

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

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

По теме:

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