Кінематична операція витискування – КОМПАС в DELPHI

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

У інтерфейсу ksBaseEvolutionDefinition всього одна властивість

sketchShiftType – Задає характер руху перерізу по траєкторії Можливі значення даної властивості представлені в таблиці нижче

Значення

Опис

0

Перетин переноситься паралельно самому собі

1

Перетин при перенесенні зберігає свій початковий кут з

траєкторією

2

Перетин виставляється ортогонально (перпендикулярно)

траєкторії При перенесенні ця ортогональность зберігається

Розглянемо основні методи інтерфейсу ksBaseEvolutionDefinition

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

PathPartArray() – Повертає інтерфейс ksEntityCollection (див главу 63), що описує масив обєктів ksEntity Згідно документації КОМПАС елементами даного масиву повинні бути криві, що утворюють траєкторію, по якій переміщається розтин Як показує експеримент, як елемент такого масиву може виступати обєкт ескіз, в якому у вигляді відрізків і кривих міститься траєкторія

SetSketch – Встановити ескіз перетину В якості єдиного параметра даний метод приймає інтерфейс ksEntity, що описує ескіз

перетину, переміщуваний уздовж траєкторії

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

const

pTop_Part = -1

o3d_planeXOZ = 2

o3d_planeYOZ = 3

o3d_sketch  = 5

o3d_baseEvolution = 45

vm_Shaded = 3

var

kompas: KompasObject Document3D: ksDocument3D Part: ksPart

EntitySketch1, EntitySketch2: ksEntity EntityPlaneYOZ,EntityPlaneXOZ:ksEntity EntityEvolution: ksEntity

EntityCollection: ksEntityCollection SketchDefinition: ksSketchDefinition Document2D : ksDocument2D

BaseEvolutionDefinition: ksBaseEvolutionDefinition

begin

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

kompas:=KompasObject(CreateOleObject(KompasApplication5))

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

Document3D:=ksDocument3D(kompasDocument3D())

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

Document3DCreate(FALSE,true)

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

Part:= ksPart(Document3DGetPart(pTop_Part))

/ / Отримуємо інтерфейс обєкта площину YOZ EntityPlaneYOZ: = ksEntity (PartGetDefaultEntity (o3d_planeYOZ))

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

EntityPlaneXOZ:=ksEntity(PartGetDefaultEntity(o3d_planeXOZ))

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

/ / Ескіз 1 (перетин)

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

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

EntitySketch1:=ksEntity(PartNewEntity(o3d_sketch))

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

SketchDefinition:=ksSketchDefinition(EntitySketch1GetDefinition())

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

SketchDefinitionSetPlane(EntityPlaneYOZ)

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

EntitySketch1Create()

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

Document2D:=ksDocument2D(SketchDefinitionBeginEdit())

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

Document2DksCircle(-20,-20,20,1)

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

SketchDefinitionEndEdit()

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

/ / Ескіз 2 (траєкторія)

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

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

EntitySketch2:=ksEntity(PartNewEntity(o3d_sketch))

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

SketchDefinition:=ksSketchDefinition(EntitySketch2GetDefinition())

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

SketchDefinitionSetPlane(EntityPlaneXOZ)

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

EntitySketch2Create()

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

Document2D:=ksDocument2D(SketchDefinitionBeginEdit())

/ / Будуємо траєкторію

Document2DksLineSeg(0,-20,30,-20,1) Document2DksArcByPoint(30,-40,20,30,-20,50,-40,-1,1)

Document2DksLineSeg(50,-40,50,-80,1)

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

SketchDefinitionEndEdit()

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

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

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

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

EntityEvolution:=ksEntity(PartNewEntity(o3d_baseEvolution))

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

BaseEvolutionDefinition:=ksBaseEvolutionDefinition(EntityEvolutionGetDefinition())

/ / Тип руху

BaseEvolutionDefinitionsketchShiftType:=1

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

BaseEvolutionDefinitionSetSketch(EntitySketch1)

/ / Отримуємо масив обєктів

EntityCollection:=ksEntityCollection(BaseEvolutionDefinitionPathPartArray()) EntityCollectionClear()

/ / Додаємо в масив ескіз з траєкторією

EntityCollectionAdd(EntitySketch2)

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

EntityEvolutionCreate()

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>

*

*