Графические примитивы

К графическим примитивам относятся:

Примечание

Двухмерные примитивы в основном используются в условно-графическом отображении оборудования.

Примечание

Трёхмерные кривые в основном используются как направляющие для построения сложных 3D-тел

Кривые в двумерном пространстве (класс Curve2D)

Общий класс Curve2D, порождающий кривые. Не имеет конструктора, но включает в себя функции, создающие различные виды кривых (см. Порождающие функции).

Кривые могут быть:

  • Односегментные (линии, дуги)

  • Составные (контуры)

Порождающие функции

Линия по двум точкам

Отрезок прямой, построенной по двум точкам. Относится к односегментным кривым.

CreateLineSegment2D(startPoint, endPoint)
Parameters:
  • startPoint (Point2D) – Задает точку начала линии.

  • endPoint (Point2D) – Задает точку конца линии.

Дуга окружности по трём точкам

Дуга, построенная по начальной точке, конечной и лежащей на дуге точке. Относится к односегментным кривым.

CreateArc2DByThreePoints(startPoint, centerPoint, endPoint)
Parameters:
  • startPoint (Point2D) – Задает точку начала дуги.

  • centerPoint (Point2D) – Задает точку, лежащую на дуге.

  • endPoint (Point2D) – Задает точку конца дуги.

Дуга окружности по центру, начальной точке и конечной точке

Дуга, построенная по центру окружности, начальной и конечной точке. Относится к односегментным кривым.

CreateArc2DByCenterStartEndPoints(centerPoint, startPoint, endPoint, clockwise)
Parameters:
  • centerPoint (Point2D) – Задает точку центра дуги.

  • startPoint (Point2D) – Задает точку начала дуги.

  • endPoint (Point2D) – Задает точку конца дуги.

  • clockwise (Boolean) – Задает направление дуги. True - по часовой стрелке, False - против часовой стрелки.

Параметрическая кривая в двумерном пространстве

Односегментная кривая, описываемая с помощью параметрических функций xFunction и yFunction. Тип системы координат (CoreEnum) указывается в параметре coordinateSystem. Для определения области параметра кривой используются начальное значение tStart и конечное значение tEnd.

Примечание

Составление символьных выражений см. официальное руководство Renga STDL

CreateParametricCurve2D(xFunction, yFunction, coordinateSystem, tStart, tEnd)
Parameters:
  • xFunction (Символьное выражение) – Выражение, описывающее зависимость X-координаты от параметра.

  • yFunction (Символьное выражение) – Выражение, описывающее зависимость Y-координаты от параметра.

  • coordinateSystem (CoordinateSystem2D) – Задает тип системы координат в двухмерном пространстве.

  • tStart (Number) – Задает начальное значение параметра.

  • tEnd (Number) – Задает конечное значение параметра.

Окружность

Замкнутая кривая, все точки которой равноудалены от заданной точки. Относится к односегментным кривым.

CreateCircle2D(centerPoint, radius)
Parameters:
  • centerPoint (Point2D) – Задает центр окружности.

  • radius (Number) – Задает радиус окружности.

Полилиния

Контур, состоящий из сегментов-линий. Может быть замкнутым или открытым.

CreatePolyline2D({points})
Parameters:

points (table of Points2d) – Задает таблицу точек контура.

Эллипс

Замкнутая кривая. Относится к односегментным кривым.

CreateEllipse2D(centerPoint, angle, halfRadiusX, halfRadiusY)
Parameters:
  • centerPoint (Point2D) – Задает центр эллипса.

  • angle (Number) – Задает угол поворота против часовой стрелки относительно центра в радианах.

  • halfRadiusX (Number) – Задает радиус полуоси вдоль оси X.

  • halfRadiusY (Number) – Задает радиус полуоси вдоль оси Y.

Дуга эллипса по центру, начальной точке и конечной точке

Односегментная кривая.

CreateEllipticalArc2DByCenterStartEndPoints(centerPoint, angle, halfRadiusX, halfRadiusY, startPoint, endPoint, clockwise)
Parameters:
  • centerPoint (Point2D) – Задает центр эллипса.

  • angle (Point2D) – Задает угол начала вращения против часовой стрелки относительно центра в радианах.

  • halfRadiusX (Number) – Задает радиус полуоси вдоль оси X.

  • halfRadiusY (Number) – Задает радиус полуоси вдоль оси Y.

  • startPoint (Point2D) – Задает точку начала дуги.

  • endPoint (Point2D) – Задает точку конца дуги.

  • clockwise (Boolean) – Задает направление дуги. True - по часовой стрелке, False - против часовой стрелки.

Прямоугольник с центром в начале координат

Четырёхугольник, у которого все углы прямые. Относится к составным замкнутым кривым.

