Управління розташуванням деталі в збірці – КОМПАС в DELPHI

При роботі з документом-збіркою ми маємо справу мінімум з двома системами координат: глобальної та локальної Причому локальних систем координат зазвичай декілька

Глобальна система координат являє собою систему координат самої збірки Вона не привязана до якої-небудь деталі і її положення не може бути змінено

Локальна система координат являє собою систему координат окремої деталі Кожна деталь має свою локальну систему координат і жорстко привязана до неї Для більшої ясності погляньте на малюнок нижче

На цьому малюнку зображено документ-збірка, в який було додано дві деталі На ньому чітко видно три системи координат: глобальна (посередині) і дві локальні (по одній на кожну деталь)

Кожна деталь жорстко привязана до своєї локальної системі координат Змінити становище деталі щодо своєї локальної системи координат можна Але, можна змінити положення локальної системи координат щодо глобальної

Це призведе до того, що положення деталі щодо глобальної системи координат також зміниться, але, залишиться колишнім щодо своєї локальної системи координат

На цьому і грунтується зміна положення деталі в збірці Ми переміщаємо (повертаємо) не саму деталь, а її локальну систему координат

При додаванні деталі в збірку вона розміщується так, щоб її локальна система координат збіглася з глобальною Тому у прикладі з попередньої глави деталі і наклалися один на одного

Положення локальної системи координат описується за допомогою інтерфейсу ksPlacement Отримати його можна за допомогою методу GetPlacement () інтерфейсу ksPart Властивостей у інтерфейсу ksPlacement немає Розглянемо основні його методи

SetOrigin – Встановлює нове положення центру локальної системи координат Нижче представлений прототип цього методу

SetOrigin(

x: Double

y: Double z: Double

): WordBool

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

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

GetOrigin – Дозволяє отримати координати центру локальної системи координат деталі в глобальній системі координат Даний метод має такий же прототип що і метод SetOrigin з тією лише різницею, що до всіх параметрів застосований кваліфікатор var У разі успіху метод GetOrigin повертає значення TRUE

SetAxes – Дозволяє встановити новий напрямок координатних осей Нижче представлений прототип цього методу

SetAxes(

Xx: Double

Xy: Double Xz: Double Yx: Double Yy: Double Yz: Double

): WordBool

Параметри Xx, Xy і Xz являють собою координати точки, через яку проходить і в бік якої спрямована координатна вісь Ox локальної системи координат

Параметри Yx, Yy і Yz являють собою координати точки, через яку проходить і в бік якої спрямована координатна вісь Oy локальної системи координат

Напрямок координатної осі Oz визначається з напрямків координатних осей Ox і Oy автоматично самою системою КОМПАС

Всі координати даного методу задаються в локальній системі координат деталі

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

SetAxis – Дозволяє задати напрямок однієї з координатних осей (або Ox, або Oy) Нижче представлений прототип цього методу

SetAxis(

x: Double y: Double z: Double

type_: Integer    / / Ознака осі

): WordBool

Перші три параметри даного методу являють собою координати точки, через яку проходить і в бік якої спрямована координатна вісь

Параметр type_ вказує на те, напрямок якої координатної осі (Ox або Oy) ми змінюємо Якщо значення цього параметра дорівнює нулю, то ми змінюємо напрямок осі Ox Якщо ж значення цього параметра більше нуля, то ми міняємо напрямок осі Oy Інші значення цього параметра в

документації не описані

Координати точки задаються в глобальній системі координат У разі успіху даний метод повертає значення TRUE

GetAxis – Дозволяє отримати направлення заданої координатної осі Даний метод має той же прототип, що й метод SetAxis але з двома відмінностями: 1) до параметрів x, y і z застосований кваліфікатор var 2) розширено допустимі значення параметра type_

Якщо значення параметра type_ дорівнює нулю, то ми запитуємо напрямок осі Ox Якщо значення параметра type_ дорівнює одиниці, то ми запитуємо напрямок осі Oy Якщо ж значення параметра type_ більше одиниці, то ми запитуємо напрямок осі Oz

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

З розташуванням локальної системи координат також повязаний ще один важливий метод інтерфейсу ksPart

UpdatePlacement () – оновлює розташування деталі Даний метод

потрібно викликати після будь-якої зміни в розташуванні деталі

Для переміщення деталі досить змінити координати центру локальної системи координат деталі

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

const

pTop_Part = -1

vm_Shaded = 3

var

kompas: KompasObject Document3D: ksDocument3D Part: ksPart

Placement: ksPlacement path: string

begin

path: = D: \ Study \ Деталь1m3d;

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

kompas:=KompasObject(CreateOleObject(KompasApplication5))

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

Document3D:=ksDocument3D(kompasDocument3D())

/ / Створюємо збірку

Document3DCreate(FALSE,FALSE)

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

Part:=ksPart(Document3DGetPart(pTop_Part))

/ / Додаємо модель в збірку

Document3DSetPartFromFile(path,Part,TRUE)

/ / Отримуємо інтерфейс доданої моделі в збірці Part: = ksPart (Document3DGetPart (0))

/ / Отримуємо інтерфейс розташування моделі Placement: = ksPlacement (PartGetPlacement ())

/ / Встановлюємо нове положення центру координат моделі

PlacementSetOrigin(20,20,20)

/ / Оновлюємо розташування моделі

PartUpdatePlacement()

/ / Перемальовувати збірку

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>

*

*