Главная » Delphi, OLE, САПР » Выносной элемент – КОМПАС в DELPHI

0

Параметры выносного элемента (ksRemoteElementParam)

Интерфейс ksRemoteElementParam  служит для описания параметров выносного элемента. Получить этот интерфейс можно с помощью метода GetParamStruct интерфейса KompasObject. Для этого в качестве единственного параметра данному методу нужно передать значение константы ko_RemoteElementParam. Рассмотрим свойства интерфейса ksRemoteElementParam.

height – высота выносного элемента без учета выносной полки. Значение этого свойства используется только в том случае, если выносной элемент обозначается прямоугольником или скругленным прямоугольником. Если выносной элемент обозначается окружностью, значение данного свойства игнорируется.

radius – радиус окружности выносного элемента. Значение данного свойства используется только в том случае, если выносной элемент обозначается окружностью, во всех остальных случаях оно игнорируется.

shelfDir – ориентация выносной полки. Ниже приводятся возможные значения данного свойства и их описание.

Значение

Описание

Вид выносной полки

1

Выносная полка ориентирована вправо

-1

Выносная полка ориентирована влево


2

Выносная полка ориентирована вверх

3

Выносная полка ориентирована вниз

shelfX и shelfY – координаты точки начала полки.

signType – тип обозначения выносного элемента. Допустимые типы обозначения выносного элемента представлены ниже.


тип1

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

Описание

Вид обозначения

re_Circle

0

окружность

re_Rectangle

1

прямоугольник

re_Ballon

2

Скругленный прямоугольник

smooth – радиус скругления углов прямоугольника. Используется только если, обозначение выносного элемента имеет форму прямоугольника. Во всех остальных случаях значение данного свойства игнорируется.

style – номер системного стиля текста. Допустимые номера системных стилей текста приводились в главе 22. Для выносного элемента не предусмотрено системного стиля текста, поэтому мы в качестве значения этого свойства будем указывать значение нуль. Данное значение говорит системе КОМПАС о том, что для данного объекта нужно использовать системный стиль текста, предусмотренный по умолчанию для данного вида объектов.

width – ширина выносного элемента без учета выносной полки. Значение данного свойства используется, если обозначение выносного элемента имеет формы прямоугольника или скругленного прямоугольника. Если же обозначение выносного элемента имеет форму окружности, то значение данного свойства игнорируется.

x и y – координаты центра выносного элемента.

1 К сожалению, в заголовочных файлах КОМПАСа данные константы не представлены, поэтому я привожу их численные значения.

Теперь рассмотрим методы интерфейса ksRemoteElementParam.

GetpText() – возвращает интерфейс массива ksDynamicArray. Этот массив используется для задания строк в обозначении выносного элемента. Он имеет тип CHAR_STR_ARR. Это значит, что строки в нем задаются в виде интерфейса ksChar255. Оба этих интерфейса (ksDynamicArray и ksChar255) мы уже рассматривали в главе 22.

Хотя в документации КОМПАС об этом  нигде не сказано, но заполнение этого массива является необязательным. Как показывает практика, система КОМПАС сама ставит обозначение выносного элемента в порядке нумерации (А, Б, В, Г, Д и так далее) вне зависимости от того, какое обозначение вы указали в массиве строк и указали ли вы там что-либо вообще.

Однако, так как это недокументированное поведение системы КОМПАС, то мы в нашем примере будем заполнять этот массив по всем правилам.

SetpText – устанавливает новый массив строк. Интерфейс нового массива (ksDynamicArray) передается этому методу в качестве единственного

параметра. В случае успеха метод возвращает значение TRUE, а в случае ошибки –значение FALSE.

Init – инициализирует значения свойств интерфейса. Данный метод в качестве единственного параметра принимает новое значение свойства style. Значения всех остальных свойств устанавливаются в значение нуль. В случае успеха данный метод возвращает значение TRUE, а в случае ошибки – значение FALSE.

Построение выносного элемента

Для построения выносного элемента используется метод ksRemoteElement интерфейса ksDocument2D. В качестве единственного параметра данный метод принимает интерфейс параметров выносного элемента ksRemoteElementParam.

В случае успеха метод возвращает числовой идентификатор построенного выносного элемента.

Пример

Ниже приводится фрагмент исходного кода программы, в которой осуществляется построение выносного элемента.

Var

kompas: KompasObject; Document2D: ksDocument2D;

RemoteElementParam: ksRemoteElementParam;

DynamicArray: ksDynamicArray; Char255: ksChar255;

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

Begin

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

//Получаем интерфейс параметров выносного элемента

RemoteElementParam:=ksRemoteElementParam(kompas.GetParamStruct(ko_RemoteElementParam)); RemoteElementParam.height := 0;

RemoteElementParam.radius := 10; //радиус RemoteElementParam.shelfDir := 1; //вправо RemoteElementParam.shelfX := 120;

RemoteElementParam.shelfY := 120; RemoteElementParam.signType := 0; // re_Circle

RemoteElementParam.smooth := 0; RemoteElementParam.style := 0;   //стиль по умолчанию RemoteElementParam.width := 0;

RemoteElementParam.x := 100;

RemoteElementParam.y := 100;

//Получаем интерфейс массива

DynamicArray := ksDynamicArray(RemoteElementParam.GetpText()); DynamicArray.ksClearArray();

//Получаем интерфейс строки

Char255 := ksChar255(kompas.GetParamStruct(ko_Char255));

Char255.str:= ‘А';

//Добавляем строку в массив

DynamicArray.ksAddArrayItem(-1,Char255);

//Строим сам выносной элемент

Document2D.ksRemoteElement(RemoteElementParam);

kompas.Visible:=true;

end;

На рисунке ниже показан результат работы этой программы.

Источник: Норсеев Сергей, «РАЗРАБОТКА ПРИЛОЖЕНИЙ ПОД КОМПАС В DELPHI»

По теме:

  • Комментарии