Технічні вимоги – КОМПАС в DELPHI

Інтерфейс ksRectParam служить для визначення прямокутної області Отримати даний інтерфейс можна за допомогою методу GetParamStruct інтерфейсу KompasObject Для цього в якості єдиного параметра йому потрібно передати значення константи ko_RectParam Властивостей у інтерфейсу ksRectParam немає, тому відразу переходимо до розгляду його методів

GetpBot() – Повертає інтерфейс ksMathPointParam (див главу 29) лівої нижньої точки задається прямокутної області

SetpBot – Встановлює нову ліву нижню точку прямокутної області Інтерфейс параметрів встановлюваної точки (ksMathPointParam) передається в якості єдиного параметра даного методу У разі успіху він повертає значення TRUE

GetpTop() – Повертає інтерфейс ksMathPointParam (див главу 29) правій верхній точки задається прямокутної області

SetpTop – Встановлює нову праву верхню точку прямокутної області Інтерфейс параметрів встановлюваної точки (ksMathPointParam) передається в якості єдиного параметра даного методу У разі успіху він повертає значення TRUE

Висновок рядка здійснюється за допомогою методу ksTextLine інтерфейсу ksDocument2D У даного методу всього один параметр – це або інтерфейс компоненти рядки ksTextItemParam (див главу 5), або інтерфейс рядка ksTextLineParam (див главу 40) Оскільки інтерфейс ksTextItemParam набагато простіше свого «побратима», то використовувати ми будемо саме його

У разі успіху метод ksTextLine повертає значення 1, а в разі помилки – значення нуль

Виникає питання: чи може метод ksTextLine служить альтернативою методу ksText (див розділ 7) того ж інтерфейсу Відповідь: ні, не може Справа в тому, що метод ksTextLine призначений для виведення рядків усередині якого-або складеного обекта1, до складу якого входять рядка

1 Складений обєкт – це обєкт, що складається з декількох обєктів Наприклад, обєкт «технічні вимоги» як буде показано нижче складається з декількох рядків

Технічні вимоги – це складений обєкт, що складається з рядків Його побудова здійснюється в три етапи: 1) запуск 2) виведення рядків, що входять до його складу 3) завершення побудови Розглянемо ці етапи більш докладно

Запуск побудови технічних вимог здійснюється за допомогою методу ksOpenTechnicalDemand інтерфейсу ksDocument2D Ось прототип цього методу:

ksOpenTechnicalDemand(

const pGab: IDispatch / / Масив областей style: Integer / / стиль тексту

): Integer

Масив областей являє собою інтерфейс динамічного масиву ksDynamicArray (див главу 22) Елементами в цьому масиві є інтерфейси прямокутних областей ksRectParam (див вище) Саме вони і визначають положення технічних вимог

Стиль тексту представляє собою номер системного стилю тексту Існуючі номери системних стилів тексту наводилися в главі 22 Тут лише нагадаю, що для технічних вимог передбачений системний стиль тексту з номером 2

У разі успіху метод ksOpenTechnicalDemand повертає значення 1, а в разі помилки – значення нуль

Після того, як процес побудови технічних вимог запущений, ми можемо виводити рядки, які і складають технічні вимоги Для виведення рядків використовується метод ksTextLine (див вище)

Після того як всі рядки виведені, ми повинні явно завершити процес побудови технічних вимог Для цього використовується метод

ksCloseTechnicalDemand () інтерфейсу ksDocument2D Даний метод не має вхідних параметрів

З приводу того, що повертає метод ksCloseTechnicalDemand () документація компаса суперечить сама собі В описі методу ksOpenTehnicalDemand (див вище) говориться буквально наступне:

«KsCloseTechnicalDemand повертає покажчик на технічні вимоги» А ось в описі самого методу ksCloseTechnicalDemand () говориться, що він, у разі успіху повертає значення 1, а в разі помилки – Значення нуль

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

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

var

kompas: KompasObject Document2D: ksDocument2D DynamicArray: ksDynamicArray RectParam: ksRectParam

MathPointParam: ksMathPointParam

TextItemParam: ksTextItemParam

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

Begin

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

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

DynamicArray:=ksDynamicArray(kompasGetDynamicArray(8))

DynamicArrayksClearArray()

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

RectParam:=ksRectParam(kompasGetParamStruct(ko_RectParam))

/ / Отримуємо інтерфейс лівої нижньої точки

MathPointParam:=ksMathPointParam(RectParamGetpBot())

MathPointParamx:=100 MathPointParamy:=200

/ / Отримуємо інтерфейс правої верхньої точки MathPointParam:=ksMathPointParam(RectParamGetpTop()) MathPointParamx:=200

MathPointParamy:=110

/ / Додаємо прямокутник в масив прямокутників

DynamicArrayksAddArrayItem(-1,RectParam)

/ / Починаємо будувати технічні вимоги

Document2DksOpenTechnicalDemand(DynamicArray,2)

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

TextItemParam:=ksTextItemParam(kompasGetParamStruct(ko_TextItemParam)) TextItemParamtype_:=0

TextItemParamiSNumb:=0

TextItemParams: = Перше технічна вимога + # 10

Document2DksTextLine (TextItemParam) TextItemParams: = Друге технічна вимога; Document2DksTextLine (TextItemParam)

/ / Завершуємо побудова технічних вимог

Document2DksCloseTechnicalDemand()

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>

*

*