Главная » Delphi, OLE, САПР » Линия-выноска для обозначения клеймения  – КОМПАС в DELPHI

0

Параметры линии-выноски для обозначения клеймения (ksBrandLeaderParam)

Интерфейс ksBrandLeaderParam служит для обписания параметров линии-выноски для обозначения клеймения. Получить этот интерфейс можно с помощью метода GetParamStruct интерфейса KompasObject. Для этого в качестве единственного параметра данному методу нужно передать значение константы ko_BrandLeaderParam. Рассмотрим свойства интерфейса ksBrandLeaderParam.

arrowType – тип указателя на «ножке». Аналогичен свойству arrowType интерфейса ksLeaderParam (см. главу 40).

cText0 – количество строк в знаке клеймения. Где и как хранятся строки, будет рассказано ниже. Количество строк не больше одной.

cText1 – количество строк над «ножкой» (не более одной строки).

cText2 – количество строк под «ножкой» (не более одной строки).

dirX – ориентация знака клеймения по горизонтали. Если значение свойства равно 1, то знак клеймения ориентирован вправо. Если же значение свойства равно -1, то знак клеймения ориентирован влево.

style1 – номер системного стиля текста в знаке клеймения. Существующие системные стили текста и их номера приводились в главе 22. Для обозначения клеймения не предусмотрено отдельного системного стиля

текста. Поэтому в значении этого свойства мы будем указывать значение 0 (использовать стиль текста по умолчанию для данного объекта).

style2 – номер системного стиля текста для строк у «ножки». Здесь подойдут значения либо 7 (стиль текста на «ножке» линии-выноски), либо 0 (стиль текста по умолчанию).

x и y – координаты базовой точки, то есть точки пересечения «ножки» («ножек») и знака клеймения.

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

GetpPolyline() – возвращает интерфейс массива (ksDynamicArray, см. главу 22) «ножек». Каждая «ножка» представляет собой массив (ksDynamicArray) точек (ksMathPointParam, см. главу 29).

SetpPolyline – устанавливает новый массив «ножек». Устанавливаемый массив принимается в качестве единственного параметра. В случае успеха

возвращает значение TRUE.

GetpTextline() – возвращает интерфейс массива (ksDynamicArray) строк (ksChar255, см. главу 22). Количество строк зависит от значения свойств cText0, cText1 и cText2. Строки идут в таком порядке: строка в знаке клеймения  (если  есть),  строка  над  «ножкой»  (если  есть),  строка  под

«ножкой» (если есть).

SetpTextline – устанавливает новый массив (ksDynamicArray) строк (ksChar255). Устанавливаемый массив принимается в качестве единственного параметра. В случае успеха метод возвращает значение TRUE.

Init() – инициализирует нулями значения свойств интерфейса, а также пересоздает массив «ножек» и строк. В случае успеха возвращает значение TRUE.

Построение линии-выноски для обозначения клеймения

Для построения линии-выноски для обозначения клеймения используется метод ksBrandLeader интерфейса ksDocument2D. В качестве единственного параметра он принимает интерфейс ksBrandLeaderParam.

В    случае    успеха    метод    возвращает    числовой    идентификатор

построенной линии-выноски. А в случае ошибки – значение нуль.

Пример

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

var

kompas: KompasObject; Document2D: ksDocument2D;

BrandLeaderParam: ksBrandLeaderParam; DynamicArray1,DynamicArray2: ksDynamicArray;

MathPointParam: ksMathPointParam; Char255: ksChar255;

…………………………

Begin

…………………………

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

BrandLeaderParam:=ksBrandLeaderParam(kompas.GetParamStruct(ko_BrandLeaderParam)); BrandLeaderParam.arrowType:=0; //Без указателя BrandLeaderParam.cText0  :=1; //Количество строк в знаке клеймения BrandLeaderParam.cText1  :=1; //Количество строк над "ножкой"

BrandLeaderParam.cText2  :=0; //Количество строк под "ножкой" BrandLeaderParam.dirX    :=1; //Ориентация вправо BrandLeaderParam.style1  :=0; //Стиль текста в знаке клеймения BrandLeaderParam.style2  :=0; //Стиль текста над/под "ножкой"

//Координаты базовой точки

BrandLeaderParam.x := 110;

BrandLeaderParam.y := 110;

//Получаем массив "ножек"

DynamicArray1 := ksDynamicArray(BrandLeaderParam.GetpPolyline()); DynamicArray1.ksClearArray();

//Получаем массив точек

DynamicArray2 := ksDynamicArray(kompas.GetDynamicArray(2)); DynamicArray2.ksClearArray();

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

MathPointParam := ksMathPointParam(kompas.GetParamStruct(ko_MathPointParam));

MathPointParam.x := 100;

MathPointParam.y := 100;

//Добавляем точку в массив точек

DynamicArray2.ksAddArrayItem(-1,MathPointParam);

//Добавляем "ножку" в массив "ножек"

DynamicArray1.ksAddArrayItem(-1, DynamicArray2);

//Получаем массив строк

DynamicArray1 := ksDynamicArray(BrandLeaderParam.GetpTextline()); DynamicArray1.ksClearArray();

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

Char255 := ksChar255(kompas.GetParamStruct(ko_Char255)); Char255.str:=’п. 3′;

//Добавляем строку в массив строк

DynamicArray1.ksAddArrayItem(-1,Char255);

Char255.str:=’Ку';

//Добавляем строку в массив строк

DynamicArray1.ksAddArrayItem(-1,Char255);

//Строим саму линию-выноску для обозначения клеймения

Document2D.ksBrandLeader(BrandLeaderParam);

kompas.Visible:=true;

end;

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

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

По теме:

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