AxisPlacement3D
Canonical path: NemAll_Python_Geometry.AxisPlacement3D
Representation class for orthogonal axis placement in 3D space
Placement is given by Origin and 2 direction vectors - local x-axis and local z-axis. y-axis is computed on demand
CalcGlobalPoint
Calculate the point in global coordinates based on the point in local coordinates of the axis placement
Parameters:
-
point
(Point3D
) –Point in local coordinates of the axis placement
Returns:
-
Point3D
–Point in global coordinates
Examples:
For an axis_placement
having its origin in (1, 2, 3) and rotated around the Z-axis by 45 degrees:
>>> axis_placement_3d
AxisPlacement3D(
Origin(1, 2, 3)
X Direction(0.707..., 0.707..., 0)
Z Direction(0, 0, 1))
The global coordinates of the point (1, 1, 1) in local coordinates are calculated like:
CalcLocalPoint
Calculate the point in local coordinates of the axis placement based on the point in global coordinates
Parameters:
-
point
(Point3D
) –Point in global coordinates
Returns:
-
Point3D
–Point in local coordinates of the axis placement
Examples:
For an axis_placement
having its origin in (1, 2, 3) and rotated around the Z-axis by 45 degrees:
>>> axis_placement_3d
AxisPlacement3D(
Origin(1, 2, 3)
X Direction(0.707..., 0.707..., 0)
Z Direction(0, 0, 1))
The local coordinates of the point (1, 3.4142135624, 4) in global coordinates are calculated like:
GetOrigin
GetOrigin() -> Point3D
GetRotationMatrix
GetRotationMatrix() -> Matrix3D
Similar to GetTransformationMatrix()
, but the resulting matrix does not have translation components
Returns:
-
Matrix3D
–Transformation matrix from local to global, but without translation
Examples:
For an axis_placement
having its origin in (1, 2, 3) and rotated around the Z-axis by 45 degrees:
>>> axis_placement_3d
AxisPlacement3D(
Origin(1, 2, 3)
X Direction(0.707..., 0.707..., 0)
Z Direction(0, 0, 1))
The rotation matrix (only rotation components) is calculated like:
>>> axis_placement_3d.GetRotationMatrix()
Matrix3D(
0.707... 0.707... 0 0
-0.707... 0.707... 0 0
0 0 1 0
0 0 0 1)
Applying the matrix to a point rotates it around the Z-axis by 45 degrees, but does not translate it:
GetTransformationMatrix
GetTransformationMatrix() -> Matrix3D
Get the transformation matrix of the axis placement.
The transformation matrix is a 4x4 matrix that can be used to transform geometry objects from local coordinates of the placement to global coordinates.
Returns:
-
Matrix3D
–Transformation matrix from local to global
Examples:
For an axis_placement
having its origin in (1, 2, 3) and rotated around the Z-axis by 45 degrees:
>>> axis_placement_3d
AxisPlacement3D(
Origin(1, 2, 3)
X Direction(0.707..., 0.707..., 0)
Z Direction(0, 0, 1))
The transformation matrix is calculated like:
>>> axis_placement_3d.GetTransformationMatrix()
Matrix3D(
0.707... 0.707... 0 0
-0.707... 0.707... 0 0
0 0 1 0
1 2 3 1)
Applying the matrix to a point has the same effect as CalcGlobalPoint()
:
GetXDirection
GetXDirection() -> Vector3D
GetYDirection
GetYDirection() -> Vector3D
GetZDirection
GetZDirection() -> Vector3D
IsValid
RotateAroundLocalZAxis
RotateAroundLocalZAxis(angle: Angle)
Set
SetXDirection
SetXDirection(dir: Vector3D)
SetZDirection
SetZDirection(dir: Vector3D)
__eq__
__eq__(axis_placement: AxisPlacement3D) -> bool
Comparison of axis placements.
Be careful, this method work without tolerance!
Parameters:
-
axis_placement
(AxisPlacement3D
) –axis placement to be compared.
Returns:
-
bool
–True when axis placements are equal, otherwise false.
__init__
overloaded
Initialize
__init__(placement: AxisPlacement3D)
__init__(refPoint: Point3D)
__init__(matrix: Matrix3D)