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

Давайте змінимо розглянуту в минулому розділі програму так, щоб вона виводила квалітет і відхилення проставляється розміру У цьому випадку її код прийме вигляд:

var

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

DimDrawingParam: ksDimDrawingParam

LDimSourceParam: ksLDimSourceParam

DimTextParam: ksDimTextParam

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

Begin

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

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

Document2DksLineSeg(100, 100, 130, 100, 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:=0 / / Розмірна лінія розміщена горизонтально

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

LDimSourceParamx1:=100 LDimSourceParamy1:=100

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

LDimSourceParamx2:=130 LDimSourceParamy2:=100

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

DimTextParam:=ksDimTextParam(LDimParamGetTPar)

/ / Встановлюємо параметри розмірного напису DimTextParambitFlag:=$10 or $20 / / Виводимо квалітет і відхилення DimTextParamsign:=0 / / Значка немає

DimTextParamstringFlag:=false

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

Char255 := ksChar255(kompasGetParamStruct(ko_Char255))

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

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

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

Char255str:=30; DynamicArrayksAddArrayItem(-1, Char255)

/ / Рядок з квалітетом Char255str:=h6; 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 Значення властивості bitFlag інтерфейсу ksDimTextParam тепер встановлюється одно не нулю (як у прикладі 1), а поєднанню прапорів: $ 10 (_TOLERANCE) і $ 20 (_DEVIATION) Так як в заголовному файлі ksConstTLB ці константи не описані, ми змушені здавати їх вручну

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 Масив DynamicArray тепер складається не з одного рядка (як у прикладі 1), а з двох: рядок з номіналом (як і у прикладі 1, «30») та рядок з квалітетом («h6»)

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

Звертаю вашу увагу на те, що самі відхилення ми ніде не вказуємо Система КОМПАС сама знаходить їх, грунтуючись на розмірі відрізка (номіналі) і квалітету Якщо відхилення вам не потрібні, тобто, якщо ви хочете проставляти тільки розмір і квалітет то все що, вам потрібно зробити, це прибрати прапор _DEVIATION ($ 20) із значення властивості bitFlag інтерфейсу ksDimTextParam

Також на що слід звернути увагу, це те, що в обох прикладах ми самі визначали значення номіналу Якщо ви хочете покласти це завдання на систему КОМПАС, то у властивості bitFlag вам потрібно встановити

прапор _AUTONOMINAL ($ 1) Якщо додати цей прапор в наш приклад, то для правильного відображення розміру необхідно змінити кількість рядків у масиві DynamicArray У ньому повинна бути повинна бути всього одна рядок – задає квалітет, більше в нього нічого не повинно бути

Якщо ви не хочете виводити квалітет, відхилення, одиницю виміру та інші «прикрашення», але при цьому задаєте прапор _AUTONOMINAL, тоді масив DynamicArray повинен бути порожнім

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

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


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

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

Ваш отзыв

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

*

*