CreateRectangle2D(centerPoint, angle, width, height)
Parameters:
  • centerPoint (Point2D) – Задает центр прямоугольника.

  • angle (Number) – Задает угол поворота против часовой стрелки относительно центра в радианах.

  • width (Number) – Задает ширину прямоугольника.

  • height (Number) – Задает высоту прямоугольника.

Составная кривая

Начало каждой кривой должно совпадать с концом предыдущей.

CreateCompositeCurve2D({curves})
Parameters:

curves (table of Curves2d) – Задает таблицу двумерных кривых.

Методы класса

Общие методы двухмерных кривых Curve2D

  • Сместить по осям X, Y

:Shift(dX, dY)
Parameters:
  • dX (Number) – Задает смещение по оси X.

  • dY (Number) – Задает смещение по оси Y.

  • Повернуть на угол вокруг точки

:Rotate(point, angle)
Parameters:
  • point (Point2D) – Задает точку вращения.

  • angle (Number) – Задает угол поворота в радианах.

  • Масштабировать по двум осям относительно указанной точки

:Scale(point, scaleX, scaleY)
Parameters:
  • point (Point2D) – Задает точку, относительно которой будет масштабироваться кривая.

  • scaleX (Number) – Задает коэффициент масштабирования по оси X.

  • scaleY (Number) – Задает коэффициент масштабирования по оси Y.

  • Преобразовать согласно матрице

:Transform(matrix)
Parameters:

matrix (Matrix2D) – Задает матрицу преобразования в двумерном пространстве.

  • Изменить направление кривой на противоположное

:Invert()
Returns:

Инвертированная двумерная кривая

Return type:

Curve2D

  • Вернуть копию кривой

:Clone()
Returns:

Копия двумерной кривой

Return type:

Curve2D

  • Обрезать кривую по двум точкам

:Trim(startPoint, endPoint)
Parameters:
  • startPoint (Point2D) – Задает первую точку.

  • endPoint (Point2D) – Задает вторую точку.

  • Вернуть начальную точку кривой

:GetStartPoint()
Returns:

Двухмерная точка

Return type:

Point2D

  • Вернуть конечную точку кривой

:GetEndPoint()
Returns:

Двухмерная точка

Return type:

Point2D

  • Вернуть ближайшую точку до соседней кривой

:GetClosestPointTo(otherCurve)
Parameters:

otherCurve (Curve2D) – Задает другую двумерную кривую.

  • Вернуть габаритный прямоугольник кривой

:GetBounds()
Returns:

Габаритный прямоугольник

Return type:

BoundingRect

Операторы

  • Проверить равенство с другой кривой

==
Результат:

Логическое значение

Тип результата:

Boolean

  • Проверить неравенство с другой кривой

~=
Результат:

Логическое значение

Тип результата:

Boolean

Функции, не члены класса

  • Скруглить углы составной кривой

FilletCorners2D(curve, radius)
Parameters:
  • curve (Curve2D) – Задает двумерную кривую.

  • radius (Number) – Задает радиус скругления.

  • Скруглить два соседних сегмента кривой

FilletCornerAfterSegment2D(curve, segmentIndex, radius)
Parameters:
  • curve (Curve2D) – Задает двумерную кривую.

  • segmentIndex (Number) – Задает индекс (порядковый номер) сегмента кривой.

  • radius (Number) – Задает радиус скругления.

  • Вернуть список точек пересения кривых Curve1 и Curve2.

IntersectCurves2D(first, second, includeTouch)
Parameters:
  • first (Curve2D) – Задает первую двумерную кривую.

  • second (Curve2D) – Задает вторую двумерную кривую.

  • includeTouch (Boolean) – Включать точки касания (true/false).

Returns:

Двухмерная точка.

Return type:

Point2D

  • Обрезать кривые по контурам

ClipCurvesByRegions({clippedCurves}, {clipperRegions}, invertRegions, cutOnCurve)
Parameters:
  • {clippedCurves} (table of Curves2D) – Задает таблицу двумерных кривых, которые необходимо обрезать.

  • {clipperRegions} (table of FillAreas) – Задает таблицу двумерных контуров, по которым обрезать.

  • invertRegions (boolean) – Инвертировать контуры.

  • cutOnCurve (boolean) – Если False, не удаляются части кривой, совпадающие с участками границы.

Returns:

Односегментные кривые

Return type:

table of Curves2D

Область заливки (класс FillArea)

Область заливки состоит из набора замкнутых составных контуров. Область заливки — это связное множество точек двумерного пространства, границы которого описывают контуры. Контуры региона замкнуты и не имеют самопересечений (но могут иметь самокасания). В произвольном регионе обязан быть один (и только один) внешний контур outerBoundary (положительный обход внешнего контура осуществляется против часовой стрелки) и несколько внутренних контуров innerBoundaries (положительный обход внутреннего контура осуществляется по часовой стрелке), которые полностью лежат внутри внешнего контура (или могут его касаться).

