Вісь на перетині двох площин – КОМПАС в DELPHI

Параметри осі, утвореної в результаті перетину двох площин описуються інтерфейсом ksAxis2PlanesDefinition Його повертає метод GetDefinition () інтерфейсу ksEntity Властивостей у інтерфейсу ksAxis2PlanesDefinition немає Розглянемо його основні методи

GetPlane – Повертає інтерфейс ksEntity, що описує одну з пересічних площин Номер запитуваної площині (1 або 2)

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

SetPlane – Встановлює одну з пересічних площин Нижче представлений прототип цього методу

SetPlane(

number: Integer / / Номер встановлюваної площині (1 або 2) const plane: IDispatch / / Інтерфейс ksEntity встановлюваної площині

): WordBool

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

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

У даному прикладі вісь збігається з координатної віссю OY

const

pTop_Part = -1

o3d_planeXOY = 1

o3d_planeYOZ = 3

o3d_axis2Planes = 9

var

kompas: KompasObject Document3D: ksDocument3D Part: ksPart

EntityPlaneXOY, EntityPlaneYOZ: ksEntity EntityAxis: ksEntity

Axis2PlanesDefinition: ksAxis2PlanesDefinition

begin

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

kompas:=KompasObject(CreateOleObject(KompasApplication5))

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

Document3D:=ksDocument3D(kompasDocument3D())

/ / Створюємо документ-модель

Document3DCreate(FALSE,true)

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

Part:= ksPart(Document3DGetPart(pTop_Part))

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

EntityPlaneXOY:=ksEntity(PartGetDefaultEntity(o3d_planeXOY))

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

EntityPlaneYOZ:=ksEntity(PartGetDefaultEntity(o3d_planeYOZ))

//////////////////////////////////////////////

/ / Вісь, як результат перетину двох площин

//////////////////////////////////////////////

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

EntityAxis:=ksEntity(PartNewEntity(o3d_axis2Planes))

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

Axis2PlanesDefinition:=ksAxis2PlanesDefinition(EntityAxisGetDefinition())

/ / Встановлюємо першу площину

Axis2PlanesDefinitionSetPlane(1,EntityPlaneXOY)

/ / Встановлюємо другу площину

Axis2PlanesDefinitionSetPlane(2,EntityPlaneYOZ)

/ / Створюємо вісь

EntityAxisCreate()

end

/ / Робимо осі видимими

Document3DhideAllAxis:=FALSE

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

kompasVisible:=true

На малюнку нижче показаний результат роботи цієї програми

Тепер розглянемо трохи складніший приклад, в якому вісь не збігається ні з однією з координатних осей Для побудови такої осі, ми будемо використовувати зміщену площину (див главу 55), паралельну площині YOZ

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

const

pTop_Part = -1

o3d_planeXOY = 1

o3d_planeYOZ = 3

o3d_planeOffset = 14

o3d_axis2Planes = 9

var

kompas: KompasObject Document3D: ksDocument3D Part: ksPart

EntityPlaneXOY, EntityPlaneYOZ,EntityPlaneOffset: ksEntity EntityAxis: ksEntity

PlaneOffsetDefinition: ksPlaneOffsetDefinition Axis2PlanesDefinition: ksAxis2PlanesDefinition

begin

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

kompas:=KompasObject(CreateOleObject(KompasApplication5))

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

Document3D:=ksDocument3D(kompasDocument3D())

/ / Створюємо документ-модель

Document3DCreate(FALSE,true)

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

Part:= ksPart(Document3DGetPart(pTop_Part))

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

EntityPlaneXOY:=ksEntity(PartGetDefaultEntity(o3d_planeXOY))

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

EntityPlaneYOZ:=ksEntity(PartGetDefaultEntity(o3d_planeYOZ))

//////////////////////////////////////////////

/ / Зміщена площину

/////////////////////////////////////////////

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

EntityPlaneOffset:=ksEntity(PartNewEntity(o3d_planeOffset))

/ / Отримуємо інтерфейс параметрів зміщеною площині

PlaneOffsetDefinition:=ksPlaneOffsetDefinition(EntityPlaneOffsetGetDefinition())

/ / Напрямок зміщення – зворотне

PlaneOffsetDefinitiondirection:=FALSE

/ / Зміщення

PlaneOffsetDefinitionoffset := 20

/ / Встановлюємо базову площину

PlaneOffsetDefinitionSetPlane(EntityPlaneYOZ)

/ / Створюємо зміщену площину

EntityPlaneOffsetCreate()

//////////////////////////////////////////////

/ / Вісь, як результат перетину двох площин

//////////////////////////////////////////////

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

EntityAxis:=ksEntity(PartNewEntity(o3d_axis2Planes))

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

Axis2PlanesDefinition:=ksAxis2PlanesDefinition(EntityAxisGetDefinition())

/ / Встановлюємо першу площину

Axis2PlanesDefinitionSetPlane(1,EntityPlaneXOY)

/ / Встановлюємо другу площину

Axis2PlanesDefinitionSetPlane(2,EntityPlaneOffset)

/ / Створюємо вісь

EntityAxisCreate()

end

/ / Робимо площині невидимими Document3DhideAllPlanes: = TRUE

/ / Робимо осі видимими

Document3DhideAllAxis:=FALSE

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

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>

*

*