# Creating a Plane by 3 vectors

I’m making Planes and I noticed that there’s not really a way to just directly make a plane with 3 vectors? All the constructors(except that weird one I don’t understand lol) take only 2 and so the remaining one is going to maybe be the direction I want or not depending on other factors… I know the X vector exactly, the normal exactly, and one in the general direction of Y…

Hi @JimCarruthers, one origin and 2 vectors define a plane. There is no third vector as the 2 vectors automatically set the third. If you have eg. the x and z (normal) vector you can use the crossproduct to find y. Then define the plane with origin, x and y.

_
c.

1 Like

You could also use `rs.PlaneFromNormal()`. You will still need an origin point, you do for all plane methods, as normal vectors all have a theoretical start point at 0.

Otherwise, you could add the X axis vector to the world origin (makes a new point), the “general Y direction vector” to the origin (another point) and then get the plane from the origin plus the two points.

That makes sense, but I’m trying to orient planes to align with surfaces that might be at any angle, according to a features of the edge curves and the surface normal, and…the planes don’t wind up oriented consistently depending on the which way the surface is pointing. At least they don’t seem to…

It’s like I need to take a basic worldXY plane and transform it…

EDIT: Of course the problem is with my input, I have identical-looking objects that were probably mirrored the edge curve direction I’m relying on for X isn’t actually consistent…