Діаметральний розмір – КОМПАС в DELPHI

Інтерфейс ksRDimDrawingParam служить для завдання параметрів отрисовки діаметрального і радіального розмірів Розглянемо властивості цього інтерфейсу

ang – Кут нахилу розмірної лінії

pt1 – Тип стрелкі1 у першої кінцевий точки розмірної лінії pt22 – Тип стрілки у другої кінцевий точки розмірної лінії shelfDir – Наявність і орієнтація внесений полкі3

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

«Ніжки» внесений полки Якщо ж розмір будується без виносної полки, тоді це властивість визначає розташування тексту розмірного напису: якщо нуль, то автоматичне розташування тексту (зазвичай по середині), в іншому випадку задає відстань між кінцевою точкою розмірної лінії і текстом розмірного напису

Метод у даного інтерфейсу всього один: Init () Він скидає в нуль всі властивості даного інтерфейсу і, в разі успіху повертає значення true

Інтерфейс ksRDimSourceParam служить для завдання параметрів привязки діаметрального і радіального розмірів Розглянемо властивості цього інтерфейсу

rad – Радіус дуги (якщо ми проставляємо радіальний розмір) або кола (якщо ми проставляємо діаметральний розмір)

xc, yc – Координати центру дуги або кола, розмір якої ми проставляємо

Метод у даного інтерфейсу всього один: Init () Він скидає в нуль всі властивості даного інтерфейсу і, в разі успіху повертає значення true

1 Дивись опис інтерфейсу ksDimDrawingParam в главі 22

2 У тому випадку, якщо інтерфейс ksRDimDrawingParam використовується для проставляння радіального розміру, дана властивість ігнорується

3 Про можливі значення даної властивості та їх інтерпретацію дивися опис інтерфейсу ksDimDrawingParam в главі 22 (тут все аналогічно) Про особливості побудови діаметрального розміру з виносної полицею дивися приклад в цьому розділі

Інтерфейс ksRDimParam не має властивостей, тому переходимо відразу до його методам

GetDPar () – повертає інтерфейс параметрів отрисовки діаметрального і радіального розмірів ksRDimDrawingParam

GetSPar () – повертає інтерфейс параметрів привязки діаметрального і радіального розмірів ksRDimSourceParam

GetTPar () – повертає інтерфейс параметрів розмірного напису ksDimTextParam (розглядався в розділі 22)

SetDPar – встановлює новий інтерфейс ksRDimDrawingParam, що передається йому в якості єдиного параметра У разі успіху повертає значення true

SetSPar – встановлює новий інтерфейс ksRDimSourceParam, що передається йому в якості єдиного параметра У разі успіху повертає значення true

SetTPar – встановлює новий інтерфейс ksDimTextParam, що передається йому в якості єдиного параметра У разі успіху повертає значення true

Отримати інтерфейс ksRDimParam можна за допомогою методу GetParamStruct інтерфейсу KompasObject для цього в якості єдиного параметра даному методу потрібно передати константу ko_RDimParam

Для побудови самого діаметрального розміру потрібно викликати метод ksDiamDimension інтерфейсу ksDocument2D В якості єдиного параметра даний метод приймає інтерфейс ksRDimParam, який описує діаметральний розмір, який потрібно побудувати

У разі успіху метод ksDiamDimension повертає числовий ідентифікатор побудованого діаметрального розміру, а в разі помилки – нуль

Для того щоб у вас краще все вляглося в голові, напишемо невелику програму, що демонструє побудову діаметрального розміру Нижче наводиться вихідний код такої програми:

var

kompas: KompasObject Document2D: ksDocument2D RDimParam: ksRDimParam

RDimDrawingParam: ksRDimDrawingParam

RDimSourceParam: ksRDimSourceParam DimTextParam: ksDimTextParam

DynamicArray: ksDynamicArray

………………………

Begin

………………………

/ / Будуємо окружність, діаметр якої будемо вимірювати

Document2DksCircle(100,100,15,1)

/ / Отримуємо інтерфейс ksRDimParam

RDimParam:=ksRDimParam(kompasGetParamStruct(ko_RDimParam))

/ / Отримуємо інтерфейс ksRDimDrawingParam

RDimDrawingParam:=ksRDimDrawingParam(RDimParamGetDPar())

RDimDrawingParamang:=30 / / Кут нахилу розмірної лінії RDimDrawingParampt1:=1 / / Перша стрілка зсередини RDimDrawingParampt2:=1 / / Друга стрілка зсерединиі RDimDrawingParamshelfDir: = 0 / / Виносний полки немає RDimDrawingParamtextPos:=0/ / Автоматичне розміщення тексту

/ / Отримуємо інтерфейс ksRDimSourceParam

RDimSourceParam := ksRDimSourceParam(RDimParamGetSPar())

/ / Координати центру вимірюваної окружності RDimSourceParamxc:=100 RDimSourceParamyc:=100

/ / Радіус вимірюваної окружності

RDimSourceParamrad:=15

/ / Отримуємо інтерфейс ksDimTextParam DimTextParam:=ksDimTextParam(RDimParamGetTPar()) DimTextParambitFlag:=1/ / Автоматична простановка розміру

DimTextParamsign:=1/ / Значок діаметра DimTextParamstringFlag:=false DimTextParamstyle:=3/ / Текст розмірного напису

/ / Отримуємо інтерфейс ksDynamicArray

DynamicArray:=ksDynamicArray(DimTextParamGetTextArr())

DynamicArrayksClearArray() / / Очищаємо масив

/ / Будуємо діаметральний розмір Document2DksDiamDimension(RDimParam) kompasVisible:=true

end

У результаті роботи цієї програми ви побачите картину як на малюнку нижче:

Тепер поговоримо про внесений полиці При побудові діаметрального розміру виносну полку не можна розташувати як завгодно, як це у випадку з лінійним розміром У разі діаметрального розміру виносна полку завжди розташовується так, що її «ніжка» як би продовжує розмірну лінію

Для того щоб стало більш зрозуміло, про що я говорю, давайте трохи змінимо вищенаведений приклад наступним чином:

1)&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Значення властивості shelfDir інтерфейсу ksRDimDrawingParam встановимо рівне одиниці, що говорить про те, що у нас є виносна полку і що вона орієнтована вправо

2)&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Значення властивості textPos того ж інтерфейсу встановимо рівним 10

При значенні властивості shelfDir відмінному від нуля, дане значення інтерпретується як довжина «ніжки» внесений полки

Після внесених змін подивимося, що у нас вийшло Результат роботи зміненої таким чином програми представлений на малюнку нижче:

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

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


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

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

Ваш отзыв

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

*

*