Простий лінійний розмір – КОМПАС в DELPHI

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

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

У даного інтерфейсу всього одна властивість: str Дана властивість містить саму рядок, описувану цим інтерфейсом

Метод теж всього один: Init () Він очищає властивість str даного інтерфейсу

Думаю з інтерфейсом ksChar255 все зрозуміло: він до непристойності простий і проблем виникнуть з ним не повинно

Інтерфейс ksDynamicArray призначений для опису динамічних масивів Взагалі кажучи, елементами даного масиву можуть виступати різні інтерфейси Але в контексті завдання проставляння лінійного розміру нас буде цікавити динамічний масив інтерфейсів ksChar255, тобто рядків

Отримати цей інтерфейс можна за допомогою методу GetDynamicArray інтерфейсу KompasObject В якості єдиного параметра даний метод приймає тип створюваного масиву Типи масивів обговорюються трохи нижче

На початку розглянемо методи інтерфейсу ksDynamicArray

ksAddArrayItem додати новий елемент в масив Ось прототип цього методу:

ksAddArrayItem(

index: Integer / / Індекс елемента перед яким потрібно

/ / Вставити новий елемент const item: IDispatch / / вставляється інтерфейс

): Integer

Якщо параметр index дорівнює -1 (мінус одиниці), то новий інтерфейс вставляється в кінець масиву

У разі вдалого завершення даний метод повертає одиницю

ksClearArray не має параметрів Очищає масив У разі успіху повертає одиницю

ksDeleteArray не має параметрів Видаляє масив У разі вдалого

завершення повертає одиницю

ksExcludeArrayItem(long   index)   виключає з масиву елемент з індексом index У разі успіху повертає одиницю

ksGetArrayCount() – Повертає кількість елементів в масиві

ksGetArrayItem дозволяє отримати вибраний елемент масиву Він має наступний прототип:

ksGetArrayItem(

index: Integer / / Індекс елемента масиву

const item: IDispatch / / Інтерфейс елемента

): Integer

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

ksGetArrayType()   – Повертає тип масиву У таблиці нижче представлені деякі типи динамічних масивів:

Символьне позначення типу масиву

Числове позначений ие типу масиву

Інтерфейс – елемент масиву

Короткий опис інтерфейсу – елемента масиву

CHAR_STR_ARR

1

ksChar255

Рядок

довжиною 255 символів

POINT_ARR

2

ksMathPointParam

Параметри

Математично ої точки

CURVE_PATTERN_ARR

21

ksCurvePattern

Параметри

ділянки штриховий кривої

TEXT_LINE_ARR

3

ksTextLineParam

Параметри

рядки тексту

TEXT_ITEM_ARR

4

ksTextItemParam

Параметри

компоненти рядки тексту

1 Як таке може бути, що у різних типів масивів однакове числове позначення типу, я не знаю Але в документації КОМПАС вказано саме так

ATTR_COLUMN_ARR

5

ksColumnInfoParam

Параметри

стовпця табличного атрибута

USER_ARR

6

_

пользовательс

кі дані

POLYLINE_ARR

7

POINT_ARR

Масив

масивів

RECT_ARR

8

ksRectParam

Параметри

прямокутників ка по

діагональним

точкам

LIBRARY_STYLE_ARR

9

ksLibraryStyleParam

Параметри

стилю в

бібліотеці стилів

VARIABLE_ARR

10

ksVariable

Зовнішня

параметрічес кая мінлива моделі

CURVE_PATTERN_ARR

_EX

11

ksCurvePatternEx

Параметри ділянки

«Розширеної

»Штриховий кривої

LIBRARY_ATTR_TYPE

_ARR

12

ksLibraryAttrTypePar am

Параметри

типу атрибута в бібліотеці типів

NURBS_POINT_ARR

13

ksNurbsPointParam

Параметри

точки кривої NURBS

DOUBLE_ARR

14

ksDoubleValue

Мінлива

типу double

CONSTRAINT_ARR

15

ksConstraintParam

Параметрічес

кі звязку та обмеження

CORNER_ARR

16

ksCornerParam

Параметри

заокруглених (або усічених) кутів для

прямокутників

ка і

правильного Багатокутний ка

