Позиційна лінія-виноска – КОМПАС в DELPHI

Інтерфейс ksPosLeaderParam використовується для завдання параметрів позиційної лінії-винесення Отримати цей інтерфейс можна за допомогою методу GetParamStruct інтерфейсу KompasObject Для цього в якості єдиного параметра даному методу потрібно передати значення константи ko_PosLeaderParam Розглянемо властивості інтерфейсу ksPosLeaderParam

arrowType – Тип покажчика лінії-винесення Дана властивість аналогічно властивості arrowType інтерфейсу ksLeaderParam, який розглядався в попередньому розділі

dirX – Визначає орієнтацію полки по горизонтальній осі Приймає одне з двох допустимих значень: -1 (полку орієнтована вліво) або 1 (полку орієнтована вправо)

dirY – В документації старих версій КОМПАС (наприклад, 8) це властивість згадано, але не описано У документації більш нової версії компаси (11) стверджується, що дана властивість визначає орієнтацію полки по вертикалі Проявляється дана властивість тільки у випадку позиційної лінії-винесення, що складається з двох чи більше рядків У таблиці нижче представлені можливі значення даного властивості та їх опис

Значення

Опис

Вид лінії-винесення

-1

Полка орієнтована вниз

1

Полка орієнтована вгору

style – Номер системного стилю тексту Дані номери наводилися в главі 22 Незважаючи на те, що для тексту, розташованого над позиційної лінією-виноской1 передбачений системний стиль тексту з номером 5, спроба побудувати позиційну лінію-виноску з цим стилем тексту закінчується невдачею Тому ми будемо змушені як значення

1 Як ви побачите надалі для позиційної лінії-винесення неможливо задати текст, розташований під полицею або над (під) «ніжкою», як це було можливо у випадку з звичайною лінією-виноски

цієї властивості вказувати значення нуль (використовувати системний стиль тексту за замовчуванням для даного обєкта)

x і y – Координати базової точки Базова точка – це точка перетину «ніжки» і полки позиційної лінії-винесення

Тепер розглянемо методи інтерфейсу ksPosLeaderParam

GetpPolyline()   – Повертає інтерфейс динамічного масиву

«Ніжок» Масив описується інтерфейсом ksDynamicArray (див главу 22) Кожна «ніжка» являє собою окремий масив (ksDynamicArray) крапок Кожна точка в «ніжці» описується інтерфейсом ksMathPointParam (Див главу 29)

Побудова «ніжок» у разі позиційної лінії-винесення аналогічно побудові «ніжок» у випадку звичайної лінії-винесення (див главу 40)

SetpPolyline – Встановлює новий масив «ніжок» Встановлюваний масив (ksDynamicArray) приймається в якості єдиного параметра У разі успіху метод повертає значення TRUE

GetpTextline() – Повертає інтерфейс динамічного масиву рядків Сам масив задається інтерфейсом ksDynamicArray (див главу 22), а рядки в

цьому масиві інтерфейсом ksChar255 (див главу 22)

SetpTextline – Встановлює новий масив рядків Встановлюваний масив (ksDynamicArray) передається в якості єдиного параметра У разі успіху метод повертає значення TRUE

Init() – Ініціалізує (обнуляє) значення всіх властивостей інтерфейсу У разі успіху повертає значення TRUE

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

У разі успіху метод повертає числовий ідентифікатор побудованої позиційної лінії-винесення А в разі помилки – значення нуль

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

var

kompas: KompasObject Document2D: ksDocument2D

PosLeaderParam: ksPosLeaderParam

DynamicArray1,DynamicArray2: ksDynamicArray MathPointParam: ksMathPointParam

Char255: ksChar255

……………………………

Begin

……………………………

/ / Отримуємо інтерфейс параметрів позиційної лінії-винесення

PosLeaderParam:=ksPosLeaderParam(kompasGetParamStruct(ko_PosLeaderParam)) PosLeaderParamarrowType:= 0 / / Без покажчика

PosLeaderParamdirX:=1      / / Вправо

PosLeaderParamdirY: = 1 / / Вгору PosLeaderParamstyle: = 0/ / Стиль тексту за замовчуванням

/ / Координати базової точки PosLeaderParamx:=110 PosLeaderParamy:=110

/ / Отримуємо масив ніжок DynamicArray1:=ksDynamicArray(PosLeaderParamGetpPolyline()) DynamicArray1ksClearArray()

/ / Отримуємо масив точок

DynamicArray2:=ksDynamicArray(kompasGetDynamicArray(2))

DynamicArray2ksClearArray()

/ / Отримуємо інтерфейс параметрів математичної точки

MathPointParam:=ksMathPointParam(kompasGetParamStruct(ko_MathPointParam)) MathPointParamx:=100

MathPointParamy:=100

/ / Додаємо крапку в масив точок

DynamicArray2ksAddArrayItem(-1,MathPointParam)

/ / Додаємо масив точок у масив ніжок

DynamicArray1ksAddArrayItem(-1,DynamicArray2)

/ / Отримуємо масив рядків

DynamicArray1 := ksDynamicArray(PosLeaderParamGetpTextline()) DynamicArray1ksClearArray()

/ / Отримуємо інтерфейс рядка Char255:=ksChar255(kompasGetParamStruct(ko_Char255)) Char255str:=1;

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

DynamicArray1ksAddArrayItem(-1,Char255)

/ / Будуємо позиційну лінію-виноску Document2DksPositionLeader(PosLeaderParam) kompasVisible:=true

end

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

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

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


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

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

Ваш отзыв

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

*

*