![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Проставим размер со сложным текстом, как показано на рис.6.2.
Рис. 6.2 Линейный размер
Размерный текст в общем случае состоит из следующих элементов:
- текст перед номиналом (±);
- символ перед номиналом (Æ);
- номинал (100);
- отклонение (+0,2 и -0,4);
- единица измерения (мм);
- текст после номинала (2x45o).
При создании размера нужно указать, какие элементы в тексте будут присутствовать и затем сформировать массив текстовых строк из необходимых элементов. В тексте можно использовать коды &04 для знака умножения х и &01 для знака градуса 0. Коды символов приведены в Приложении 6.3.
Var
param: ksLDimParam;
dPar: ksDimDrawingParam;
sPar: ksLDimSourceParam;
tPar: ksDimTextParam;
str: ksChar255;
arrText: ksDynamicArray;
obj: Reference;
Begin
// структура для параметров размера
param:= ksLDimParam
(kompas.GetParamStruct(ko_LDimParam));
// параметры отрисовки размера
dPar:= ksDimDrawingParam(param.GetDPar);
// положение размерной линии
sPar:= ksLDimSourceParam(param.GetSPar);
// параметры размерного текста
tPar:= ksDimTextParam (param.GetTPar);
dPar.Init;
dPar.textBase:= 0; // способ размещения текста
// тип первой стрелки (1- внутри, 2 – снаружи)
dPar.pt1:= 2;
dPar.pt2:= 2; // тип второй стрелки
dPar.ang:= -30; // угол наклона выноски
dPar.lenght:= 20; // длина выноски
sPar.Init;
// начало первой выносной линии
sPar.x1:= 50;
sPar.y1:= 50;
// начало второй выносной линии
sPar.x2:= 150;
sPar.y2:= 50;
// смещение размерной линии
sPar.dx:= 0;
sPar.dy:= 20;
// относительно какой точки задается смещение:
// 1 - от 1,y1,
// 2 - от x2,y2
sPar.basePoint:= 1;
tPar.Init(False);
// автопростановка номинала
tPar.SetBitFlagValue(_AUTONOMINAL, true);
// будет текст перед номиналом
tPar.SetBitFlagValue(_PREFIX, true);
// будет проставлено отклонение
tPar.SetBitFlagValue(_DEVIATION, true);
// будет проставлена единица измерения
tPar.SetBitFlagValue(_UNIT, true);
// будет текст после номинала
tPar.SetBitFlagValue(_SUFFIX, true);
// знак диаметра перед текстом
tPar.sign:= 1;
// строка в 255 символов
str:= ksChar255(kompas.GetParamStruct(ko_Char255));
// массив текстовых строк
arrText:= ksDynamicArray(tPar.GetTextArr);
// текст до номинала
str.str:= '+';
// добавили в массив
arrText.ksAddArrayItem(-1, str);
// верхнее отклонение
str.str:= '+0,2';
// добавили в массив
arrText.ksAddArrayItem(-1, str);
// нижнее отклонение
str.str:= '-0,4';
// добавили в массив
arrText.ksAddArrayItem(-1, str);
// единица измерения
str.str:= ' мм';
// добавили в массив
arrText.ksAddArrayItem(-1, str);
// текст после размера
// &04 - знак "х"
// &01 - знак градуса
str.str:= '2&0445&01';
arrText.ksAddArrayItem(-1, str);
// создаем размер
iDocument2d.ksLinDimension(param)
end;
Дата публикования: 2014-11-04; Прочитано: 464 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!