Главная » 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 := 0; //под полкой линии-выноски 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);

//Определяем вторую "ножку"

MathPointParam.x := 120;

MathPointParam.y := 100;

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

DynamicArray2.ksClearArray();

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 := ‘1’; //сама строка

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

DynamicArray2.ksAddArrayItem(-1,TextItemParam);

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

DynamicArray.ksAddArrayItem(-1, TextLineParam);

//Строим саму линию-выноску

Document2D.ksLeader(LeaderParam); kompas.Visible:=true;

end;

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

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

По теме:

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