Операція «видавлювання обертанням» – КОМПАС в DELPHI

Параметри операції «видавлювання обертанням» описуються інтерфейсом ksBaseRotatedDefinition Цей інтерфейс повертає метод GetDefinition () інтерфейсу ksEntity, що описує цю операцію Основною властивістю інтерфейсу ksBaseRotatedDefinition є властивість directionType

directionType – Тип напрямки видавлювання Дана властивість аналогічно властивості directionType інтерфейсу ksBaseExtrusionDefinition (див главу 54)

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

GetSketch() – Повертає інтерфейс ksEntity, що описує ескіз операції «видавлювання обертанням»

SetSideParam – Встановлює параметри операції «видавлювання обертанням» Нижче представлений прототип цього методу

SetSideParam(

side1: WordBool / / Напрямок обертання angle: Double / / кут обертання

): WordBool

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

Параметр angle визначає кут, на який повертається ескіз в процесі цієї операції

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

SetSketch – Встановлює ескіз операції «видавлювання обертанням» В якості єдиного параметра даний метод приймає інтерфейс ksEntity, що описує новий ескіз У разі успіху метод SetSketch повертає значення TRUE

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

const

pTop_Part = -1

o3d_planeXOY = 1

o3d_sketch  = 5

o3d_baseRotated = 27

dtNormal = 0

vm_Shaded = 3

var

kompas: KompasObject Document3D: ksDocument3D Part: ksPart EntityPlaneXOY: ksEntity

EntitySketch,EntityRotated: ksEntity SketchDefinition: ksSketchDefinition BaseRotatedDefinition: ksBaseRotatedDefinition Document2D : ksDocument2D

begin

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

kompas:=KompasObject(CreateOleObject(KompasApplication5))

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

Document3D:=ksDocument3D(kompasDocument3D())

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

Document3DCreate(FALSE,true)

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

Part:= ksPart(Document3DGetPart(pTop_Part))

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

EntityPlaneXOY:=ksEntity(PartGetDefaultEntity(o3d_planeXOY))

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

/ / Ескіз

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

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

EntitySketch:=ksEntity(PartNewEntity(o3d_sketch))

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

SketchDefinition:=ksSketchDefinition(EntitySketchGetDefinition())

/ / Встановлюємо площину XOY базовою для ескізу

SketchDefinitionSetPlane(EntityPlaneXOY)

/ / Створюємо ескіз

EntitySketchCreate()

/ / Входимо в режим редагування ескізу

Document2D:=ksDocument2D(SketchDefinitionBeginEdit())

/ / Будуємо окружність

Document2DksCircle(-30,0,15,1)

/ / Будуємо осьову лінію

Document2DksLineSeg(0,-15,0,15,3)

/ / Виходимо з режиму редагування ескізу

SketchDefinitionEndEdit()

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

/ / Операція видавлювання обертанням

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

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

EntityRotated:=ksEntity(PartNewEntity(o3d_baseRotated))

/ / Отримуємо інтерфейс параметрів операції видавлювання обертанням

BaseRotatedDefinition:=ksBaseRotatedDefinition(EntityRotatedGetDefinition())

/ / Напрямок видавлювання – пряме

BaseRotatedDefinitiondirectionType:=dtNormal

/ / Встановлюємо параметри операції

BaseRotatedDefinitionSetSideParam(TRUE,90)

/ / Встановлюємо ескіз операції

BaseRotatedDefinitionSetSketch(EntitySketch)

/ / Створюємо операцію

EntityRotatedCreate()

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

Document3DdrawMode:=vm_Shaded

end

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

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>

*

*