Виносний елемент – КОМПАС в DELPHI

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

height – Висота виносного елемента без урахування внесений полки Значення цієї властивості використовується тільки в тому випадку, якщо внесений елемент позначається прямокутником або округленим прямокутником Якщо внесений елемент позначається окружністю, значення даної властивості ігнорується

radius – Радіус кола виносного елемента Значення даної властивості використовується тільки в тому випадку, якщо внесений елемент позначається окружністю, у всіх інших випадках воно ігнорується

shelfDir – Орієнтація внесений полки Нижче наводяться можливі значення даного властивості та їх опис

Значення

Опис

Вид внесений полки

1

Виносна полку орієнтована вправо

-1

Виносна полку орієнтована вліво

2

Виносна полку орієнтована вгору

3

Виносна полку орієнтована вниз

shelfX і shelfY – Координати точки початку полки

signType – Тип позначення виносного елемента Допустимі типи позначення виносного елемента представлені нижче

тип1

Числове значення

Опис

Вид позначення

re_Circle

0

окружність

re_Rectangle

1

прямокутник

re_Ballon

2

Округлений прямокутник

smooth – Радіус заокруглення кутів прямокутника Використовується тільки якщо, позначення виносного елемента має форму прямокутника У всіх інших випадках значення даної властивості ігнорується

style – Номер системного стилю тексту Допустимі номера системних стилів тексту наводилися в главі 22 Для виносного елемента не передбачено системного стилю тексту, тому ми як значення цієї властивості будемо вказувати значення нуль Дане значення говорить системі КОМПАС про те, що для даного обєкта потрібно використовувати системний стиль тексту, передбачений за замовчуванням для даного виду обєктів

width – Ширина виносного елемента без урахування внесений полки Значення даної властивості використовується, якщо позначення виносного елемента має форми прямокутника або округленій прямокутника Якщо ж позначення виносного елемента має форму кола, то значення даного властивості ігнорується

x і y – Координати центру виносного елемента

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

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

GetpText() – Повертає інтерфейс масиву ksDynamicArray Цей масив використовується для завдання рядків у позначенні виносного елемента Він має тип CHAR_STR_ARR Це означає, що рядки в ньому задаються у вигляді інтерфейсу ksChar255 Обидва цих інтерфейсу (ksDynamicArray і ksChar255) ми вже розглядали в главі 22

Хоча в документації КОМПАС про це ніде не сказано, але заповнення цього масиву є необовязковим Як показує практика, система КОМПАС сама ставить позначення виносного елемента в порядку нумерації (А, Б, В, Г, Д і так далі) незалежно від того, яке позначення ви вказали в масиві рядків і вказали Чи ви там що-небудь взагалі

Однак, так як це недокументоване поведінку системи КОМПАС, то ми в нашому прикладі будемо заповнювати цей масив за всіма правилами

SetpText – Встановлює новий масив рядків Інтерфейс нового масиву (ksDynamicArray) передається цьому методу в якості єдиного

параметра У разі успіху метод повертає значення TRUE, а в разі помилки-значення FALSE

Init – Ініціалізує значення властивостей інтерфейсу Даний метод в якості єдиного параметра приймає нове значення властивості style Значення всіх інших властивостей встановлюються в значення нуль У разі успіху даний метод повертає значення TRUE, а в разі помилки – значення FALSE

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

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

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

Var

kompas: KompasObject Document2D: ksDocument2D

RemoteElementParam: ksRemoteElementParam

DynamicArray: ksDynamicArray Char255: ksChar255

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

Begin

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

/ / Отримуємо інтерфейс параметрів виносного елемента

RemoteElementParam:=ksRemoteElementParam(kompasGetParamStruct(ko_RemoteElementParam)) RemoteElementParamheight := 0

RemoteElementParamradius := 10 / / Радіус RemoteElementParamshelfDir := 1 / / Вправо RemoteElementParamshelfX := 120

RemoteElementParamshelfY := 120 RemoteElementParamsignType := 0 // re_Circle

RemoteElementParamsmooth := 0 RemoteElementParamstyle := 0   / / Стиль за замовчуванням RemoteElementParamwidth := 0

RemoteElementParamx := 100

RemoteElementParamy := 100

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

DynamicArray := ksDynamicArray(RemoteElementParamGetpText()) DynamicArrayksClearArray()

/ / Отримуємо інтерфейс рядка

Char255 := ksChar255(kompasGetParamStruct(ko_Char255))

Char255str: = А;

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

DynamicArrayksAddArrayItem(-1,Char255)

/ / Будуємо сам внесений елемент

Document2DksRemoteElement(RemoteElementParam)

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>

*

*