Главная » Delphi, OLE, САПР » Угловой размер с обрывом – КОМПАС в DELPHI

0

Параметры углового размера с обрывом (ksABreakDimParam)

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

Свойств у интерфейса ksABreakDimParam нет, поэтому сразу перейдем к рассмотрению его методов.

GetTPar() – возвращает интерфейс параметров текста  размерной надписи ksDimTextParam (рассматривался в главе 22).

SetTPar – устанавливает  новый интерфейс ksDimTextParam, передаваемый ему в качестве единственного параметра. В случае успеха возвращает значение true.

GetDPar() – возвращает интерфейс параметров отрисовки размера с обрывом ksBreakDimDrawing (рассматривался в главе 23). Единственное что

здесь нужно добавить так это, то, что расположение единственной выносной линии и стрелки (или ее замены) определяется свойством ang1 этого интерфейса. Свойство ang2 задает расположение второй, «воображаемой» выносной линии.

SetDPar – устанавливает новый интерфейс ksBreakDimDrawing, передаваемый ему в качестве единственного параметра. В случае успеха возвращает значение true.

GetSPar() – возвращает интерфейс параметров привязки углового размера ksADimSourceParam (рассматривался в главе 24).

SetSPar – устанавливает новый интерфейс ksADimSourceParam, передаваемый ему в качестве  единственного параметра. В случае успеха возвращает значение true.

Построение углового размера с обрывом

Для построения углового размера с обрывом используется метод ksAngBreakDimension интерфейса ksDocument2D. В качестве единственного параметра данный метод принимает интерфейс параметров углового размера с обрывом ksABreakDimParam. В случае успеха данный метод возвращает числовой идентификатор построенного размера, а в случае ошибки – нуль.


Пример

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

var

kompas: KompasObject; Document2D: ksDocument2D;

ABreakDimParam: ksABreakDimParam;

BreakDimDrawing: ksBreakDimDrawing; ADimSourceParam: ksADimSourceParam; DimTextParam: ksDimTextParam;

…………………………..

Begin

…………………………..

//Строим отрезок,к которому будет примыкать угловой размер

Document2D.ksLineSeg(100, 100, 120,100+trunc(20*tan(pi/3)) , 1);

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

ABreakDimParam:=ksABreakDimParam(kompas.GetParamStruct(ko_ABreakDimParam));

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

BreakDimDrawing:=ksBreakDimDrawing(ABreakDimParam.GetDPar());

BreakDimDrawing.angle :=0; //Угол наклона "ножки" выносной полки BreakDimDrawing.length:=0;//длина "ножки" выносной полки BreakDimDrawing.pl:=false;//Отрисовываем выносную линию BreakDimDrawing.pt:=1; //у выносной линии стрелка изнутри BreakDimDrawing.shelfDir:=0;//выносной полки у нас нет BreakDimDrawing.textPos:=0;//Автоматическое размещение текста

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

ADimSourceParam:=ksADimSourceParam(ABreakDimParam.GetSPar());

//Координаты центра размерной дуги

ADimSourceParam.xc:=100; ADimSourceParam.yc:=100;

//Координаты точки первой выносной линии ADimSourceParam.x1:=100; ADimSourceParam.y1:=100;

//Координаты точки второй выносной линии ADimSourceParam.x2:=100; ADimSourceParam.y2:=100;

//Начальный и конечный угол размерной дуги

ADimSourceParam.ang1:=60;

ADimSourceParam.ang2:=0;

ADimSourceParam.dir:=-1; //против часовой стрелки

ADimSourceParam.rad:= 15;//радиус размерной дуги

//Получаем интерфейс ksDimTextParam DimTextParam:=ksDimTextParam(ABreakDimParam.GetTPar()); DimTextParam.bitFlag:=1;//Автоматическая простановка размера DimTextParam.sign:=0;//Значка нет DimTextParam.stringFlag:=false;

DimTextParam.style:=3;//Текст размерной надписи

//Получаем интерфейс ksDynamicArray DynamicArray:=ksDynamicArray(DimTextParam.GetTextArr()); DynamicArray.ksClearArray(); //Очищаем массив

//Строим сам угловой размер Document2D.ksAngBreakDimension(ABreakDimParam); kompas.Visible:=true;

end;

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

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

По теме:

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