DOC_SPCOBJ_ARR

17

ksDocAttachedSpcPar am

Параметри

документа, подключенног про до обєкта специфікації

SPCSUBSECTION_ARR

18

ksSpcSubSectionPara m

Параметри

підрозділу специфікації

SPCTUNINGSEC_ARR

19

ksSpcTuningSectionP aram

Параметри

настройки розділу специфікації

SPCSTYLECOLUMN_A RR

20

ksSpcStyleColumnPar am

Параметри

стилю колонки специфікації

SPCSTYLESEC_ARR

21

ksSpcStyleSectionPar am

Параметри

стилю розділу специфікації

QUALITYITEM_ARR

22

ksQualityItemParam

Параметри

інтервалу квалітету

LTVARIANT_ARR

23

ksLtVariant

Інтерфейс

для зберігання значень різних типів (char,

double, float, int, long, short, string,    uChar,

uInt)

TOLERANCEBRANCH_ ARR

24

ksToleranceBranch

Параметри

«Опори» допуску форми

HATCHLINE_ARR

25

ksHatchLineParam

Параметри

лінії штрихування

TREENODEPARAM_AR

R

26

ksTreeNodeParam

Параметри

вузла дерева

бібліотеки

документів, бібліотеки атрибутів

ksSetArrayItem дозволяє змінити значення елемента масиву Ось прототип цього методу:

ksSetArrayItem(

index: Integer / / Індекс змінюваного елемента масиву const item: IDispatch / / встановлюване значення

): Integer

У разі успіху дана функція повертає значення одиниця Звертаю вашу увагу на те, що нумерація елементів масиву починається з нуля

Все Більше методів у нього немає Йдемо далі

Інтерфейс ksDimTextParam дозволяє задати параметри розмірного напису Розглянемо властивості цього інтерфейсу

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

Символьне позначення прапора

Числове значение1 прапора

Опис

_AUTONOMINAL

1

Автоматичне визначення розміру і простановка його в розмірного напису

_RECTTEXT

2

Напис виводиться в рамці

_PREFIX

4

Є текст перед самим

числовим розміром (номіналом)

_NOMINALOFF

8

Сам розмір (номінал) НЕ

виводиться

_TOLERANCE

10

До складу розмірного напису

входить квалітет

_DEVIATION

20

До складу розмірного напису

1 У шістнадцятковій системі числення

входять відхилення

_UNIT

40

До складу розмірного напису

входить одиниця виміру

_SUFFIX

80

До складу розмірного напису

водить текст після самого розміру (номіналу)

_DEVIATION_INFORM

100

Згідно документації

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

_UNDER_LINE

200

Розмірна напис виводиться з

підкресленням

_BRACKETS

400

Розмірна напис виводиться в

круглих дужках

_SQUARE_BRACKETS

800

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

з прапором _BRACKETS Говорить про те, що розмірна напис виводиться в квадратних дужках

Тепер кілька зауважень з приводу роботи з цими прапорами:

1)&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp При установці прапорів _RECTTEXT, _UNDER_LINE,

_BRACKETS І _SQUARE_BRACKETS обведеним в рамку (підкресленим, облямованим дужками) виявляється не вся розмірна напис, а тільки її частину, що складається з самого розміру, квалітету і відхилень На решту складові розмірного напису ці прапори ніяк не впливають

2)&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Прапор _DEVIATION_INFORM ніяк не впливає на відображення розмірного напису Чесно кажучи, я так і не зрозумів: навіщо він потрібен насправді чи не зрозумів як його правильно використовувати

3)&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Якщо прапор _TOLERANCE не встановлений, але встановлений прапор

_DEVIATION, То система веде себе так: квалітет не виводить, строку1 з нижнім відхиленням виводить на місці одиниці виміру, а рядок з верхнім відхиленням ігнорує

4)&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Якщо встановлені обидва прапора _TOLERANCE і _DEVIATION, то система сама визначає відхилення на основі розміру і квалітету Якщо квалітет заданий неправильно, то система не буде виводити ні квалітет, ні відхилення

5)&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Одночасне використання прапорів _AUTONOMINAL і

_NOMINALOFF Рівносильно використанню одного прапора

