Приклад 6. Довільний лінійний розмір – КОМПАС в DELPHI

З горизонтальним і вертикальним розмірами будемо вважати, що розібралися Але як бути, якщо нам потрібно проставити розмір довільно нахиленого відрізка Це теж досить легко розвязувана задача Нижче наводиться фрагмент програми, що вирішує цю задачу

var

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

DimDrawingParam: ksDimDrawingParam

LDimSourceParam: ksLDimSourceParam

DimTextParam: ksDimTextParam

………………………………………

Begin

………………………………………

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

Document2DksLineSeg(100, 100, 120, 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:=0 LDimSourceParamdy:=10

LDimSourceParamps:=2/ / Розмірна лінія розміщена паралельно відрізку

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

LDimSourceParamx1:=100 LDimSourceParamy1:=100

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

LDimSourceParamx2:=120

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)&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 рівним 2, що говорить системі КОМПАС про те, що розмірну лінію слід розташовувати паралельно вимірюваному відрізку

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 Поставили значення властивості dy1 того ж інтерфейсу, яке визначило розмір і орієнтацію виносних ліній

В результаті роботи цієї програми буде отримано зображення як на малюнку нижче

1 Ви в своїх можете задавати значення властивості dx або обох відразу При ps = 2 дані властивості визначають лише напрямок отрисовки виносних ліній (вгору або вниз, вправо або вліво від вимірюваного відрізка) і їх довжину, але ніяк не їх строгу орієнтацію на площині Тому розмірна лінія завжди залишається паралельної измеряемому відрізку, а виносні лінії перпендикулярними йому

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

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


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

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

Ваш отзыв

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

*

*