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

Параметри операції «приклеювання обертанням» задаються інтерфейсом ksBossRotatedDefinition Його повертає метод GetDefinition інтерфейсу ksEntity

Інтерфейс ksBossRotatedDefinition аналогічний інтерфейсу ksBaseRotatedDefinition, який ми розглядали в главі 58

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

const

pTop_Part = -1

o3d_planeXOY = 1

o3d_sketch  = 5

o3d_planeOffset = 14

o3d_baseExtrusion = 24

o3d_bossRotated = 28

dtNormal = 0

etBlind  = 0

vm_Shaded = 3

var

kompas: KompasObject Document3D: ksDocument3D Part: ksPart

EntitySketch1, EntitySketch2: ksEntity

EntityPlaneXOY, EntityPlaneOffset:ksEntity EntityExtrusion, EntityBossRotated: ksEntity SketchDefinition: ksSketchDefinition

Document2D : ksDocument2D

BaseExtrusionDefinition: ksBaseExtrusionDefinition PlaneOffsetDefinition: ksPlaneOffsetDefinition BossRotatedDefinition: ksBossRotatedDefinition

begin

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

kompas:=KompasObject(CreateOleObject(KompasApplication5))

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

Document3D:=ksDocument3D(kompasDocument3D())

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

Document3DCreate(FALSE,true)

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

Part:= ksPart(Document3DGetPart(pTop_Part))

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

EntityPlaneXOY:=ksEntity(PartGetDefaultEntity(o3d_planeXOY))

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

/ / Ескіз 1

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

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

EntitySketch1:=ksEntity(PartNewEntity(o3d_sketch))

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

SketchDefinition:=ksSketchDefinition(EntitySketch1GetDefinition())

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

SketchDefinitionSetPlane(EntityPlaneXOY)

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

EntitySketch1Create()

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

Document2D:=ksDocument2D(SketchDefinitionBeginEdit())

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

Document2DksCircle(0,0,15,1)

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

SketchDefinitionEndEdit()

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

/ / Операція видавлювання

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

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

EntityExtrusion:=ksEntity(PartNewEntity(o3d_baseExtrusion))

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

BaseExtrusionDefinition:=ksBaseExtrusionDefinition(EntityExtrusionGetDefinition())

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

BaseExtrusionDefinitionSetSideParam(TRUE,etBlind,20,0,TRUE)

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

BaseExtrusionDefinitionSetSketch(EntitySketch1)

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

EntityExtrusionCreate()

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

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

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

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

EntityPlaneOffset:=ksEntity(PartNewEntity(o3d_planeOffset))

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

PlaneOffsetDefinition:=ksPlaneOffsetDefinition(EntityPlaneOffsetGetDefinition())

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

PlaneOffsetDefinitiondirection:=TRUE

/ / Зміщення

PlaneOffsetDefinitionoffset := 20

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

PlaneOffsetDefinitionSetPlane(EntityPlaneXOY)

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

EntityPlaneOffsetCreate()

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

/ / Ескіз 2

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

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

EntitySketch2:=ksEntity(PartNewEntity(o3d_sketch))

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

SketchDefinition:=ksSketchDefinition(EntitySketch2GetDefinition())

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

SketchDefinitionSetPlane(EntityPlaneOffset)

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

EntitySketch2Create()

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

Document2D:=ksDocument2D(SketchDefinitionBeginEdit())

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

Document2DksCircle(0,0,15,1)

/ / Будуємо вісь

Document2DksLineSeg(25,-15,25,15,3)

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

SketchDefinitionEndEdit()

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

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

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

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

EntityBossRotated:=ksEntity(PartNewEntity(o3d_bossRotated))

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

BossRotatedDefinition:=ksBossRotatedDefinition(EntityBossRotatedGetDefinition())

/ / Напрямок обертання – пряме

BossRotatedDefinitiondirectionType:=dtNormal

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

BossRotatedDefinitionSetSideParam(TRUE,180)

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

BossRotatedDefinitionSetSketch(EntitySketch2)

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

EntityBossRotatedCreate()

end

/ / Робимо площині невидимими

Document3DhideAllPlanes:=TRUE

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

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>

*

*