1 Про те де і як задаються рядки з елементами розмірного напису ми поговоримо нижче

_AUTONOMINAL, Тобто в цьому випадку прапор _NOMINALOFF просто ігнорується

6)&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Якщо не встановлено жодного прапор, тобто поле bitFlag дорівнює нулю, то виводиться тільки сам розмір (номінал) Всі інші частини

розмірної написі не виводяться

Sign – Визначає тип умовного значка перед розміром Нижче представлені значення цього поля для різних умовних значків:

0 – немає ніякого значка 1 – діаметр

2&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp – квадрат

3&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp – радіус

StringFlag – Визначає тип динамічного масиву, в якому повинні зберігатися рядки з елементами розмірного напису Якщо це поле приймає значення true, то масив повинен мати тип TEXT_LINE_ARR (див попередній розділ), якщо ж це поле дорівнює false, то масив повинен мати тип CHAR_STR_ARR Єдина різниця між цими масивами в тому, який інтерфейс є елементом масиву Подробиці дивись у попередньому розділі

Style задає системний стиль тексту У таблиці нижче представлені всі системні тили текстів з документації КОМПАС

Номер стилю тексту

Опис

0

Стиль за замовчуванням

1

Звичайний текст

2

Текст для технічних вимог

3

Текст розмірного напису

4

Текст в позначенні шорсткості

5

Текст на позиційної лінії-виносці

6

Текст над / під полицею лінії-виноски

7

Текст на відгалуженні лінії-винесення

8

Текст в позначенні допуску форми

9

Текст для заголовка таблиці

10

Текст для комірки таблиці

11

Текст для лінії розрізу

12

Текст для стрілки напрямку погляду

13

Текст в позначенні незазначеної шорсткості

14

Текст в позначенні зміни

На цьому властивості інтерфейсу ksDimTextParam закінчуються Переходимо до його методам

GetBitFlagValue  – Дозволяє перевірити встановлений окремо взятий прапор у властивості bitFlag чи ні Даний метод має прототип:

GetBitFlagValue(

bitFlag: Integer Перевірявся прапор

): WordBool

Єдиний параметр даного методу представляє собою перевірявся прапор з таблиці доступних прапорів для поля bitFlag даного інтерфейсу Якщо цей прапор встановлений даний метод повертає значення true, в іншому випадку він повертає значення false

GetTextArr() – Повертає інтерфейс динамічного масиву ksDynamicArray, в якому зберігаються рядки з елементами виведеної розмірного напису Кількість рядків у цьому масиві залежить від набору

прапорів у властивості bitFlag, але їх порядок завжди постійний: текст перед розміром, сам розмір, квалітет, верхнє відхилення, нижнє відхилення, одиниця виміру, текст після розміру, додаткові рядки

Що таке додаткові рядки Це рядки, які виводяться системою під розміром На малюнку нижче представлено кілька таких рядків, що виводяться системою КОМПАС:

Інтерфейс подання рядків в масиві визначається властивістю StringFlag інтерфейсу ksDimTextParam

Init – Служить для обнулення інтерфейсу ksDimTextParam, тобто скидання всіх його властивостей в значення за замовчуванням Єдиним параметром для даного методу є нове значення властивості StringFlag У випадку успішного завершення даний метод повертає значення true

SetBitFlagValue – Служить для зміни стану прапорів у властивості bitFlag Ось прототип цього методу:

SetBitFlagValue(

val: Integer / / Прапор, стан якого ми змінюємо state: WordBool / / Новий стан цього прапора

): WordBool

Параметр state описує, що потрібно зробити з цим прапором: true – встановити false – скинути У разі нікуди поспішати даний метод повертає значення true

Взагалі кажучи, ви самі вільні вибирати, яким із двох методів міняти значення властивості bitFlag: або шляхом прямого звернення до цієї властивості, або за допомогою даного методу

SetTextArr – служить для зміни динамічного масиву рядків, в

якому зберігаються рядки з елементами розмірного напису (див вище) Єдиний параметр даного методу це інтерфейс нового масиву рядків ksDynamicArray У разі вдалого зміни масиву рядків даний метод повертає значення true

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

