hexagon logo

Iterative alignment and using XactMeasure

Alright here is my problem/question.
I have a part where Datum -A- (Z axis) is not prismatic, however datum -B- (X axis) and -C- (Y axis) are.

I do not have much experience with Iterative alignments other than that I have been to the Level 2 Hexagon class (Just don't use them or have the need too).

My thoughts were, this is a good time, to try an Iterative alignment.
I believe I have that part of the program correct:
I created 6 auto vector points on top (Datum -A-),
then 5 auto vector points on left side (Datum -B-)
then finally 5 auto vector points on the front of the part (Datum -C-).

When I create the Iterative alignment I pick top 6 points as level (Datum -A-),
5 points on left rotate (Datum -B-),
then 5 points on front as origin (Datum -C-).

After completing this Iterative alignment my trihedron doesn't move from before the alignment.
So I constructed planes out of the five points for datum -B- and -C- respectively.
I then origin my "X" to Datum -B- and my "Y" to datum -C-.
How do I origin my "Z", and how do I assign my datum -A- for exact measure? Where did I go wrong? Please any help would be greatly appreciated.

  • It is NOT ok of for me to leave it in body position!
    My customer requirements are to have the dimensions report out from the Datums, not the CAD origin. My report would need to say 1 inch from "X" and 1 inch from "Y". I have no way of measuring Datum "A" to my CAD origin due to it being an irregular surface.



    How can you report out from datum A when it's not a prismatic feature? Where about on this irregular feature do you want your zero/origin to be exactly?

    Iterative is the only way to align a part like this.

    Now once you've aligned using iterative you could translate your origin by a given value so the zero moves where you want it. i.e. if your two holes are perpendicular to datum A (or should I say they are square to the axis controlled by Datum A) then you could move it by the theo values of datum B so you're origined over this hole, but how much you move it up or down to the datum A surface is anyone's guess!


    Not sure if that's clear, but it would be like aligning to the corner of a 1-2-3- block, then measuring a hole and reporting the deviations. Your nominals would come from the corner.

    You could then offset the alignment by the nominal values so the hole's theoretical location would be 0,0. If you report the location again the deviations would be identical, but the Noms would be 0,0. The edges you aligned to are still the datums (i.e. They are right/have zero deviation) even though their nominal values are no longer zero!
  • How can you report out from datum A when it's not a prismatic feature? Where about on this irregular feature do you want your zero/origin to be exactly?

    Iterative is the only way to align a part like this.

    Now once you've aligned using iterative you could translate your origin by a given value so the zero moves where you want it. i.e. if your two holes are perpendicular to datum A (or should I say they are square to the axis controlled by Datum A) then you could move it by the theo values of datum B so you're origined over this hole, but how much you move it up or down to the datum A surface is anyone's guess!


    Not sure if that's clear, but it would be like aligning to the corner of a 1-2-3- block, then measuring a hole and reporting the deviations. Your nominals would come from the corner.

    You could then offset the alignment by the nominal values so the hole's theoretical location would be 0,0. If you report the location again the deviations would be identical, but the Noms would be 0,0. The edges you aligned to are still the datums (i.e. They are right/have zero deviation) even though their nominal values are no longer zero!


    Yes, this was my original question/problem. How do you translate (origin) to my datum "A" for the Iterative alignment (if you can't determine the value), or define this irregular shape for Exactmeasure so that my dimensions for my true positions are the basic dimensions from the print. This is what my customer wants, and since the customer is always right, I came here for advice. It seems a lot of people want to give me answers not totally understanding what i'm up against. Maybe people jumped in before reading everything on this thread, I don't know. What I've done (I've stated this in a prior post) is put three auto vector points on approximately the three high spots of datum "A" (like if you set it down on a datum simulator surface i.e.surface plate) then constructed a plane out of those three points. Called that plane datum "A" and measured it in Exactmeasure. Voila, I didn't have to use an Iterative alignment, because that wouldn't work for my situation. I understand everything everyone is telling me, and I really do appreciate that,(except the few people that want to criticize and belittle people) I just don't think they understand what I'm telling them or trying to explain to them.Slight smile
  • Yes, this was my original question/problem. How do you translate (origin) to my datum "A" for the Iterative alignment (if you can't determine the value), or define this irregular shape for Exactmeasure so that my dimensions for my true positions are the basic dimensions from the print. This is what my customer wants, and since the customer is always right, I came here for advice. It seems a lot of people want to give me answers not totally understanding what i'm up against. Maybe people jumped in before reading everything on this thread, I don't know. What I've done (I've stated this in a prior post) is put three auto vector points on approximately the three high spots of datum "A" (like if you set it down on a datum simulator surface i.e.surface plate) then constructed a plane out of those three points. Called that plane datum "A" and measured it in Exactmeasure. Voila, I didn't have to use an Iterative alignment, because that wouldn't work for my situation. I understand everything everyone is telling me, and I really do appreciate that,(except the few people that want to criticize and belittle people) I just don't think they understand what I'm telling them or trying to explain to them.Slight smile



    I'm sorry but I'm actually with everyone else on this one, what you've done isn't right.


    Quick question - before you do anything else if you select your B and C cylinders off the CAD are the vectors square to an axis? (0,0,1 or 1,0,0 etc)
  • I'm sorry but I'm actually with everyone else on this one, what you've done isn't right.


    Quick question - before you do anything else if you select your B and C cylinders off the CAD are the vectors square to an axis? (0,0,1 or 1,0,0 etc)


    NOW that he has actually explained what he really needs to do (which was not done before).....

    He still needs to do an iterative alignment simply because he does not have a planar "A" datum. BTW, if this "A" datum surface, BY DESIGN isn't a flat planar surface, then it SHOULD have datum targets called out, if not, the print is a failure because by definition, a datum is "planar", you can not point to a curvy surface and call the entire surface the "A" datum.

    After doing the iterative alignment, which is 100% required due to the non-planar "A" datum, you simply construct a plane TO THE ALIGNMENT, while in the proper workplane for what it 'should' be level to, and use that in Xact.

    Now, as for the issue with 'translating', there is no 'translating', but after the iterative alignment (which you MUST do), you simply set XYZ origins to what you want to be called "ABSOLUTE" zero. AFTER the iterative alignment, simply open the alignment utility again, select the feature that you want to be X0 and origin to it, same for Y and Z, ONLY set origins. DO NOT do CAD=PART, and "OK" out of the alignment.

    Clear and concise info is required to get the answers you want.

    And again, DROP the word "trihedron" in this, as I said, and will say again, it is ONLY a reference "object" to show you which way each axis points in the current alignment. It is only a 'lucky' thing that it shows up in the part IF the XYZ zero is on the part, otherwise, it is in the bottom-left corner of the screen. It will show at XYZ0 if that location is visable on the screen, otherwise it is NOT at XYZ zero.
  • I'm sorry but I'm actually with everyone else on this one, what you've done isn't right.


    Quick question - before you do anything else if you select your B and C cylinders off the CAD are the vectors square to an axis? (0,0,1 or 1,0,0 etc)


    please read my original post. datums "B" & "C" are square planes. no cylinders
  • NOW that he has actually explained what he really needs to do (which was not done before).....

    He still needs to do an iterative alignment simply because he does not have a planar "A" datum. BTW, if this "A" datum surface, BY DESIGN isn't a flat planar surface, then it SHOULD have datum targets called out, if not, the print is a failure because by definition, a datum is "planar", you can not point to a curvy surface and call the entire surface the "A" datum.

    After doing the iterative alignment, which is 100% required due to the non-planar "A" datum, you simply construct a plane TO THE ALIGNMENT, while in the proper workplane for what it 'should' be level to, and use that in Xact.

    Now, as for the issue with 'translating', there is no 'translating', but after the iterative alignment (which you MUST do), you simply set XYZ origins to what you want to be called "ABSOLUTE" zero. AFTER the iterative alignment, simply open the alignment utility again, select the feature that you want to be X0 and origin to it, same for Y and Z, ONLY set origins. DO NOT do CAD=PART, and "OK" out of the alignment.

    Clear and concise info is required to get the answers you want.

    And again, DROP the word "trihedron" in this, as I said, and will say again, it is ONLY a reference "object" to show you which way each axis points in the current alignment. It is only a 'lucky' thing that it shows up in the part IF the XYZ zero is on the part, otherwise, it is in the bottom-left corner of the screen. It will show at XYZ0 if that location is visable on the screen, otherwise it is NOT at XYZ zero.



    Maybe instead of assuming you know "everything", you should have asked me more questions.
  • Where I work we make hardly any, if any parts that have straight edges and flat surfaces. As such I have to use iterative alignments in order to measure them. Every single part I measure has labeled on the drawing the datum targets and the X,Y,Z, co-ordinates of these targets. Without the X,Y,Z data I cannot create the datum's as I will be just guessing on the design intent of the part.

    If you are given the X,Y,Z data of three target points for Datum A then that is all you have to input. A plane is then created from these three points and that is your datum.

    If however you are not given the target data then you cannot create a plane just by guessing where the highest points are and also assuming that this is the design intent.
  • Maybe instead of assuming you know "everything", you should have asked me more questions.


    Maybe instead of assuming we knew what that babble was coming out of your fingertips, you should have spelled out what you wanted to do/know.
  • Yep, now read what you didn't highlight....

    "A mathematically defined feature shall be defined within a three-dimensional coordinate system. Where such a feature (datum target) is specified as a datum feature, it's datum feature simulator (derived from the math data) is used in establishing the datum reference frame."

    Don't grab the first bit and the last bit and ignore what's in between.