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

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

Інтерфейс ksCutRotatedDefinition дуже похід на інтерфейс ksBaseRotatedDefinition (див главу 58) Але, на відміну від останнього має

одне додаткове властивість

cut – Ознака виконуваної операції Якщо значення даної властивості одно TRUE, то має місце віднімання обєктів (класичне вирізання) Якщо ж значення цієї властивості одно FALSE, то має місце перетин обєктів

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

const

pTop_Part = -1

o3d_planeXOY = 1

o3d_planeXOZ = 2

o3d_sketch  = 5

o3d_baseExtrusion = 24

o3d_cutRotated = 29

dtNormal = 0

etBlind  = 0

vm_Shaded = 3

var

kompas: KompasObject Document3D: ksDocument3D Part: ksPart

EntitySketch1, EntitySketch2: ksEntity EntityPlaneXOY, EntityPlaneXOZ:ksEntity

EntityExtrusion, EntityCutRotated: ksEntity SketchDefinition: ksSketchDefinition Document2D : ksDocument2D

BaseExtrusionDefinition: ksBaseExtrusionDefinition CutRotatedDefinition: ksCutRotatedDefinition

begin

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

kompas:=KompasObject(CreateOleObject(KompasApplication5))

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

Document3D:=ksDocument3D(kompasDocument3D())

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

Document3DCreate(FALSE,true)

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

Part:= ksPart(Document3DGetPart(pTop_Part))

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

EntityPlaneXOY:=ksEntity(PartGetDefaultEntity(o3d_planeXOY))

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

EntityPlaneXOZ:=ksEntity(PartGetDefaultEntity(o3d_planeXOZ))

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

/ / Ескіз 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,70,0,TRUE)

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

BaseExtrusionDefinitionSetSketch(EntitySketch1)

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

EntityExtrusionCreate()

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

/ / Ескіз 2

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

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

EntitySketch2:=ksEntity(PartNewEntity(o3d_sketch))

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

SketchDefinition:=ksSketchDefinition(EntitySketch2GetDefinition())

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

SketchDefinitionSetPlane(EntityPLaneXOZ)

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

EntitySketch2Create()

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

Document2D:=ksDocument2D(SketchDefinitionBeginEdit())

/ / Будуємо прямокутник, яким будемо вирізати Document2DksLineSeg(10,-15,10,-60,1) Document2DksLineSeg(10,-15,30,-15,1) Document2DksLineSeg(30,-15,30,-60,1) Document2DksLineSeg(30,-60,10,-60,1)

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

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

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

SketchDefinitionEndEdit()

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

/ / Операція вирізування обертанням

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

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

EntityCutRotated:=ksEntity(PartNewEntity(o3d_cutRotated))

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

CutRotatedDefinition:=ksCutRotatedDefinition(EntityCutRotatedGetDefinition())

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

CutRotatedDefinitiondirectionType:=dtNormal

/ / Віднімання обєктів

CutRotatedDefinitioncut:=TRUE

/ / Встановлюємо параметри обертання

CutRotatedDefinitionSetSideParam(TRUE,360)

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

CutRotatedDefinitionSetSketch(EntitySketch2)

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

EntityCutRotatedCreate()

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>

*

*