Інтерфейс ksDimDrawingParam дозволяє описати параметри отрисовки розміру, тобто те, як потрібно розмір, як він повинен виглядати Розглянемо властивості цього інтерфейсу

ang – Задає кут нахилу «ніжки» внесений полки

lenght1 – Довжина «ніжки» внесений полки

pl1 – Визначає чи потрібно малювати виносну лінію Якщо те властивість встановлено в значення True, то виносна лінія не промальовується, в іншому випадку (якщо значення даної властивості встановлено в false) виносна лінія не промальовується

pl2 – Аналогічно властивості pl1, але для другої виносної лінії

pt1 – Задає тип стрілки у першої виносної лінії Можливі значення даного властивості та їх інтерпретація представлені в таблиці нижче:

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

Опис

Результат іспользованія2

0

Стрілки немає

1 Так, правильніше було б назвати це властивість length («довжина» в перекладі з англійської), але дане властивість називається саме так Це не помилка з мого боку Тому будьте уважні

2 Для більше наочності дане значення властивості pt1 застосовано до обох точкам перетину з виносними лініями

1

Стрілка всередині

2

Стрілка зовні

3

Зарубка

4

Точка

pt2 – Аналогічно властивості pt1, але для стрілки у другої виносної лінії

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

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

Опис

Результат використання

-1

Полка вліво

0

Полиці немає Значення властивостей ang і lenght ігноруються

1

Полка вправо

2

Полка вгору

3

Полка вниз

textBase – Задає характер розміщення розмірного напису У таблиці нижче перераховані можливі значення даної властивості

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

Опис

0

Розмірна напис вирівнюється по центру розмірної

лінії

1

Розмірна напис розміщується на фіксованому

відстані від першої точки

2

Розмірна напис розміщується на фіксованому

відстані від другої точки

3

«Загальна розмірна лінія»

Що значить «Загальна розмірна лінія» Швидше за все, тут мається на увазі розміщення великого числа йдуть навряд розмірів розташовуваних на

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

І остання властивість

textPos – У тому випадку якщо властивість textBase приймає значення 0, 1 або 2, дане властивість (textPos) задає те саме фіксовану відстань, на яке розмірна напис віддаляється від однієї з кінцевих точок розмірної лінії У тому випадку, якщо textBase дорівнює трьом, дана властивість ігнорується

Метод у даного інтерфейсу всього одін1 Init () Він не має вхідних

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

Інтерфейс ksLDimSourceParam також служить для опису параметрів отрисовки лінійного розміру Розглянемо його властивості

basePoint – Визначає від якої з двох кінцевих точок розмірної лінії слід відкладати вектор [dx dy] (про нього трохи нижче)

dx  іdy  – Задають орієнтацію розмірної лінії Конкретна їх інтерпретація залежить від властивості ps цього ж інтерфейсу

ps  – Визначає орієнтацію розмірної лінії і те, як слід інтерпретувати параметри dx і dy Можливі значення даного

параметра описані в таблиці нижче

1 У прикладах використання властивості textPos даного інтерфейсу згадуються ще два методи: GetTextPos і SetTextPos, призначені для роботи з даними властивістю Однак … Барабанний дріб … Та ж сама документація КОМПАС їх ніяк не описує У заголовному файлі ksTLBpas вони так само не згадуються

Значення ps

Опис

Інтерпретація dx

Інтерпретація dy

0

Розмірна лінія розташовується горизонтально

ігнорується

Відстань між

розмірною лінією і вимірюваним відрізком

1

Розмірна лінія розташовується вертикально

Відстань між

розмірною лінією і вимірюваним відрізком

ігнорується

2

Розмірна лінія

розташовується паралельно вимірюваному відрізку

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

3

Виносна лінія розташовується по вектору [dx dy]

Вектор [dx dy] задає орієнтацію і

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

4

Паралельно измеряемому відрізку з виносними лініями по вектору [dx dy]

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

x1 і yi – Координати першої точки вимірюваного відрізка

x2 і y2 – Координати другої точки вимірюваного відрізка

Метод у даного інтерфейсу всього один: Init () Він не має вхідних параметрів і служить для обнулення всіх властивостей даного інтерфейсу

