Основний напис КОМПАС в DELPHI

Інтерфейс ksTextItemParam служить для

завдання рядка або

спецсімвола1 Отримати

цей

інтерфейс можна

за допомогою методу

GetParamStruct інтерфейсу KompasObject Для цього в якості

єдиного параметра даному методу потрібно передати значення константи ko_TextItemParam Розглянемо властивості інтерфейсу ksTextItemParam

iSNumb – Номер спецсимволи або нуль, в тому випадку, якщо задається рядок Допустимі номера спецсимволов перераховані в таблиці нижче (див файл NUmbSymbfrw, що поставляється разом з системою КОМПАС)

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

Тут буква α має номер 51, а буква β номер 52

s – Рядок Якщо інтерфейс ksTextItemParam використовується для завдання спецсимволи, то даний рядок виводиться після спецсимволи

type_1 – визначає для опису чого використовується інтерфейс Якщо ksTextItemParam описує рядок, то значенням даного властивості має бути значення нуль Якщо ж інтерфейс ksTextItemParam описує спецсимвол, то значенням даної властивості має дорівнювати константі SPECIAL_SYMBOL2 (17)

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

GetItemFont () – повертає інтерфейс параметрів шрифту ksTextItemFont (розглядати цей інтерфейс ми не будемо)

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

Init () – ініціалізує нулями властивості інтерфейсу У разі успіху повертає значення TRUE

Основний напис описується інтерфейсом ksStamp Отримати його можна за допомогою методу GetStamp () інтерфейсу ksDocument2D Даний метод повертає інтерфейс основного напису, або nil у разі помилки

У інтерфейсу ksStamp всього одна властивість reference Воно містить числовий ідентифікатор основного напису

Розглянемо методи інтерфейсу ksStamp

ksClearStamp – Очистити основний напис або окрему клітинку Ось прототип даного методу:

ksClearStamp(numb: Integer): Integer

Єдиний параметр задає номер комірки, яку слід очистити Якщо значення даного параметра дорівнює нулю, то очищається вся основна напис

У разі успіху даний метод повертає одиницю, і нуль у разі помилки

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

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

2 На жаль, дана константа не представлена ​​в заголовному файлі КОМПАС, тому в дужках вказано її фактичне значення

ksCloseStamp() – Закрити основний напис Фактично це означає вийти з режиму редагування основного напису Даний метод не має вхідних параметрів У разі успіху повертає одиницю, а в разі помилки нуль

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

ksGetStampColumnText – Повертає текст зазначеної осередку основний налпісі Номер комірки, текст якої ми хочемо дізнатися передається в якості єдиного параметра даного методу Метод повертає інтерфейс масиву рядків ksDynamicArray (він розглядається в розділі 22) типу TEXT_LINE_ARR, або NULL (nil) у разі помилки

ksOpenStamp() – Відкрити основний напис Фактично це означає увійти в режим редагування основного напису Не має вхідних параметрів, в разі успіху повертає нуль, у випадку невдачі нуль

ksSetStampColumnText    – Встановлює текст у клітинці Нижче

наводиться прототип цього методу

ksSetStampColumnText(numb: Integer          / / Номер осередку

const textArr: IDispatch / / Встановлюваний текст

): Integer

Встановлюваний текст задається у вигляді масиву ksDynamicArray (див главу 22)

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

ksTextLine – Записати в поточну комірку рядок При цьому поточна комірка встановлюється методом ksColumnNumber Ось прототип цього методу:

ksTextLine(const textItem: IDispatch): Integer

В якості єдиного параметра передається інтерфейс ksTextItemParam, про який ми говорили на початку цієї глави

У разі успіху даний метод повертає одиницю, а в разі помилки

– Нуль

Тепер докладніше про нумерацію осередків

Усі клітинки в основному написі пронумеровані За допомогою цих здійснюється їх адресація Самих номерів осередків у документації КОМПАС немає, єдине там є відсилання до ГОСТу, що описує основний напис (ГОСТ 2104-68 і ГОСТ 2104-2006) Також порядок нумерації осередків (правда не всіх) основного напису можна подивитися на сторінці http://wwwproproru/graphbook/eskd/eskd/GOST/2_104htm На малюнку нижче наводиться нумерація комірок основного напису форми 2:

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

Var

kompas: KompasObject Document2D: ksDocument2D TextItemParam: ksTextItemParam Stamp: ksStamp

……………

Begin

……………

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

TextItemParam:=ksTextItemParam(kompasGetParamStruct(ko_TextItemParam))

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

Stamp:=ksStamp(Document2DGetStamp())

/ / Входимо в режим редагування основного напису

StampksOpenStamp()

/ / Заповнюємо основний напис StampksColumnNumber (1) TextItemParams: = Деталь; StampksTextLine (TextItemParam)

StampksColumnNumber (2) TextItemParams: = Позначення креслення; StampksTextLine (TextItemParam)

StampksColumnNumber (3) TextItemParams: = Сталь 45; StampksTextLine (TextItemParam)

StampksColumnNumber (110) TextItemParams: = Норсеев СА’; StampksTextLine (TextItemParam)

/ / Виходимо з режиму редагування основного напису

StampksCloseStamp()

Якщо все зроблено правильно, то на виході ви отримаєте основний напис такого виду:

Джерело: Норсеев Сергій, «розробка програм під КОМПАС У DELPHI»

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*