Лінія-виноска для позначення маркування – КОМПАС в DELPHI

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

arrowType – Тип покажчика на «ніжці» Дана властивість аналогічно властивості arrowType інтерфейсу ksLeaderParam (див главу 40)

cText0 – Кількість рядків в знаку маркування (не більше одного рядка) cText1 – Кількість рядків над «ніжкою» (не більше одного рядка) cText2 – Кількість рядків під «ніжкою» (не більше одного рядка)

style1 – Номер системного стилю тексту в знаку маркування Допустимі системні стилі тексту та їх номери наводилися в главі 22 Для знака маркування не передбачено окремого системного стилю тексту Тому ми будемо вказувати значення 0 (використовувати стиль тексту за замовчуванням для даного обєкта)

style2 – Номер системного стилю тексту для рядків у «ніжки» Тут допустимо використовувати або значення 7 (стиль тексту на відгалуженні лінії-винесення), або значення 0 (стиль тексту за замовчуванням для даного обєкта)

x і y – Координати базової точки, тобто точки перетину знака маркування та «ніжки» («ніжок» якщо їх більше однієї)

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

GetpPolyline() – Повертає інтерфейс масиву (ksDynamicArray, см главу 22) «ніжок» Кожна «ніжка» являє собою масив (ksDynamicArray) точок (ksMathPointParam, см главу 29)

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

GetpTextline() – Повертає інтерфейс масиву (ksDynamicArray) рядків (ksChar255, см главу 22) Кількість рядків залежить від значення властивостей cText0, cText1 і cText2 Рядки йдуть в такому порядку: рядок в знаку маркування (Якщо є), рядок над «ніжкою» (якщо є), рядок під

«Ніжкою» (якщо є)

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

1 Як ви побачите з опису цього інтерфейсу він повністю аналогічний інтерфейсу ksBrandLeaderParam, обговорюється в попередньому розділі

Init() – Ініціалізує нулями значення властивостей інтерфейсу, а також перестворює масив «ніжок» і рядків У разі успіху повертає значення TRUE

Для побудови лінії-винесення для позначення маркування використовується метод ksMarkerLeader інтерфейсу ksDocumnet2D В якості єдиного параметра даний метод приймає інтерфейс ksMarkerLeaderParam

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

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

var

kompas: KompasObject Document2D: ksDocument2D

MarkerLeaderParam: ksMarkerLeaderParam DynamicArray1, DynamicArray2: ksDynamicArray MathPointParam: ksMathPointParam

Char255: ksChar255

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

Begin

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

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

MarkerLeaderParam:=ksMarkerLeaderParam(kompasGetParamStruct(ko_MarkerLeaderParam)) MarkerLeaderParamarrowType:=0 / / Без покажчика

MarkerLeaderParamcText0  := 1/ / Кількість рядків в знаку маркування MarkerLeaderParamcText1  := 1/ / Кількість рядків над ніжкою MarkerLeaderParamcText2  := 0/ / Кількість рядків під ніжкою MarkerLeaderParamstyle1  := 0/ / Стиль тексту в знаку маркування MarkerLeaderParamstyle2  := 7/ / Стиль тексту у ніжки

/ / Координати базової точки

MarkerLeaderParamx := 120

MarkerLeaderParamy := 120

/ / Отримуємо масив ніжок

DynamicArray1:=ksDynamicArray(MarkerLeaderParamGetpPolyline())

DynamicArray1ksClearArray()

/ / Отримуємо масив точок DynamicArray2:=ksDynamicArray(kompasGetDynamicArray(2)) DynamicArray2ksClearArray()

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

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

MathPointParamy:=100

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

DynamicArray2ksAddArrayItem(-1,MathPointParam)

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

DynamicArray1ksAddArrayItem(-1,DynamicArray2)

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

DynamicArray1:=ksDynamicArray(MarkerLeaderParamGetpTextline()) DynamicArray1ksClearArray()

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

/ / Додаємо рядок в масив рядків DynamicArray1ksAddArrayItem (-1, Char255) Char255str: = НУ;

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

DynamicArray1ksAddArrayItem(-1, Char255)

/ / Будуємо лінію-виноску для позначення маркування Document2DksMarkerLeader(MarkerLeaderParam) 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>

*

*