Using Orient Component Without Rotation

Hey Everyone,

I am new to Grasshopper and I am using the Orient component. I have S letters that are titled on a plane. I also have circles that are above this plane in the XY plane. I want to place the centroid of these circles at the origin and the centroid of these S letters at the origin as well. The result will be that the S letters are inside the circles as shown in the figure:

I have done this using the GH file attached in this post.

Reorientation.gh (19.8 KB)

The problem I am encountering is when using the orient component. I want to orient the S letters in the XY plane. This is done successfully but the issue is that this component is adding unwanted extra rotation to the letters. I want them to remain in the same initial rotation and just orient them in the XY plane.To solve this I added a rotation component that rotates back to the same initial rotation of the letters. Is there a way to do it without using the rotation component as I show in the GH file? This is because adding a rotation component needs to specify an angle, and this angle I specified but not be very exact as the initial one!

Thank you so much!

with Orient you just have starting plane and destination plane, so whatever result you get entirely depend on how your planes are generated / rotated

by using IsPlanar(curve) you get the plane on which a -planar- curve lies, so you can ignore the surface

from that point, in order to not get any rotation on axis Z, you might want to align the X axis of end plane to the x axis of start plane (in this case, because destination plane= XY plane, then X axis = 1,0,0 ) :

Reorientation_Re.gh (25.2 KB)

5 Likes

Thank you so much inno for your help… Much appreciated :smiley:

Hi Inno,

I used this algorithm with a PolyLine (PLine) component and it works fine but it doesn’t work when I connect them to a set of points (Control Points) of the S letter or of the PolyLine. Is there a way that this algorithm works for points instead of PLine?

Thank you so much!

that particular def is loking for a Polyline to find the plane on which that curves lies
so you can either polyline those points just for the sake of making IsPlanar(curve) work, and then orient the points instead of the polyline

or you can also replace IsPlanar(curve) with Plane Fit, which creates the best plane that fits through a set of points (with this second case, be sure the points are planar because the plane will be created regardless)

1 Like

Thank you so much Inno! This is very kind of you