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

0

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

var

kompas: KompasObject; Document2D: ksDocument2D; Char255: ksChar255; DynamicArray: ksDynamicArray; LDimParam: ksLDimParam;

DimDrawingParam: ksDimDrawingParam;

LDimSourceParam: ksLDimSourceParam; DimTextParam: ksDimTextParam;

……………………………

Begin

……………………………

//Отрезок, длину которого мы будем проставлять в размере

Document2D.ksLineSeg(100, 100, 120, 100, 1);

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

LDimParam:=ksLDimParam(kompas.GetParamStruct(ko_LDimParam));

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

DimDrawingParam:=ksDimDrawingParam(LDimParam.GetDPar());

//Устанавливаем параметры отрисовки размера DimDrawingParam.ang:=60;    //Угол наклона ножки выносной полки DimDrawingParam.lenght:=10; //Длина ножки выносной полки

DimDrawingParam.pl1:=false; //Отрисовывать первую выносную линию DimDrawingParam.pl2:=false; //Отрисовывать вторую выносную линию DimDrawingParam.pt1:=1;    //У первой выносной линии стрелка внутри DimDrawingParam.pt2:=1;    //У второй выносной линии стрелка внутри DimDrawingParam.shelfDir:=1;//Выносной полки ориентирована вправо DimDrawingParam.textBase:=0;//Текст размещается в центре DimDrawingParam.textPos:=0; //Автоматическое размещение текста

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

LDimSourceParam:=ksLDimSourceParam(LDimParam.GetSPar());

//Устанавливаем параметры привязки линейного размера

LDimSourceParam.basePoint:=1; //Рисуем от первой точки ко второй

//Вектор направления размерной надписи LDimSourceParam.dx:=0; LDimSourceParam.dy:=10;

LDimSourceParam.ps:=0; //Размерная линия размещена горизонтально

//Координаты первой точки измеряемого отрезка

LDimSourceParam.x1:=100; LDimSourceParam.y1:=100;

//Координаты второй точки измеряемого отрезка

LDimSourceParam.x2:=120;

LDimSourceParam.y2:=100;

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

DimTextParam:=ksDimTextParam(LDimParam.GetTPar);

//Устанавливаем параметры размерной надписи

DimTextParam.bitFlag:=0; //выводим только номинал

DimTextParam.sign:=0; //Значка нет

DimTextParam.stringFlag:=false;

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

Char255 := ksChar255(kompas.GetParamStruct(ko_Char255));

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

DynamicArray := ksDynamicArray(DimTextParam.GetTextArr()); DynamicArray.ksClearArray();

//Строка с номиналом

Char255.str:=’30′; DynamicArray.ksAddArrayItem(-1, Char255);

//Строим сам размер Document2D.ksLinDimension(LDimParam); kompas.Visible:=true;

end;

Как мы задали выносную полку? Очень просто:

1)                                            Свойству shelfDir интерфейса ksDimDrawingParam задали значение 1, которое говорит системе КОМПАС: во-первых, у нас есть выносная полка (если ее нет, данному свойству присваивается нулевое значение) и, во-вторых, она ориентирована вправо.

2)                                            Задали свойства ang и length того же интерфейса, которые определяют угол наклона и длину выносной полки соответственно.

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

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

По теме:

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