Кутовий розмір з обривом – КОМПАС в DELPHI

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

Властивостей у інтерфейсу ksABreakDimParam немає, тому відразу перейдемо до розгляду його методів

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

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

GetDPar() – Повертає інтерфейс параметрів отрисовки розміру з обривом ksBreakDimDrawing (розглядався в розділі 23) Єдине що

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

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

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

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

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

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

var

kompas: KompasObject Document2D: ksDocument2D

ABreakDimParam: ksABreakDimParam

BreakDimDrawing: ksBreakDimDrawing ADimSourceParam: ksADimSourceParam DimTextParam: ksDimTextParam

………………………….

Begin

………………………….

/ / Будуємо відрізок, до якого буде примикати кутовий розмір

Document2DksLineSeg(100, 100, 120,100+trunc(20*tan(pi/3)) , 1)

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

ABreakDimParam:=ksABreakDimParam(kompasGetParamStruct(ko_ABreakDimParam))

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

BreakDimDrawing:=ksBreakDimDrawing(ABreakDimParamGetDPar())

BreakDimDrawingangle :=0 / / Кут нахилу ніжки внесений полки BreakDimDrawinglength:=0/ / Довжина ніжки внесений полки BreakDimDrawingpl:=false/ / Отрісовиваємих виносну лінію BreakDimDrawingpt:=1 / / У виносної лінії стрілка зсередини BreakDimDrawingshelfDir:=0/ / Внесений полки у нас немає BreakDimDrawingtextPos:=0/ / Автоматичне розміщення тексту

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

ADimSourceParam:=ksADimSourceParam(ABreakDimParamGetSPar())

/ / Координати центру розмірної дуги

ADimSourceParamxc:=100 ADimSourceParamyc:=100

/ / Координати точки першої виносної лінії ADimSourceParamx1:=100 ADimSourceParamy1:=100

/ / Координати точки другої виносної лінії ADimSourceParamx2:=100 ADimSourceParamy2:=100

/ / Початковий і кінцевий кут розмірної дуги

ADimSourceParamang1:=60

ADimSourceParamang2:=0

ADimSourceParamdir:=-1 / / Проти годинникової стрілки

ADimSourceParamrad:= 15/ / Радіус розмірної дуги

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

DimTextParamstyle:=3/ / Текст розмірного напису

/ / Отримуємо інтерфейс ksDynamicArray DynamicArray:=ksDynamicArray(DimTextParamGetTextArr()) DynamicArrayksClearArray() / / Очищаємо масив

/ / Будуємо сам кутовий розмір Document2DksAngBreakDimension(ABreakDimParam) 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>

*

*