I am registering two meshes with respect to two lists of points using the python function, OrientObject(object_id, reference, target, flags=0); however I’ve noticed that reordering both lists the same way (such that points still correctly correspond in either list) results in a dramatic change in the alignment. I want to find an optimal ordering, however I am unable to do this without knowing how the objects are actually being registered. Does anyone have any information regarding how this function carries out registering the points?

# Orienting Objects Algorithm

**eddi**#2

Can this help you:

http://developer.rhino3d.com/api/RhinoScriptSyntax/win/#object-OrientObject

If two 3-D points are specified, then this method will function similar to Rhino’s **_Orient** command.

If more than two 3-D points are specified, then the function will orient similar to Rhino’s **_Orient3Pt** command.

Start **_CommandHelp** and look at the two commands

**George3**#3

Hi Eddi,

Unfortunately this does not help me. I am using more than two 3-D points; however **_CommandHelp** only provides the basic steps for using **_Orient3Pt**, e.g. picking matching point pairings. This does not help me understand why picking the same points in a different order results in a different alignment.

**dale**(Dale Fugier) #4

Hi @George3,

The `OrientObject`

method, provided by rhinoscriptsyntax, is a plane to plane transformation.

The the `reference`

points define the source plane and the `target`

points define the target plane. The help file details how these points effect the plane that is used.

Note, the planes (e.g. points) can be arbitrary and having no association with the objects being transformed.

Does this help?

– Dale