Главная » Delphi, OLE, САПР » Обозначение центра – КОМПАС в DELPHI

0

Параметры обозначения центра (ksCentreParam)

Интерфейс ksCentreParam служит для задания параметров обозначения центра. Получить его можно с помощью метода GetParamStruct интерфейса KompasObject, для этого в качестве единственного параметра ему нужно передать константу ko_CentreParam. Рассмотрим сво йства интерфейса ksCentreParam.

angle – согласно документации КОМПАС  это угол наклона обозначения центра к горизонтали (проиллюстрировано на рисунке ниже). Однако, добиться построения наклоненного обозначения центра мне не удалось.

baseCurve – числовой идентификатор геометрического объекта, центр которого мы обозначаем. Данное число возвращается методами построения соответствующих геометрических объектов.

lenXmTail – длина горизонтальной полуоси в отрицательном направлении оси X.

lenXpTail – длина горизонтальной полуоси в положительном направлении оси X. На рисунке ниже показано значение двух этих свойств.

Обратите  внимание,  что  система  КОМПАС  делает  их чуть  длинее, автоматически определяя длину «выступающих» частей.

lenYmTail – длина вертикальной полуоси в отрицательном направлении оси Y.

lenYpTail – длина вертикальной полуоси в положительном направлении оси Y. Для большей ясности, они проиллюстрированы на рисунке ниже.

Обратите внимание, что система КОМПАС делает их немного длиннее указанного     вами     значения,     автоматически     прибавляя     к     длине

«выступающие» части.

standXmTail – Если значение этого свойства true, тогда горизонтальная полуось в отрицательном направлении оси X строится по умолчанию. То есть значение свойства lenXmTail игнорируется. В противном случае она строится в соответствии со значением этого свойства.

standXpTail – Если значение этого свойства true, тогда горизонтальная полуось в положительном направлении оси X строится по умолчанию. То есть значение  свойства lenXpTail игнорируется. В противном случае она строится в соответствии со значением этого свойства.

standYmTail – Если значение этого свойства true, тогда вертикальная полуось в отрицательном направлении оси Y строится по умолчанию. То есть значение свойства lenYmTail игнорируется. В противном случае она строится в соотвествии со значением этого свойства.

standYpTail – Если значение этого свойства true, тогда вертикальная полуось в положительном направлении оси Y строится по умолчанию. То

есть значение свойства  lenYpTail игнорируется.  В противном случае  она строится в соответтствии со значением этого свойства.

type_1 – Тип обозначения центра. Данное свойство определяет, как следует обозначать центр. Возможные значения данного свойства и их интерпретация представлены в таблице ниже.

Значение свойства

Описание

Комментарий

0

Обозначать в виде маленького крестика

Значения свойств lenXmTail,

lenXpTail, lenYmTail, lenYpTail, standXmTail, standXpTail, standYmTail и standYpTail игнорируются

1

В виде одной (горизонтальной) оси

Значения свойств lenYmTail,

lenYpTail, standYmTail и standYpTail игнорируются

2

Две оси

x и y – координаты точки пересечения осей обозначения центра.

На этом свойства интерфейса KsCentreParam заканчиваются переходим к его методам.

Метод у него всего один – Init(). Он обнуляет значения всех свойств данного интерфейса и, в случае успеха возвращает значение true.

1 В документации КОМПАС данное свойство описывается как type (без знака подчеркивания на конце). Однако в заголовочных файлах оно представлено именно как type_ (со знаком подчеркивания).


Построение обозначения центра

Для построения обозначения центра используется метод ksCentreMarker интерфейса ksDocument2D. Данный метод в качестве единственного параметра принимает интерфейс ksCentreParam. В случае успеха он возвращает числовой идентификатор построенного обозначения центра, а в случае ошибки – нуль.

Пример

Ниже  приводится  исходный   текст  программы,  демонстрирующей построение обозначения центра.

var

kompas: KompasObject; Document2D: ksDocument2D; CentreParam: ksCentreParam; CircleId: integer;

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

Begin

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

//Строим окружность, центр которой будем проставлять

CircleId:=Document2D.ksCircle(100,100,30,1);

//Получаем интерфейс параметров обозначения центра

CentreParam:=ksCentreParam(kompas.GetParamStruct(ko_CentreParam)); CentreParam.angle:=0; //Угол наклона обозначения центра CentreParam.baseCurve:=CircleId;

CentreParam.lenXmTail:=0; CentreParam.lenXpTail:=0;

CentreParam.lenYmTail:=0; CentreParam.lenYpTail:=0; CentreParam.standXmTail:= true; CentreParam.standXpTail:= true; CentreParam.standYmTail:= true; CentreParam.standYpTail:= true; CentreParam.type_:=2; //Две оси CentreParam.x:=100; CentreParam.y:=100;

//Строим само обозначение центра

Document2D.ksCentreMarker(CentreParam); kompas.Visible:=true;

end;

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

Хотя в данном примере мы проставляли обозначение центра окружности, центр можно обозначать и у других геометрических объектов (например, многоугольников). Построение обозначения центра в случае других геометрических объектов осуществляется аналогичным образом.

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

По теме:

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