Линия выноска.

Автор podshibyakinea, 23.11.17, 11:32:30

« предыдущая - следующая »

0 Пользователей и 1 гость просматривают эту тему.

podshibyakinea

Как построить прямую линию-выноску?

Делаю вот как:

begin
LeaderParam:=ksLeaderParam(iKompas.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(iKompas.GetDynamicArray(2));
DynamicArray2.ksClearArray();
MathPointParam := ksMathPointParam(iKompas.GetParamStruct(ko_MathPointParam));
MathPointParam.x := 100;
MathPointParam.y := 100;
DynamicArray2.ksAddArrayItem(-1,MathPointParam);
DynamicArray.ksAddArrayItem(-1,DynamicArray2);
DynamicArray := ksDynamicArray(LeaderParam.GetpTextline());
DynamicArray.ksClearArray();
TextLineParam := ksTextLineParam(iKompas.GetParamStruct(ko_TextLineParam));
TextLineParam.style:=0; //Стиль текста по умолчанию
DynamicArray2 := ksDynamicArray(TextLineParam.GetTextItemArr());
DynamicArray2.ksClearArray();
TextItemParam := ksTextItemParam(iKompas.GetParamStruct(ko_TextItemParam));
TextItemParam.type_:=0; //строка
TextItemParam.s := '1'; //сама строка
DynamicArray2.ksAddArrayItem(-1,TextItemParam);
DynamicArray.ksAddArrayItem(-1, TextLineParam);
Document2D.ksLeader(LeaderParam);
iKompas.Visible:=true;
end;

podshibyakinea

Разобрался. Выполнил макрос - открыл в блокноте, посмотрел на пример.

pr0100

В коде заданы координаты начала и конца вектора, очевидно выставлять "перпендикулярность" и "параллельность" вектора нужно через них.

podshibyakinea

По макросу не получилось.
Не понял, как это?

podshibyakinea