Лінійний розмір з обривом – КОМПАС в DELPHI

Параметри отрисовки розміру c обривом описуються за допомогою інтерфейсу ksBreakDimDrawing Це інтерфейс дуже схожий на розглянутий у минулому розділі інтерфейс ksDimDrawingParam Розглянемо властивості ksBreakDimDrawing

angle – Кут нахилу «ніжки» внесений полки

length – Довжина «ніжки» внесений полки

pl – Чи потрібно малювати виносну лінію Якщо значення даної властивості одно true, то виносна лінія не промальовується Якщо ж воно дорівнює false, то промальовується

pt – Тип стрілки у виносної лінії Аналогічний властивостям pt1 і pt2 інтерфейсу ksDimDrawingParam

shelfDir – Аналогічний однойменному властивості ksDimDrawingParam

textPos – Положення тексту Якщо значення цієї властивості дорівнює нуль, то розмір розміщується автоматично, в іншому випадку він задає відстань між внесений лінією і розмірної написом

Метод у даного інтерфейсу всього один Init () Він обнуляє всі властивості даного інтерфейсу і, у разі успіху, повертає значення true

Як бачите інтерфейс ksBreakDimDrawing дуже схожий на розглянутий раніше ksDimDrawingParam Єдина різниця між ними в тому, що перший задає параметри відображення всього однієї виносної лінії, а другий – двох Це і зрозуміло: адже в розмірі з обривом вона всього одна, а в звичайному лінійному розмірі їх дві

Інтерфейс KsLBreakDimSource визначає параметри розташування та орієнтації розміру Розглянемо його властивості

x1, y1 – Координати точки вимірюваного відрізка, від якої будується виносна лінія розміру

x2, y2 – Координати першої точки уявної прямої, по якій будується розмірна лінія

x3, y3 – Координати другої точки уявної прямої, по якій будується розмірна лінія

Тепер докладніше Виносна лінія будується від точки (x1 y1) перпендикулярно уявної прямої, що проходить через точки (x2 y2) і (x3 y3) Сама розмірна лінія будується перпендикулярно виносної лінії так, що розмірна лінія належить уявної прямої, що проходить через точки (x2 y2) і (x3 y3) Розмірна лінія орієнтується від точки (x3 y3) до точки (x2 y2) Для більшої ясності на малюнку нижче представлені

всі три точки (вони відзначені кружечками і підписані відповідними номерами) і лінійний розмір з обривом, побудований на їх основі

Метод у даного інтерфейсу всього один Init () Він скидає в нуль всі властивості даного інтерфейсу і в разі успіху повертає значення нуль

Звертаю вашу увагу на те, що за допомогою інтерфейсу KsLBreakDimSource ви можете задавати розміри виносної лінії і орієнтацію розмірної лінії, але визначати розміри останньої – ні Система КОМПАС робить це сама

Провчити інтерфейс ksLBreakDimParam можна за допомогою методу GetParamStruct інтерфейсу KompasObject, для цього в якості єдиного параметра даному методу потрібно передати значення ko_LBreakDimParam Властивостей у даного інтерфейсу (ksLBreakDimParam) немає, тому відразу переходимо до розгляду його методів

GetDPar() – Повертає інтерфейс параметрів отрисовки ksBreakDimDrawing

GetSPar() – Повертає інтерфейс параметрів привязки розміру ksLBreakDimSource

GetTPer() – Повертає інтерфейс параметрів розмірного напису ksDimTextParam (детально розглядався в попередньому розділі)

SetDpar – Встановлює новий інтерфейс ksBreakDimDrawing, що передається йому в якості єдиного параметра У разі успіху повертає значення True

SetSPar – Встановлює новий інтерфейс ksLBreakDimSource, що передається йому в якості єдиного параметра У разі успіху повертає значення True

SetTPar        – Встановлює новий інтерфейс ksDimTextParam,

що передається йому в якості єдиного параметра У разі успіху повертає значення True

Для безпосередньої побудови лінійного розміру з обривом використовується метод ksLinBreakDimension інтерфейсу ksDocument2D В якості єдиного параметра даний метод приймає інтерфейс ksLBreakDimParam

У разі успіху даний метод повертає числовий ідентифікатор побудованого розміру і нуль у разі помилки

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

var

kompas: KompasObject Document2D: ksDocument2D

LBreakDimParam: ksLBreakDimParam BreakDimDrawing: ksBreakDimDrawing LBreakDimSource: ksLBreakDimSource Char255: ksChar255

DynamicArray: ksDynamicArray

DimTextParam: ksDimTextParam

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

Begin

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

/ / Будуємо відрізок, розмір до якого ми будемо ставити

Document2DksLineSeg(100, 100, 120, 100, 1)

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

LBreakDimParam:=ksLBreakDimParam(kompasGetParamStruct(ko_LBreakDimParam))

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

BreakDimDrawing:=ksBreakDimDrawing(LBreakDimParamGetDPar()) BreakDimDrawingangle:=0/ / Кут нахилу ніжки внесений полки BreakDimDrawinglength:=0/ / Довжина ніжки внесений полки BreakDimDrawingpl:=false/ / Отрісовиваємих виносну лінію BreakDimDrawingpt:=1 / / Стрілка зсередини BreakDimDrawingshelfDir:=0/ / Внесений полки у нас немає BreakDimDrawingtextPos:=0/ / Автоматичне розміщення тексту

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

LBreakDimSource:=ksLBreakDimSource(LBreakDimParamGetSPar())

/ / Точка відрізка від якої будемо будувати виносну лінію

LBreakDimSourcex1:=100 LBreakDimSourcey1:=100

/ / Перша точка прямої розмірної лінії LBreakDimSourcex2:=100 LBreakDimSourcey2:=110

/ / Друга точка прямої розмірної лінії

LBreakDimSourcex3:=120 LBreakDimSourcey3:=110

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

DimTextParam:=ksDimTextParam(LBreakDimParamGetTPar()) DimTextParambitFlag:=0/ / Виводимо тільки номінал DimTextParamsign:=0/ / Значка немає DimTextParamstringFlag:=false DimTextParamstyle:=3/ / Текст розмірного напису

/ / Отримуємо інтерфейс ksDynamicArray DynamicArray: = ksDynamicArray (DimTextParamGetTextArr ()) DynamicArrayksClearArray () / / Очищаємо масив

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

Char255:=ksChar255(kompasGetParamStruct(ko_Char255))

Char255str:=20; / / Рядок з номіналом

/ / Додаємо рядок з номіналом в масив

DynamicArrayksAddArrayItem(-1, Char255)

/ / Будуємо сам розмір з обривом

Document2DksLinBreakDimension(LBreakDimParam)

kompasVisible:=true

end

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

У цій програмі ми будуємо горизонтальний розмір Якщо вам потрібен вертикальний або довільно нахилений розмір, то все, що вам потрібно це належним чином змінити значення властивостей x2, y2, x3 і y3 інтерфейсу ksLBreakDimSource

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

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


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

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

Ваш отзыв

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

*

*