Документ, що містить 3D-модель (збірку) – КОМПАС в DELPHI

Інтерфейс ksDocument3D служить для опису документа, що містить 3D-модель або збірку Отримати цей інтерфейс можна двома способами

Перший спосіб: за допомогою методу Document3D () інтерфейсу KompasObject Даний метод не має вхідних параметрів і повертає інтерфейс ksDocument3D

Другий спосіб: за допомогою методу ActiveDocument3D () інтерфейсу KompasObject Даний метод не має вхідних параметрів і повертає інтерфейс ksDocument3D поточного документа, що містить 3D-модель або збірку Якщо в системі КОМПАС немає активного документа, що містить 3D-модель або збірку, даний метод поверне значення NULL Тому будьте обережні з цим методом

Для відкриття існуючої 3D-моделі (збірки) використовується метод Open інтерфейсу ksDocument3D Ось прототип цього методу

Open(

const fileName: WideString / / Рядок з імям файлу, що відкривається

invisible: WordBool        / / Ознака видимості

): WordBool

filename визначає рядок з імям відкривається

invisible визначає Вілім відкривається Якщо значення даного параметра дорівнює TRUE, то відкривається документ стає невидимим Якщо ж значення даного параметра дорівнює FALSE, то відкривається документ стає видимим

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

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

var

kompas: KompasObject Document3D: ksDocument3D

begin

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

kompas:=KompasObject(CreateOleObject(KompasApplication5))

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

Document3D:=ksDocument3D(kompasDocument3D())

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

Document3DOpen (D: \ Study \ Детальm3d, FALSE)

kompasVisible:=true

end

Для створення нової 3D-моделі (збірки) використовується метод Create інтерфейсу ksDocument3D Ось прототип цього методу

Create(

Visible: WordBool / / Видимість документа

typeDoc: WordBool / / Тип документа

): WordBool

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

Параметр typeDoc визначає тип створюваного документа Якщо його значення дорівнює TRUE, то створюється 3D-модель Якщо ж його значення дорівнює FALSE, то створюється складання

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

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

Var

kompas: KompasObject Document3D: ksDocument3D

begin

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

kompas:=KompasObject(CreateOleObject(‘KompasApplication5’))

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

Document3D:=ksDocument3D(kompasDocument3D())

/ / Створюємо деталь

Document3DCreate(FALSE,TRUE) kompasVisible:=true

end

Для закриття документа, що містить 3D-модель або збірку, використовується метод Close () інтерфейсу ksDocument3D Даний метод не має вхідних параметрів і, у разі успіху, повертає значення TRUE

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

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

var

kompas: KompasObject Document3D: ksDocument3D

begin

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

kompas:=KompasObject(CreateOleObject(KompasApplication5))

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

Document3D:=ksDocument3D(kompasDocument3D())

/ / Створюємо деталь

Document3DCreate(FALSE,TRUE)

/ / Робимо КОМПАС видимим, щоб користувач міг побачити деталь

kompasVisible:=true

/ / Чекаємо 2 секунди (протягом них користувач бачить створену деталь)

Sleep(2000)

/ / Закриваємо документ з деталлю

Document3Dclose()

end

Для збереження 3D-моделі (збірки) використовується метод SaveAs інтерфейсу ksDocument3D В якості єдиного параметра даний метод приймає рядок з найменуванням файлу, в якому слід зберегти 3D-модель (Збірку)

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

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

var

kompas: KompasObject Document3D: ksDocument3D

begin

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

kompas:=KompasObject(CreateOleObject(KompasApplication5))

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

Document3D:=ksDocument3D(kompasDocument3D())

/ / Створюємо деталь

Document3DCreate(FALSE,TRUE)

/ / Зберігаємо створену деталь

Document3DSaveAs (D: \ Study \ Деталь2m3d)

/ / Закриваємо документ з деталлю

Document3DClose()

/ / Завершуємо роботу компаса

kompasQuit()

end

Основна частина властивостей інтерфейсу ksDocument3D дозволяє настроювати відображення 3D-моделі (збірки) Розглянемо деякі з цих властивостей

drawMode – Тип відображення 3D-моделі (збірки) Приймає одне із значень, перерахованих в таблиці нижче

Тип1

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

Опис

Приклад 3D-моделі

vm_Wireframe

0

каркас

vm_HiddenRemoved

1

без невідмімих ліній

vm_HiddenThin

2

невидимі лінії тонкі

vm_Shaded

3

напівтонової

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

hideAllPlaces – Задає видимість початку координат Якщо значення цієї властивості дорівнює TRUE, то початок координат невидимо, якщо ж значення цієї властивості одно FALSE, то початок координат мабуть На малюнку показано два відображення однієї і тієї ж 3D-моделі при різних значеннях даної властивості

hideAllPlanes – Задає видимість конструктивних (допоміжних) площин Якщо значення цієї властивості дорівнює TRUE, то площини не видно Якщо ж значення цієї властивості одно FALSE, то площини видні

hideAllAxis – Задає видимість конструктивних (допоміжних) осей Якщо значення цієї властивості дорівнює TRUE, то осі не видні Якщо ж значення цієї властивості одно FALSE, то осі видні

perspective – Задає відображення 3D-моделі (збірки) в перспективній проекції Якщо значення даної властивості одно TRUE, то перспективна проекція включена, якщо ж значення даного властивості одно FALSE, то перспективна проекція вимкнена На малюнку нижче показано два відображення однієї і тієї ж 3D-моделі при різних значеннях цього

властивості Для 3D-моделі зліва перспективна проекція вимкнена, а для 3D-моделі праворуч перспективна проекція включена

shadedWireframe – Для півтонування 3D-моделі (збірки) включає відображення каркаса Якщо значення даної властивості одно TRUE, то 3D-модель (зборка) відображається з каркасом, якщо ж значення цієї властивості одно FALSE, то 3D-модель (зборка) відображається без

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

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

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


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

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

Ваш отзыв

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

*

*