Конструктор класса:

FillArea(outerBoundary, {innerBoundaries})
Parameters:
  • outerBoundary (Curve2D) – Задает внешний контур из замкнутого составного контура.

  • innerBoundaries (table of Curves2D) – (optional) Задает таблицу замкнутых составных контуров, описывающих внутренние границы области заливки.

Методы класса

  • Сместить по осям X, Y

:Shift(dX, dY)
Parameters:
  • dX (Number) – Задает смещение по оси X.

  • dY (Number) – Задает смещение по оси Y.

  • Повернуть относительно точки

:Rotate(point, angle)
Parameters:
  • point (Point2D) – Задает точку-центр вращения.

  • angle (Number) – Задает угол поворота в радианах.

  • Масштабировать по двум осям относительно указанной точки

:Scale(point, scaleX, scaleY)
Parameters:
  • point (Point2D) – Задает точку, относительно которой будет масштабироваться кривая.

  • scaleX (Number) – Задает коэффициент масштабирования по оси X.

  • scaleY (Number) – Задает коэффициент масштабирования по оси Y.

  • Преобразовать согласно матрице

:Transform(matrix)
Parameters:

matrix (Matrix2D) – Задает матрицу преобразования в двумерном пространстве.

  • Вернуть копию объекта

:Clone()
Returns:

Копия контура

Return type:

FillArea

  • Вернуть внутренние границы

:GetInnerBoundaries()
Returns:

Таблица составных контуров.

Return type:

table of Curves2D

  • Вернуть внешнюю границу

:GetOuterBoundary()
Returns:

Составной контур.

Return type:

Curve2D

Операторы

  • Проверить равенство с другим контуром

==
Результат:

Логическое значение

Тип результата:

Boolean

  • Проверить неравенство с другим контуром

~=
Результат:

Логическое значение

Тип результата:

Boolean

Кривые в трехмерном пространстве (класс Curve3D)

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

Порождающие функции

Линия по двум точкам

CreateLineSegment3D(startPoint, endPoint)
Parameters:
  • startPoint (Point3D) – Задает точку начала линии.

  • endPoint (Point3D) – Задает точку конца линии.

Дуга окружности по центру, начальной и конечной точкам

CreateArc3DByThreePoints(startPoint, centerPoint, endPoint)
Parameters:
  • startPoint (Point3D) – Задает точку центра дуги.

  • centerPoint (Point3D) – Задает точку начала дуги.

  • endPoint (Point3D) – Задает точку конца дуги.

Дуга окружности по центру, начальной точке и конечной точке

Дуга, построенная по центру окружности, начальной и конечной точке в трёхмерном пространстве. Относится к односегментным кривым.

CreateArc3DByCenterStartEndPoints(centerPoint, startPoint, endPoint, clockwise)
Parameters:
  • centerPoint (Point3D) – Задает точку центра дуги.

  • startPoint (Point3D) – Задает точку начала дуги.

  • endPoint (Point3D) – Задает точку конца дуги.

  • clockwise (Boolean) – Задает направление дуги. True - по часовой стрелке, False - против часовой стрелки.

Окружность в трёхмерном пространстве

CreateCircle3D(centerPoint, normal, radius)
Parameters:
  • centerPoint (Point3D) – Задает центр окружности.

  • normal (Vector3D) – Задает вектор, ортогональный плоскости фигуры.

  • radius (Number) – Задает радиус.

Эллипс в трёхмерном пространстве

CreateEllipse3D(centerPoint, normal, majorVector, majorRadius, minorRadius)
Parameters:
  • centerPoint (Point3D) – Задает центр эллипса.

  • normal (Vector3D) – Задает вектор, ортогональный плоскости фигуры.

  • majorVector (Vector3D) – Задает вектор, сонаправленный с первой полуосью. Вторая полуось сонаправлена с векторным произведением normal * majorVector.

  • majorRadius (Number) – Задает радиус первой полуоси.

  • minorRadius (Number) – Задает радиус второй полуоси.

Дуга эллипса по центру, начальной точке и конечной точке

Односегментная кривая в трёхмерном пространстве.

CreateEllipticalArc3D(centerPoint, normal, majorVector, majorRadius, minorRadius, startPoint, endPoint, clockwise)
Parameters:
  • centerPoint (Point3D) – Задает центр эллипса.

  • normal (Vector3D) – Задает вектор, ортогональный плоскости фигуры.

  • majorVector (Vector3D) – Задает вектор, сонаправленный с первой полуосью. Вторая полуось сонаправлена с векторным произведением normal * majorVector.

  • majorRadius (Number) – Задает радиус первой полуоси.

  • minorRadius (Number) – Задает радиус второй полуоси.

  • startPoint (Point3D) – Задает точку начала дуги.

  • endPoint (Point3D) – Задает точку конца дуги.

  • clockwise (Boolean) – Задает направление дуги. True - по часовой стрелке, False - против часовой стрелки.

