Редагування об’єктів специфікації – КОМПАС в DELPHI

У попередньому розділі ми розглянули, як створити обєкт специфікації, тепер поговоримо про те, як його відредагувати Для зміни тексту в заданій колонці обєкта специфікації використовується метод ksSetSpcObjectColumnText інтерфейсу ksSpecification Ось прототип цього методу

ksSetSpcObjectColumnText(

columnType: Integer / / Тип колонки, в якій змінюється текст

ispoln: Integer    / / Номер виконання

block: Integer     / / Номер блоку виконань

const str: WideString     / / Рядок з встановлюються тескти

): Integer

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

Тип колонки

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

Опис

SPC_CLM_FORMAT

1

Формат

SPC_CLM_ZONE*

2

Зона

SPC_CLM_POS*

3

Позиція

SPC_CLM_MARK

4

Позначення

SPC_CLM_NAME

5

Найменування

SPC_CLM_COUNT

6

Кількість

SPC_CLM_NOTE

7

Примітка

SPC_CLM_MASSA

8

Масса2

SPC_CLM_MATERIAL*

9

Матеріал

SPC_CLM_USER3

10

Призначена для користувача

SPC_CLM_KOD*

11

Код

SPC_CLM_FACTORY*

12

Підприємство-виробник

Зірочками в цій таблиці відзначені колонки специфікації, заповнення яких за допомогою методу ksSetSpcObjectColumnText мені так і не вдалося добитися

Призначення параметрів ispoln і block не зрозуміло Але, експериментальним шляхом вдалося зясувати наступне

По-перше, метод ksSetSpcObjectColumnText не працює, якщо значення параметра ispoln відмінно від одиниці

По-друге, в більшості випадків метод ksSetSpcObjectColumnText справно працює незалежно від значення властивості block

1 На жаль, в модулі ksConstTLB ці константи не описані Тому тут я наводжу їх чисельні значення

2 У разі заповнення маси параметр str повинен рядок з числом, інакше колонка не буде заповнена

3 На практиці заповнює колонку «Код ОКП» (тестував на КОМПАС 8)

По-третє, в рідкісних випадках (наприклад, при SPC_CLM_COUNT) метод ksSetSpcObjectColumnText не працює, якщо значення параметра block відмінно від нуля

Параметр str містить рядок, яка повинна бути встановлена ​​в

колонці Майте на увазі, що при SPC_CLM_MASSA в цьому рядку повинно бути число

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

Для заповнення колонки «Кількість» може бути використаний метод ksSpcCount нтерфейс ksSpecification Ось прототип цього методу

ksSpcCount(

ispoln: Smallint / / Номер виконання

const sCount: WideString / / Рядок з встановлюються текстом

): Integer

Як показує експеримент, метод ksSpcCount працює тільки в тому випадку якщо значення параметра ispoln дорівнює нулю або одиниці

У разі успіху метод ksSpcCount повертає значення 1

Для заповнення колонки маса використовується метод ksSpcMassa інтерфейсу ksSpecification В якості єдиного параметра даний метод приймає рядок з встановлюються числовим значенням маси У випадку успіху метод ksSpcMassa повертає значення 1, а в разі помилки – значення нуль

Для заповнення колонки «Позиція» використовується метод ksSpcPosition інтерфейсу ksSpecification В якості єдиного параметра даний метод приймає числове значення встановлюваної позиції Звертаю

вашу увагу на те, що він приймає саме числове значення, а не його строкове подання (як, наприклад, метод ksSpcCount або ksSpcMassa)

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

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

const

SPC_CLM_FORMAT = 1

SPC_CLM_NAME  = 5

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

var

kompas: KompasObject

SpcDocument: ksSpcDocument Specification: ksSpecification

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

begin

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

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

Specification:=ksSpecification(SpcDocumentGetSpecification())

/ / Cоздан обєкт в розділі Документація

SpecificationksSpcObjectCreate(str,1,5,0,0,0)

/ / Заповнюємо колонку Найменування

SpecificationksSetSpcObjectColumnText (SPC_CLM_NAME, 1,0, Специфікація)

//Заповнюємо колонку Кількість

SpecificationksSpcCount(0,1)

/ / Закриваємо обєкт в розділі Документація

SpecificationksSpcObjectEnd()

/ / Створюємо обєкт в розділі Деталі

SpecificationksSpcObjectCreate(str,1,20,0,0,0)

//Заповнюємо колонку Найменування

SpecificationksSetSpcObjectColumnText (SPC_CLM_NAME, 1,0, Кришка)

/ / Заповнюємо колонку Формат

SpecificationksSetSpcObjectColumnText (SPC_CLM_FORMAT, 1,0, А3)

/ / Заповнюємо колонку Кількість

SpecificationksSpcCount(0,2)

/ / Заповнюємо колонку Позиція

SpecificationksSpcPosition(1)

/ / Заповнюємо колонку Маса

SpecificationksSpcMassa(25)

/ / Закриваємо обєкт в розділі Деталі

SpecificationksSpcObjectEnd()

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>

*

*