Лінія розрізу / перерізу – КОМПАС в DELPHI

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

right – Визначає напрямок стрілок в позначенні лінії розрізу / розтину Приймає одне з двох допустимих значень: або нуль, або одиниця

str – Рядок з текстом в позначенні лінії розрізу / розтину Як показує досвід, значення цієї властивості ігнорується і система КОМПАС сама проставляє позначення лінії в порядку А, Б, В, Г і так далі

style – Номер системного стилю тексту Допустимі номера системних

стилів текстів наводилися в главі 22 Тут лише нагадаю, що для лінії розрізу / перерізу передбачений системний стиль тексту з номером 11

type_1 – визначає спосіб завдання текстового позначення Якщо значення цієї властивості дорівнює нулю, то текстове позначення задається у вигляді значення властивості str Якщо ж значення це властивості (type_) дорівнює одиниці, то текстове позначення задається у вигляді масиву рядків Ми будемо задавати позначення через значення властивості str Завдання текстового позначення у вигляді масиву рядків ми розглядати не будемо

x1,y1 і x2,y2 – Відповідно до документації задають розташування текстових позначень у лінії розрізу / розтину На практиці ж система КОМПАС ігнорує значення цих полів і сама визначає розташування відповідних текстових позначень

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

GetpMathPoint() – Повертає інтерфейс масиву точок лінії перерізу / розтину У разі простого розрізу / перерізу даний масив описує дві точки (початку і кінця лінії перерізу / розтину) У разі ж складного перерізу / перерізу в цей масив додається інформація про всі проміжних точках

Сам масив описується інтерфейсом ksDynamicArray (його ми розглядали в главі 22) Елементами масиву є інтерфейси параметрів математичної точки ksMathPointParam (його ми розглядали в главі 29)

SetpMathPoint – Встановлює новий масив точок лінії перерізу / розтину Інтерфейс встановлюваного масиву точок приймається в

1 У документації дана властивість описується як type (без знака пордчерківанія на кінці) Однак в заголовних файлах воно преставлено як type_ (зі знаком підкреслення на кінці)

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

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

коли значення властивості type_ одно 1 Ми дану можливість розглядати не будемо Зауважу лише, що сам масив рядків описується інтерфейсом ksDynamicArray (див главу 22), а рядки – елементи цього масиву інтерфейсом ksTextItemParam

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

Init() – Ініціалізувати значення властивостей Даний метод обнуляє значення всіх властивостей інтерфейсу і перестворює масиви (точок і рядків)

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

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

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

var

kompas: KompasObject Document2D: ksDocument2D CutLineParam: ksCutLineParam DynamicArray: ksDynamicArray

MathPointParam: ksMathPointParam

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

Begin

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

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

CutLineParam:=ksCutLineParam(kompasGetParamStruct(ko_CutLineParam))

CutLineParamright:=1   / / Напрямок стрілок

CutLineParamstr: = А; CutLineParamstyle: = 11 / / Стиль тексту

CutLineParamtype_ := 0 / / Текст у вигляді одного рядка

CutLineParamx1 := 90

CutLineParamy1 := 90

CutLineParamx2 := 135

CutLineParamy2 := 90

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

DynamicArray:=ksDynamicArray(CutLineParamGetpMathPoint())

DynamicArrayksClearArray()

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

MathPointParam:=ksMathPointParam(kompasGetParamStruct(ko_MathPointParam))

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

MathPointParamx := 100

MathPointParamy := 100 DynamicArrayksAddArrayItem(-1,MathPointParam)

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

MathPointParamx := 130

MathPointParamy := 100 DynamicArrayksAddArrayItem(-1,MathPointParam)

/ / Будуємо лінію розрізу / перерізу

Document2DksCutLine(CutLineParam) kompasVisible:=true

end

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

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

var

kompas: KompasObject Document2D: ksDocument2D CutLineParam: ksCutLineParam DynamicArray: ksDynamicArray

MathPointParam: ksMathPointParam

……………………………

Begin

……………………………

/ / Отримуємо інтерфейс параметрів лінії розрізу / перерізу CutLineParam:=ksCutLineParam(kompasGetParamStruct(ko_CutLineParam)) CutLineParamright:=1    / / Напрямок стрілок

CutLineParamstr: = А; CutLineParamstyle: = 11 / / Стиль тексту

CutLineParamtype_ := 0 / / Текст у вигляді одного рядка

CutLineParamx1 := 90

CutLineParamy1 := 90

CutLineParamx2 := 135

CutLineParamy2 := 90

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

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

MathPointParam:=ksMathPointParam(kompasGetParamStruct(ko_MathPointParam))

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

MathPointParamx := 100

MathPointParamy := 100 DynamicArrayksAddArrayItem(-1,MathPointParam)

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

MathPointParamx := 115

MathPointParamy := 100 DynamicArrayksAddArrayItem(-1,MathPointParam)

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

MathPointParamx := 115

MathPointParamy := 130

DynamicArrayksAddArrayItem(-1,MathPointParam)

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

MathPointParamx := 130

MathPointParamy := 130 DynamicArrayksAddArrayItem(-1,MathPointParam)

/ / Будуємо лінію розрізу / перерізу Document2DksCutLine(CutLineParam) 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>

*

*