Параметрезованих 3D-модель – КОМПАС в DELPHI

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

name – Рядок з імям змінної

note – Рядок з коментарем до змінної

value – Значення змінної Методів у інтерфейсу ksVariable немає

Інтерфейс ksVariableCollection служить для опису масиву зовнішніх змінних 3D-моделі Його повертає метод VariableCollection () інтерфейсу ksPart У цей масив потрапляють тільки зовнішні змінні Властивостей у інтерфейсу ksVariableCollection немає Тому відразу переходимо до розгляду його основних методів

First() – Повертає інтерфейс ksVariable першої змінної в цьому масиві

GetByIndex – Дозволяє отримати інтерфейс ksVariable, що описує зовнішню змінну із заданим індексом Нумерація змінних починається з нуля Порядковий номер запитуваної змінної

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

GetByName – Дозволяє отримати інтерфейс ksVariable, що описує зовнішню змінну із заданим найменуванням (властивістю name) Нижче представлений прототип цього методу

GetByName(

const name: WideString  / / Імя змінної

testFullName: WordBool  / / Це повне найменування

testIgnoreCase: WordBool / / Чи потрібно враховувати регістр

): IDispatch

Параметр name задає строкове імя змінної, яку ми шукаємо

Параметр testFullName вказує, чи є найменування, вказане в значенні параметра name, повним або частковим найменуванням змінної, яку ми хочемо знайти Якщо значення параметра testFullName одно TRUE, то параметр name містить повне найменування змінної Якщо ж значення параметра testFullName одно FALSE, то параметр name містить частину повного імені змінної

Параметр testIgnoreCase вказує, чи потрібно враховувати регістр букв при пошуку змінної Якщо значення цього параметра дорівнює TRUE, то регістр букв не враховується Якщо ж його значення дорівнює FALSE, то регістр букв в імені змінної враховується

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

Last() – Повертає інтерфейс ksVariable, що описує останню змінну в масиві

Next() – Повертає інтерфейс ksVariable, що описує наступну змінну в масиві

Prev() – Повертає інтерфейс ksVariable, що описує попередню змінну в масиві

Refresh() – Скасовує всі зміни, зроблені із змінними в даному масиві після останнього виклику методу RebuildModel () інтерфейсу ksPart

Розглянемо приклад взаємодії з параметризрвані 3D-моделлю Припустимо, у нас є параметрезованих деталь як на малюнку нижче

У цієї деталі дві зовнішніх змінних: «D» – діаметр основи і

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

const

pTop_Part = -1

vm_Shaded = 3

var

kompas: KompasObject Document3D: ksDocument3D Part: ksPart

VariableCollection: ksVariableCollection

Variable: ksVariable

begin

/ / Підключаємося до компаса

kompas:=KompasObject(CreateOleObject(KompasApplication5))

/ / Отримуємо інтерфейс документа-моделі

Document3D:=ksDocument3D(kompasDocument3D())

/ / Відкриваємо документ-модель

Document3DOpen (D: \ Study \ ПараметрізованнаяДетальm3d, FALSE)

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

Part:= ksPart(Document3DGetPart(pTop_Part))

/ / Отримуємо масив змінних моделі

VariableCollection:=ksVariableCollection(PartVariableCollection())

/ / Змінюємо значення першої змінної

Variable:=ksVariable(VariableCollectionGetByName(D,TRUE,TRUE)) Variablevalue:=100

/ / Змінюємо значення другої змінної

Variable:=ksVariable(VariableCollectionGetByName(H,TRUE,TRUE)) Variablevalue:=10

/ / Перебудовують модель

PartRebuildModel()

/ / Перемальовувати документ

Document3DRebuildDocument()

end

/ / Встановлюємо півтонове відображення моделі

Document3DdrawMode:=vm_Shaded

/ / Вмикаємо відображення каркаса

Document3DshadedWireframe:=TRUE

/ / Робимо КОМПАС видимим

kompasVisible:=true

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

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

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


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

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

Ваш отзыв

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

*

*