Orienting Objects Algorithm


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?


Can this help you:
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


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 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


@dale, the type of transformation (plane to plane) being used has indeed helped with my dilemma.