Інтерфейс ksLDimParam являє собою обєднання трьох раніше розглянутих інтерфейсів: ksDimDrawingParam (визначає параметри отрисовки лінійного розміру), ksLDimSourceParam (визначає параметри привязки лінійного розміру) і ksDimTextParam (визначає параметри розмірного напису)

У інтерфейсу ksLDimParam немає властивостей, тому переходимо до розгляду його методів:

GetDPar() – Повертає інтерфейс ksDimDrawingParam

GetSPar() – Повертає інтерфейс ksLDimSourceParam

GetTPar() – Повертає інтерфейс ksDimTextParam

SetDPar(const val: IDispatch) – Встановлює новий інтерфейс ksDimDrawingParam, що передається йому в якості єдиного параметра У разі успішного зміни повертає значення true

SetSPar(const val: IDispatch) – Встановлює новий інтерфейс ksLDimSourceParam, що передається йому в якості єдиного параметра У разі успішного зміни повертає значення true

SetTPar(const val: IDispatch) – Встановлює новий інтерфейс ksDimTextParam, що передається йому в якості єдиного параметра У разі успішного зміни повертає значення true

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

константу ko_LDimParam

Після того як ми розглянули всі інтерфейси, що описують лінійний розмір пора відповісти на головне питання всієї цієї глави: як побудувати лінійний розмір

Для цього призначений метод ksLinDimension інтерфейсу ksDocument2D В якості єдиного параметра він приймає інтерфейс ksLDimParam, який обговорювався в минулому розділі даної глави

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

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

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

var

kompas: KompasObject Document2D: ksDocument2D Char255: ksChar255 DynamicArray: ksDynamicArray LDimParam: ksLDimParam

DimDrawingParam: ksDimDrawingParam LDimSourceParam: ksLDimSourceParam DimTextParam: ksDimTextParam

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

Begin

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

/ / Відрізок, довжину якого ми будемо проставляти в розмірі

Document2DksLineSeg(100, 100, 130, 100, 1)

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

LDimParam:=ksLDimParam(kompasGetParamStruct(ko_LDimParam))

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

DimDrawingParam:=ksDimDrawingParam(LDimParamGetDPar())

/ / Встановлюємо параметри отрисовки розміру DimDrawingParamang:=0    / / Кут нахилу ніжки внесений полки DimDrawingParamlenght:=0 / / Довжина ніжки внесений полки DimDrawingParampl1:=false / / Малювати першу виносну лінію DimDrawingParampl2:=false / / Малювати другий виносну лінію DimDrawingParampt1:=1    / / У першому виносної лінії стрілка всередині DimDrawingParampt2:=1    / / У другої виносної лінії стрілка всередині DimDrawingParamshelfDir:=0/ / Виносний полки немає DimDrawingParamtextBase:=0/ / Текст розміщується в центрі DimDrawingParamtextPos:=0 / / Автоматичне розміщення тексту

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

LDimSourceParam:=ksLDimSourceParam(LDimParamGetSPar())

/ / Встановлюємо параметри привязки лінійного розміру

LDimSourceParambasePoint:=1 / / Малюємо від першої точки до другої

/ / Вектор спрямування розмірного напису LDimSourceParamdx:=0 LDimSourceParamdy:=10

LDimSourceParamps:=0 / / Розмірна лінія розміщена горизонтально

/ / Координати першої точки вимірюваного відрізка

LDimSourceParamx1:=100 LDimSourceParamy1:=100

/ / Координати другої точки вимірюваного відрізка

LDimSourceParamx2:=130 LDimSourceParamy2:=100

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

DimTextParam:=ksDimTextParam(LDimParamGetTPar)

/ / Встановлюємо параметри розмірного напису DimTextParambitFlag:=0 / / Будемо виводити тільки номінал DimTextParamsign:=0 / / Значка немає

DimTextParamstringFlag:=false

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

Char255 := ksChar255(kompasGetParamStruct(ko_Char255))

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

DynamicArray := ksDynamicArray(DimTextParamGetTextArr()) DynamicArrayksClearArray()

/ / Рядок з номіналом Char255str:=30; DynamicArrayksAddArrayItem(-1, Char255)

/ / Будуємо сам розмір Document2DksLinDimension (LDimParam) 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>

*

*