Операція видавлювання – КОМПАС в DELPHI

У тому випадку, якщо інтерфейс ksEntity описує обєкт «базова операція видавлювання» (o3d_baseExtrusion), то його метод GetDefinition () повертає інтерфейс ksBaseExtrusionDefinition У даного інтерфейсу всього одна властивість

directionType – Задає напрямок видавлювання У таблиці нижче представлені допустимі значення даної властивості

Направленіе1

Числове значення

Опис

dtNormal

0

пряме напрям (для

тонкої стінки назовні)

dtReverse

1

зворотний напрямок (для

тонкої стінки всередину)

dtBoth

2

в обидві сторони

dtMiddlePlane

3

від середньої площини

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

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

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

SetSideParam(

side1: WordBool      / / Напрямок видавлювання

type_: Smallint      / / Тип видавлювання depth: Double        / / Глибина видавлювання draftValue: Double   / / Кут ухилу draftOutward: WordBool / / Напрямок ухилу

): WordBool

Розглянемо параметри цього методу більш докладно

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

type_ – тип видавлювання Допустимі значення даного параметра представлені в таблиці нижче

1 На жаль, в модулі ksConstTLB дані константи не представлені, тому тут я наводжу їх чисельні значення

Тип видавліванія1

Числове значення

Опис

etBlind

0

строго на глибину

etThroughAll

1

через всю деталь

etUpToVertexTo

2

на відстань до вершини

etUpToVertexFrom

3

на відстань за вершину

etUpToSurfaceTo

4

на відстань до поверхні

etUpToSurfaceFrom

5

на відстань за поверхню

etUpToNearSurface

6

до найближчої поверхні

depth – глибина видавлювання У тому випадку, якщо параметр type_ приймає значення etUpToVertexTo, або etUpToVertexFrom, або etUpToSurfaceTo, або etUpToSurfaceFrom, то даний параметр (depth) інтерпретується як глибина, що віднімається або додається до відстані до зазначеного обєкта

draftValue – кут ухилу Він вимірюється між нормаллю до площини ескізу операції видавлювання і лінією, вздовж якої «видавлюється» ескіз

draftOutward – напрямок ухилу Якщо значення цього параметра дорівнює TRUE, то має місце ухил назовні (виходить перевернутий усічений конус), якщо ж значення цього параметра дорівнює FALSE, то має

місце ухил всередину (звичайний усічений конус)

У разі успіху метод SetSideParam повертає значення TRUE, а в разі помилки – значення FALSE

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

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

const

pTop_Part = -1

o3d_planeXOY = 1

o3d_sketch  = 5

o3d_baseExtrusion = 24

etBlind  = 0

vm_Shaded = 3

……………………………………………

var

kompas: KompasObject Document3D: ksDocument3D Part: ksPart

1 На жаль, в модулі ksConstTLB дані константи не представлені, тому тут я наводжу їх чисельні значення

EntityDraw, EntityPlane, EntityExtrusion: ksEntity SketchDefinition: ksSketchDefinition

Document2D : ksDocument2D

BaseExtrusionDefinition: ksBaseExtrusionDefinition

………………………………………………

begin

………………………………………………

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

kompas:=KompasObject(CreateOleObject(KompasApplication5))

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

Document3D:=ksDocument3D(kompasDocument3D())

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

Document3DCreate(FALSE,true)

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

Part:= ksPart(Document3DGetPart(pTop_Part))

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

EntityDraw:=ksEntity(PartNewEntity(o3d_sketch))

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

SketchDefinition:=ksSketchDefinition(EntityDrawGetDefinition())

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

EntityPlane:=ksEntity(PartGetDefaultEntity(o3d_planeXOY))

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

SketchDefinitionSetPlane(EntityPlane)

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

EntityDrawCreate()

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

Document2D:=ksDocument2D(SketchDefinitionBeginEdit())

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

Document2DksCircle(0,0,15,1)

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

SketchDefinitionEndEdit()

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

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

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

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

EntityExtrusion:=ksEntity(PartNewEntity(o3d_baseExtrusion))

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

BaseExtrusionDefinition := ksBaseExtrusionDefinition(EntityExtrusionGetDefinition())

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

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

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

BaseExtrusionDefinitionSetSketch(EntityDraw)

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

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

Document3DdrawMode:=vm_Shaded

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

Document3DshadedWireframe:=TRUE

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

kompasVisible:=true

end

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

Джерело: Норсеев Сергій, «розробка програм під КОМПАС У DELPHI»

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*