Приклад 4. Вертикальний розмір – КОМПАС в DELPHI

Добре Будемо вважати, що з проставлянням горизонтального розміру розібралися Перейдемо тепер до вертикального Його простановка нітрохи не складніше Ось приклад програми демонструє рішення цього завдання:

var

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

DimDrawingParam: ksDimDrawingParam

LDimSourceParam: ksLDimSourceParam DimTextParam: ksDimTextParam

………………………

Begin

………………………

/ / Відрізок, довжину якого ми будемо проставляти в розмірі

Document2DksLineSeg(100, 100, 100, 130, 1)

/ / Отримуємо інтерфейс ksLDimParam

LDimParam:=ksLDimParam(kompasGetParamStruct(ko_LDimParam))

/ / Отримуємо інтерфейс ksDimDrawingParam

DimDrawingParam:=ksDimDrawingParam(LDimParamGetDPar())

/ / Встановлюємо параметри отрисовки розміру

DimDrawingParamang:=0    / / Кут нахилу ніжки внесений полки

DimDrawingParamlenght:=0 / / Довжина ніжки внесений полки DimDrawingParampl1:=false / / Малювати першу виносну лінію DimDrawingParampl2:=false / / Малювати другий виносну лінію DimDrawingParampt1:=1    / / У першому виносної лінії стрілка всередині DimDrawingParampt2:=1    / / У другої виносної лінії стрілка всередині DimDrawingParamshelfDir:=0/ / Виносний полки немає DimDrawingParamtextBase:=0/ / Текст розміщується в центрі DimDrawingParamtextPos:=0 / / Автоматичне розміщення тексту

/ / Отримуємо інтерфейс ksDimSourceParam

LDimSourceParam:=ksLDimSourceParam(LDimParamGetSPar())

/ / Встановлюємо параметри привязки лінійного розміру

LDimSourceParambasePoint:=1 / / Малюємо від першої точки до другої

/ / Вектор спрямування розмірного напису LDimSourceParamdx:=10 LDimSourceParamdy:=0

LDimSourceParamps:=1 / / Розмірна лінія розміщена вертикально

/ / Координати першої точки вимірюваного відрізкаа LDimSourceParamx1: = 100

LDimSourceParamy1:=100

//Координати другої точки вимірюваного відрізка

LDimSourceParamx2:=100 LDimSourceParamy2:=130

/ / Отримуємо інтерфейс ksDimTextParam

DimTextParam:=ksDimTextParam(LDimParamGetTPar)

/ / Встановлюємо параметри розмірного напису

DimTextParambitFlag:=0 / / Виводимо тільки номінал DimTextParamsign:=0 / / Значка немає DimTextParamstringFlag:=false

/ / Отримуємо інтерфейс KsChar255

Char255 := ksChar255(kompasGetParamStruct(ko_Char255))

/ / Отримуємо інтерфейс ksDynamicArray

DynamicArray := ksDynamicArray(DimTextParamGetTextArr()) DynamicArrayksClearArray()

/ / Рядок з номіналом

Char255str:=30;

DynamicArrayksAddArrayItem(-1, Char255)

/ / Будуємо сам розмір Document2DksLinDimension(LDimParam) kompasVisible:=true

end

Код цього прикладу я спеціально побудував на основі коду прикладу 1 У чому між ними відмінності Якщо уважно придивитися то небагато:

1)&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Змінився вимірюваний відрізок, точніше змінилася лише одна його точка, друга точка (з координатами [100 100]) залишилася без зміни Слідом за цим змінилися значення властивостей x2 і y2 інтерфейсу ksLDimSourceParam Значення цих властивостей визначають нові координати другої точки вимірюваного відрізка

2)&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Значення властивості ps інтерфейсу ksLDimSourceParam тепер дорівнює одиниці, що говорить системі КОМПАС про те, що розмірну напис слід розташовувати вертикально (у разі горизонтального розміру ми

задавали значення цієї властивості рівним нулю)

3)&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Змінилися значення властивостей dx і dy того ж інтерфейсу У прикладі 1 ми задавали значення властивості dy, а значення властивості dx прирівнювали до нуля Тепер же ми чинимо навпаки: dy = 0, а dx ≠ 0 Це повязано з тим, що при зміні значення властивості ps інтерфейсу ksLDimSourceParam змінилася і інтерпретація цих свойств1

От і все, що потрібно було змінити

Зверніть увагу на те, що при «трансформації» лінійного розміру з горизонтального у вертикальне, нам треба було змінити властивості всього одного інтерфейсу (ksLDimSourceParam) Всі інші інтерфейси залишилися без зміни

На малюнку нижче представлений результат роботи цієї програми:

1 Детальніше дивись у розділі «Параметри привязки лінійного розміру (ksLDimSourceParam)»Цієї глави

Джерело: Норсеев Сергій, «розробка програм під КОМПАС У DELPHI»

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*