Planes in Python
This guide provides an overview of a RhinoScriptSytntax Plane Geometry in Python.
Several RhinoscriptSyntax methods either require as an argument or return as a result a plane. Planes are represented by a Plane structure. Plane structures and be thought of as a zero-based, one-dimensional list containing four elements: the plane’s origin (point3D), the plane’s X axis direction (vector3d), the plane’s Y axis direction (vector3d), and the plane’s Z axis direction (vector3d).
plane contains [pointOrigin, vectorX, vectorY, vectorZ]
Note in a Plane, the Y axis is automatically thought as it would be 90-degrees with the original X axis. In fact, the only axis that can really stays easy to defined 100% of the times is the X axis. The Y axis is made orthogonal to the X vector, and the direction of the Z axis is just computed from the cross product of the other two vectors. It is easy to forget that there is a specific geometric relationship between the 3 axis.
Planes can be constructed in a number of ways. One common function is
import rhinoscriptsyntax as rs corners = rs.GetRectangle() if corners: plane = rs.PlaneFromPoints(corners, corners, corners) print plane # origin point print plane # x-axis vector print plane # y-axis vector
Plane also have a number of properties that can be used to get or set the individual values in the Point object. In the example below the .Origin, .XAxis, .Yaxis, .Zaxis is used.
import rhinoscriptsyntax as rs plane = rs.PlaneFromPoints([-2,-5,0],[1,2,0],[-3,3,0]) print plane.Origin # origin point print plane.XAxis # x-axis vector print plane.YAxis # y-axis vector plane.Origin = rs.CreatePoint(3,4,5) # Changes the origin of the plane. print plane.Origin print plane.XAxis # x-axis vector print plane.YAxis # y-axis vector
To change origin of a Plane simply assign a new value to the .Origin property.
Using the Python
for function it is quite easy to walk through each point coordinate in succession:
for p in plane: print p
RhinoScriptSyntax contains a number of functions to manipulate planes. See Lines and Planes for details.
Also, read the Python primer Section 8.5 Planes