FC_CommonCircleOfTwoSpheres

 

FC_CommonCircleOfTwoSpheres - General Information

Overview

Type:

Function

Available as of:

V1.0.3.0

Versions:

Current version

Task

Calculates the intersection circle of two spheres in the 3-dimensional space.

Description

Calculates the circle in which the spherical surfaces intersect. If the spheres intersect in one point, the radius of the intersection circle is 0. If the spheres do not intersect at all or have a common center, an error is issued.

Interface

Input

Data type

Description

i_stSphere1

ST_Sphere

Sphere 1

i_stSphere2

ST_Sphere

Sphere 2

Output

Data type

Description

q_etDiag

GD.ET_Diag

General library-independent statement on the diagnostic.

A value not equal to ET_Diag.Ok corresponds to an diagnostic message.

q_etDiagExt

ET_DiagExt

POU-specific output on the diagnostic.

q_etDiag = ET_Diag.Ok -> Status message

q_etDiag <> ET_Diag.Ok -> Diagnostic message

Return Value

Data type

Description

ST_Circle3D

Intersection circle of the two spheres i_stSphere1 and i_stSphere2

Diagnostic Messages

q_etDiag

q_etDiagExt

Enumeration value

Description

OK

Ok

0

Ok

InputParameterInvalid

CentresEqual

46

The centers are located on top of each other.

InputParameterInvalid

RadiusRangeSphere1

23

The radius of sphere 1 is outside the valid range.

InputParameterInvalid

RadiusRangeSphere2

24

The radius of sphere 2 is outside the valid range.

InputParameterInvalid

SpheresNotCutting

47

The spheres do not intersect.

CentresEqual

Enumeration name:

CentresEqual

Enumeration value:

46

Description:

The centers are located on top of each other.

Issue

Cause

Solution

-

The distance between i_stSphere1.StCentre and i_stSphere2.stCenter is less than Gc_lrZeroTolerance.

The spheres must not have a common center.

Ok

Enumeration name:

Ok

Enumeration value:

0

Description:

Ok

The intersection circle of the two spheres has been calculated successfully.

RadiusRangeSphere1

Enumeration name:

RadiusRangeSphere1

Enumeration value:

23

Description:

The radius of sphere 1 is outside the valid range.

Issue

Cause

Solution

-

At the input i_stSphere1.lrRadius, a number <= 0 has been applied.

The radius of the sphere must be greater than 0.

RadiusRangeSphere2

Enumeration name:

RadiusRangeSphere2

Enumeration value:

24

Description:

The radius of sphere 2 is outside the valid range.

Issue

Cause

Solution

-

At the input i_stSphere2.lrRadius, a number <= 0 has been applied.

The radius of the sphere must be greater than 0.

SpheresNotCutting

Enumeration name:

SpheresNotCutting

Enumeration value:

47

Description:

The spheres do not intersect.

Issue

Cause

Solution

-

The two spheres i_stSphere1 and i_stSphere2 do not intersect.

The distance between the centers of both spheres must not exceed the sum of the spheres' radii.