Трёхмерная составная кривая

Начало каждой кривой должно совпадать с концом предыдущей.

CreateCompositeCurve3D({curves})
Parameters:

curves (table of Curves3d) – Задает таблицу трёхмерных кривых.

Полилиния в трёхмерном пространстве

Контур, состоящий из сегментов-линий. Может быть замкнутым или открытым.

CreatePolyline3D({points})
Parameters:

points (table of Points3d) – Задает таблицу точек контура.

Параметрическая кривая в трёхмерном пространстве

Односегментная кривая, описываемая с помощью параметрических функций xFunction и yFunction. Тип системы координат (CoreEnum) указывается в параметре coordinateSystem. Для определения области параметра кривой используются начальное значение tStart и конечное значение tEnd.

Примечание

Составление символьных выражений см. официальное руководство Renga STDL

CreateParametricCurve3D(xFunction, yFunction, yFunction, coordinateSystem, tStart, tEnd, placement)
Parameters:
  • xFunction (Символьное выражение) – Выражение, описывающее зависимость X-координаты от параметра.

  • yFunction (Символьное выражение) – Выражение, описывающее зависимость Y-координаты от параметра.

  • zFunction (Символьное выражение) – Выражение, описывающее зависимость Z-координаты от параметра.

  • coordinateSystem (CoordinateSystem3D) – Задает тип системы координат в трёхмерном пространстве.

  • tStart (Number) – Задает начальное значение параметра.

  • tEnd (Number) – Задает конечное значение параметра.

  • placement (Placement3D) – (optional) Задает координатную плоскость. Если система координат не задана, то для построения используется глобальная система координат.

Прямоугольник с центром в начале координат

Четырёхугольник, у которого все углы прямые, в трёхмерном пространстве. Относится к составным замкнутым кривым.

CreateRectangle3D(centerPoint, normal, widthVector, width, height)
Parameters:
  • centerPoint (Point3D) – Задает центр прямоугольника.

  • normal (Vector3D) – Задает вектор, ортогональный плоскости фигуры.

  • majorVector (Vector3D) – Задает вектор, сонаправленный с первой полуосью. Вторая полуось сонаправлена с векторным произведением normal * majorVector.

  • width (Number) – Задает ширину прямоугольника.

  • height (Number) – Задает высоту прямоугольника.

Методы класса

Общие методы трёхмерных кривых Curve3D

  • Сместить по осям X, Y, Z

:Shift(dX, dY, dZ)
Parameters:
  • dX (Number) – Задает смещение по оси X.

  • dY (Number) – Задает смещение по оси Y.

  • dZ (Number) – Задает смещение по оси Z.

  • Повернуть относительно оси

:Rotate(axis, angle)
Parameters:
  • axis (Axis3D) – Задает ось вращения.

  • angle (Number) – Задает угол поворота в радианах.

  • Преобразовать согласно матрице

:Transform(matrix)
Parameters:

matrix (Matrix3D) – Задает матрицу преобразования в трёхмерном пространстве.

  • Изменить направление кривой на противоположное

:Invert()
Returns:

Инвертированная трёхмерная кривая

Return type:

Curve3D

  • Вернуть копию кривой

:Clone()
Returns:

Копия трёхмерной кривой

Return type:

Curve3D

  • Обрезать трёхмерную кривую по двум точкам

:Trim(startPoint, endPoint)
Parameters:
  • startPoint (Point3D) – Задает первую точку.

  • endPoint (Point3D) – Задает вторую точку.

  • Вернуть начальную точку кривой

:GetStartPoint()
Returns:

Трёхмерная точка.

Return type:

Point3D

  • Вернуть конечную точку кривой

:GetEndPoint()
Returns:

Трёхмерная точка.

Return type:

Point3D

Операторы

  • Проверить равенство с другим трёхмерным контуром

==
Результат:

Логическое значение

Тип результата:

Boolean

  • Проверить неравенство с другим трёхмерным контуром

~=
Результат:

Логическое значение

Тип результата:

Boolean

Функции, не члены класса

  • Скруглить углы составной трёхмерной кривой

FilletCorners3D(curve, radius)
Parameters:
  • curve (Curve3D) – Задает трёхмерную кривую.

  • radius (Number) – Задает радиус скругления.

  • Скруглить два соседних сегмента трёхмерной кривой

FilletCornerAfterSegment3D(curve, segmentIndex, radius)
Parameters:
  • curve (Curve3D) – Задает трёхмерную кривую.

  • segmentIndex (Number) – Задает индекс (порядковый номер) сегмента кривой.

  • radius (Number) – Задает радиус скругления.