Позначення допуску форми й розташування поверхонь – КОМПАС в DELPHI

Інтерфейс ksToleranceBranch служить для опису параметрів

«Ніжки» (опори) позначення допуску форми й розташування Отримати цей інтерфейс можна за допомогою методу GetParamStruct інтерфейсу KompasObject Для цього в якості єдиного параметра даному методу потрібно передати значення константи ko_ToleranceBranch Розглянемо властивості інтерфейсу ksToleranceBranch

arrowType – Тип «ніжки» Можливі значення даного властивості та їх описи представлені в таблиці нижче

Значення

Опис

Зовнішній вигляд

0

«Ніжки» немає

1

«Ніжка» у вигляді трикутника

2

«Ніжка» у вигляді стрілки

tCorner – Позначає розташування точки перетину «ніжки» зі знаком позначення допуску форми й розташування Можливі значення даної властивості представлені на малюнку нижче (взято з документації КОМПАС)

Що таке базова точка буде пояснено пізніше

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

GetpMathPoint() – Повертає інтерфейс масиву ksDynamicArray (див главу 22) точок «ніжки» Кожна точка в цьому масиві описується інтерфейсом ksMathPointParam (див главу 29) Кожна «ніжка» являє собою ламану, яка будується по точках в цьому масиві

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

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

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

style – номер системного стилю тексту Існуючі стилі тексту наводилися в главі 22 Для позначення допуску форми й розташування поверхонь не передбачено окремого стилю тексту Тому в якості значення даної властивості ми будемо вказувати значення нуль (використовувати стиль тексту за замовчуванням для даного обєкта)

tBase – визначає положення базової точки Можливі значення даної властивості ідентичні можливим значенням властивості tCorner інтерфейсу ksToleranceBranch (див вище) Базова точка – це точка, від якої починається побудова позначення допуску форми й розташування поверхонь Фактично властивість tBase визначає орієнтацію позначення допуску форми й розташування поверхонь щодо базової точки

type_1 – орієнтація позначення допуску фори та розташування поверхонь Якщо значення цієї властивості дорівнює нулю, тоді позначення розташовується горизонтально Якщо ж значення цієї властивості дорівнює одиниці, тоді позначення розташовується вертикально Інших можливих значень цієї властивості не передбачено

x і y – координати базової точки

Тепер розглянемо методи інтерфейсу ksToleranceParam GetBranchArr () – повертає інтерфейс масиву ksDynamicArray (див

главу 22) «ніжок» Кожна «ніжка» в цьому масиві описується інтерфейсом ksToleranceBranch (див вище)

SetBranchArr – встановлює новий масив «ніжок» Інтерфейс встановлюваного масиву (ksDynamicArray) передається в якості єдиного параметра даного методу У разі успіху він повертає значення TRUE

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

Позначення допуску форми й розташування поверхонь являє собою таблицю розміром 10 на 10 Кожна комірка в цій таблиці має свій унікальний номер Нумерація осередків представлена ​​на малюнку нижче

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

Повний побудова позначення допуску форми й розташування поверхонь складається з трьох етапів: 1) побудова порожнього позначення і початок заповнення таблиці 2) заповнення таблиці 3) явне завершення заповнення таблиці Розглянемо ці етапи більш докладно

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

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

Метод ksTolerance вже створив пусте позначення В принципі, ви можете і не заповнювати таблицю, а відразу явно завершити її заповнення (про те, як це зробити трохи нижче) Але, в цьому випадку, ви отримаєте «порожнє» позначення без якої-небудь інформації про допуск форми і розташування

поверхонь Приклад такого «порожнього» позначення представлений на малюнку нижче

Тепер про те, як заповнити таблицю Для цього використовується два методи інтерфейсу ksDocument2D: ksColumnNumber і ksTextLine

Перший (ksColumnNumber) служить для зміни поточної комірки Він

аналогічний однойменним методом інтерфейсу ksStamp, який ми розглядали в розділі 5 В якості єдиного параметра він приймає номер комірки, яку слід зробити поточної

Другий метод (ksTextLine) ми розглядали в главі 45 Він служить для виведення рядка в поточну комірку таблиці

Після того, як таблиця заповнена (заповнювати її повністю зовсім необовязково, та й не потрібно) ми повинні явним чином зупинити її редагування

Для цього використовується метод ksEndObj () інтерфейсу ksDocument2D Даний метод не має вхідних параметрів Саме цей метод, у випадку упех, і повертає числовий ідентифікатор побудованого позначення

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

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

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

var

kompas: KompasObject Document2D: ksDocument2D

ToleranceParam: ksToleranceParam

DynamicArray1, DynamicArray2: ksDynamicArray ToleranceBranch: ksToleranceBranch MathPointParam: ksMathPointParam

TextItemParam: ksTextitemParam

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

Begin

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

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

ToleranceParam:=ksToleranceParam(kompasGetParamStruct(ko_ToleranceParam)) ToleranceParamstyle:=0/ / Стиль тексту ToleranceParamtBase:=1/ / Положення базової точки ToleranceParamtype_:=0/ / Горизонтально

/ / Координати базової точки ToleranceParamx:=110 ToleranceParamy:=110

/ / Отримуємо масив ніжок

DynamicArray1:=ksDynamicArray(ToleranceParamGetBranchArr())

DynamicArray1ksClearArray()

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

ToleranceBranch:=ksToleranceBranch(kompasGetParamStruct(ko_ToleranceBranch)) ToleranceBrancharrowType:=2/ / Ніжка у вигляді стрілки

/ / Розташування точки перетину ніжки і позначення допуску

ToleranceBranchtCorner:=1

/ / Отримуємо масив точок ніжки DynamicArray2:=ksDynamicArray(ToleranceBranchGetpMathPoint()) DynamicArray2ksClearArray()

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

MathPointParam:=ksMathPointParam(kompasGetParamStruct(ko_MathPointParam)) MathPointParamx:=100

MathPointParamy:=100

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

DynamicArray2ksAddArrayItem(-1,MathPointParam)

/ / Додаємо ніжку в масив ніжок

DynamicArray1ksAddArrayItem(-1,ToleranceBranch)

/ / Запускаємо побудова позначення допуску форми й розташування

Document2DksTolerance(ToleranceParam)

/ / Заповнення таблиці позначення допуску форми й розташування

TextItemParam:=ksTextItemParam(kompasGetParamStruct(ko_TextItemParam)) TextItemParamtype_:=17 //SPECIAL_SYMBOL

TextItemParamiSNumb:= 71/ / Перпендикулярність TextItemParams:=’;

/ / Заповнюємо осередок № 1

Document2DksColumnNumber(1) Document2DksTextLine(TextItemParam) TextItemParamtype_:=0 TextItemParamiSNumb:=0

/ / Запоняем осередок № 2

TextItemParams := 004; Document2DksColumnNumber(2) Document2DksTextLine(TextItemParam)

/ / Заповнюємо осередок № 3 TextItemParams: = А; Document2DksColumnNumber (3)

Document2DksTextLine(TextItemParam)

/ / Закриваємо таблицю Document2DksEndObj() 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>

*

*