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

0

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

var

kompas: KompasObject; Document2D: ksDocument2D; LeaderParam: ksLeaderParam;

DynamicArray, DynamicArray2: ksDynamicArray;

MathPointParam: ksMathPointParam; TextLineParam: ksTextLineParam;

TextItemParam: ksTextItemParam;

………………………

Begin

………………………

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

LeaderParam:=ksLeaderParam(kompas.GetParamStruct(ko_LeaderParam)); LeaderParam.around := 0; //Без значка по кругу LeaderParam.arrowType := 0; //Без указателя

LeaderParam.cText0 := 1; //над полкой линии-выноски

LeaderParam.cText1 := 1; //под полкой линии-выноски

LeaderParam.cText2 := 0; //над ножкой LeaderParam.cText3 := 0; //под ножкой LeaderParam.dirX  := 1; //полка вправо LeaderParam.signType := 0; //без знака на полке

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

LeaderParam.x := 110;

LeaderParam.y := 110;

//Получаем массив "ножек" DynamicArray:=ksDynamicArray(LeaderParam.GetpPolyline()); DynamicArray.ksClearArray();

//Подготавливаем массив точек DynamicArray2:=ksDynamicArray(kompas.GetDynamicArray(2)); DynamicArray2.ksClearArray();

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

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

MathPointParam.x := 100;

MathPointParam.y := 100;

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

DynamicArray2.ksAddArrayItem(-1,MathPointParam);

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

DynamicArray.ksAddArrayItem(-1,DynamicArray2);

//Получаем массив элементов ksTextLineParam

DynamicArray := ksDynamicArray(LeaderParam.GetpTextline()); DynamicArray.ksClearArray();

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

TextLineParam := ksTextLineParam(kompas.GetParamStruct(ko_TextLineParam)); TextLineParam.style:=0; //Стиль текста по умолчанию

//Получаем массив элементов ksTextItemParam

DynamicArray2 := ksDynamicArray(TextLineParam.GetTextItemArr()); DynamicArray2.ksClearArray();

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

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

//Определяем строку над полкой

TextItemParam.type_:=0; //строка

TextItemParam.s := ‘Строка над полкой'; //сама строка

//Добавляем интерфейс ksTextItemParam в соответствующий массив

DynamicArray2.ksAddArrayItem(-1,TextItemParam);

//Добавляем интерфейс ksTextLineParam в соответствующий массив

DynamicArray.ksAddArrayItem(-1, TextLineParam);

//Определяем строку под полкой

TextItemParam.type_:=0; //строка

TextItemParam.s := ‘Строка под полкой'; //сама строка

//Добавляем интерфейс ksTextItemParam в соответствующий массив

DynamicArray2.ksClearArray(); DynamicArray2.ksAddArrayItem(-1,TextItemParam);

//Добавляем интерфейс ksTextLineParam в соответствующий массив

DynamicArray.ksAddArrayItem(-1,TextLineParam);

//Строим саму линию-выноску Document2D.ksLeader(LeaderParam); kompas.Visible:=true;

end;

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

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

По теме:

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