hexagon logo

Alignment from FCF Datum Shift



I think what vpt (and me) were hoping for was a way to create an alignment that uses the Xact fit shift. There are all sorts of applications for this. Using the available options in best-fit alignment is not the same, because they do not attempt to fit within a tolerance zone.

A few years old but I haven't found anything using search.

SPH1       =GENERIC/SPHERE,DEPENDENT,CARTESIAN,OUT,$
            NOM/XYZ,<0,0,0>,$
            MEAS/XYZ,<0,0,0>,$
            NOM/IJK,<0,0,1>,$
            MEAS/IJK,<0,0,1>,$
            DIAMETER/1,1.1
DIM LOC1= LOCATION OF SPHERE SPH1
AX    NOMINAL       +TOL       -TOL       MEAS        DEV     OUTTOL
D       1.0000     0.2500    -0.2500     1.1000     0.1000     0.0000 ------#--
END OF DIMENSION LOC1
            DATDEF/FEATURE=SPH1,A
            DISPLAYPRECISION/6
FCFLOC1 =POSITION : CIR152_1,CIR152_2,CIR152_3,...
            FEATCTRLFRAME/SHOWNOMS=NO,SHOWPARAMS=NO,SHOWEXPANDED=NO
              SIZE TOLERANCES/33,DIAMETER,0.375,0.005,-0.005
              PRIMARY DIMENSION/POSITION,DIAMETER,0.01,MMC,A,MMC,,
              NOTE/FCFLOC1
            FEATURES/CIR152_1,CIR152_2,CIR152_3,CIR152_4,CIR152_5,
                                CIR152_6,CIR152_7,CIR152_8,CIR152_9,CIR152_10,
                                CIR152_11,CIR152_12,CIR152_13,CIR152_14,
                                CIR152_15,CIR152_16,CIR152_17,CIR152_18,
                                CIR152_19,CIR152_20,CIR152_21,CIR152_22,
                                CIR152_23,CIR152_24,CIR152_25,CIR152_26,
                                CIR152_27,CIR152_28,CIR152_29,CIR152_30,
                                CIR152_31,CIR152_32,CIR152_33,,
            ASSIGN/V1=GETTEXT("DRF_SHIFTX",1,{FCFLOC1})
            ASSIGN/V2=GETTEXT("DRF_SHIFTY",1,{FCFLOC1})
            ASSIGN/V3=GETTEXT("DRF_SHIFTZ",1,{FCFLOC1})
            ASSIGN/V4=GETTEXT("DRF_ROTATIONX",1,{FCFLOC1})*-1
            ASSIGN/V5=GETTEXT("DRF_ROTATIONY",1,{FCFLOC1})*-1
            ASSIGN/V6=GETTEXT("DRF_ROTATIONZ",1,{FCFLOC1})*-1
            FORMAT/TEXT, , ,HEADINGS, , ;NOM,MEAS, , , , , 
DIM BEFORE= LOCATION OF CIRCLE CIR152_1
AX     NOMINAL        MEAS
X     10.153721   10.154507
Y    -27.402826  -27.405035
Z     -8.032519   -8.025360
END OF DIMENSION BEFORE
ALIGN1     =ALIGNMENT/START,RECALL:PREVIOUS,LIST=YES
              ALIGNMENT/ROTATE_OFFSET,V4,ABOUT,XPLUS
              ALIGNMENT/ROTATE_OFFSET,V5,ABOUT,YPLUS
              ALIGNMENT/ROTATE_OFFSET,V6,ABOUT,ZPLUS
              ALIGNMENT/TRANS_OFFSET,XAXIS,V1
              ALIGNMENT/TRANS_OFFSET,YAXIS,V2
              ALIGNMENT/TRANS_OFFSET,ZAXIS,V3
            ALIGNMENT/END
DIM AFTER= LOCATION OF CIRCLE CIR152_1
AX     NOMINAL        MEAS
X     10.151373   10.152161
Y    -27.394485  -27.396694
Z     -8.041472   -8.034312
D      0.376500    0.377383
END OF DIMENSION AFTER
            COMMENT/REPT,
            "Xshift:  "+V1
            "Yshift:  "+V2
            "Zshift:  "+V3
            "Rotation X:  "+V4*-1
            "Rotation Y:  "+V5*-1
            "Rotation Z:  "+V6*-1

The FCF output with datum shift is:


Using a sphere as the only datum seems to allow all 6 degrees to float. There is some small round-off error due to the numbers being used limited to the current DISPLAYPRECISION (not much).

Now what? Trying to actually use this has me baffled. I'd like to simulate the FCF output having the transformed measured coordinates evaluated against the model nominal values. The BEFORE dim has the nominals I want but the AFTER dim has the measured I want (like the FCF output). Inserting & Recalling alignments, Updating Dependent Commands (answering both yes and no) leaves me feeling like I've found my way into a rabbit hole. Maybe Profile dims behave differently?

I'm aware that some settings may influence the results: Update Dependent Commands (warning), UpdateBelowChangedAlignmentDuringExecution (registry), Ignore CAD to part (F5 settings), Allow Fine Tuning of Alignment (F5 settings). I'd really like to get this working inline without resorting to any type of external automation if possible. Can someone throw me a bone here? There's gotta be a way to get some mileage out of this.
Parents
  • Not completely undocumented, as they are defined in the PCDLRN type library, and have rather descriptive names Slight smile

    Sounds intriguing! Eagerly awaiting the presentation (although I'll have to wait a day - it's already midday here...)!



    Anders, thanks for pointing me to this post. I am struggling with understanding what this post is about and how it relates to my interest in assigning the datum shift values to variables. I think I understand that I can just copy paste GomoFazter's code to get the ShiftX, ShiftY, and ShiftZ values:

    ASSIGN/BF1_X=GETTEXT("SUMMARY_MEAS",1,{FCFLOC1})
    ASSIGN/BF1_Y=GETTEXT("SUMMARY_MEAS",2,{FCFLOC1})
    ASSIGN/BF1_Z=GETTEXT("SUMMARY_MEAS",3,{FCFLOC1})

    But I think I also need the Rotation X, Rotation Y, Rotation Z values also, and I don't see where that code was posted.

    I tried looking "PCDLRN type library" up in the help file and saw where it tells you how to look up the Object's in VB. I gather that if I can get the PCDLRN type library loaded in Excels VBA editor that I could poke around in there and find some more "SUMMARY_MEAS" or some other (hopefully intuitively descriptive) object name that would yield the Rotation XYZ values.
    I did that and added pcdlrn.tlb to the object browser. I found the SUMMARY_MEAS Member in <globals>.

    Note, I don't know what I'm doing here or what objects, properties, methods, and events really are or how to use them.

    I don't see how you know that SUMMARY_MEAS",1, is the X shift etc.
    I spent a lot of time poking around looking for a "1" property and didn't see it... There are thousands of properties ! Astonished
    I'm lost! I agree with what Vbt posted !

    Brain overload.
    Guru meditation 0x000090.
    Rebooting...


    I don't know if I really want to know HOW to find the correct code, I suspect I would need a lot more understanding of VB to get it. I'd really appreceiate it if someone could just tell me the correct code... please??
Reply
  • Not completely undocumented, as they are defined in the PCDLRN type library, and have rather descriptive names Slight smile

    Sounds intriguing! Eagerly awaiting the presentation (although I'll have to wait a day - it's already midday here...)!



    Anders, thanks for pointing me to this post. I am struggling with understanding what this post is about and how it relates to my interest in assigning the datum shift values to variables. I think I understand that I can just copy paste GomoFazter's code to get the ShiftX, ShiftY, and ShiftZ values:

    ASSIGN/BF1_X=GETTEXT("SUMMARY_MEAS",1,{FCFLOC1})
    ASSIGN/BF1_Y=GETTEXT("SUMMARY_MEAS",2,{FCFLOC1})
    ASSIGN/BF1_Z=GETTEXT("SUMMARY_MEAS",3,{FCFLOC1})

    But I think I also need the Rotation X, Rotation Y, Rotation Z values also, and I don't see where that code was posted.

    I tried looking "PCDLRN type library" up in the help file and saw where it tells you how to look up the Object's in VB. I gather that if I can get the PCDLRN type library loaded in Excels VBA editor that I could poke around in there and find some more "SUMMARY_MEAS" or some other (hopefully intuitively descriptive) object name that would yield the Rotation XYZ values.
    I did that and added pcdlrn.tlb to the object browser. I found the SUMMARY_MEAS Member in <globals>.

    Note, I don't know what I'm doing here or what objects, properties, methods, and events really are or how to use them.

    I don't see how you know that SUMMARY_MEAS",1, is the X shift etc.
    I spent a lot of time poking around looking for a "1" property and didn't see it... There are thousands of properties ! Astonished
    I'm lost! I agree with what Vbt posted !

    Brain overload.
    Guru meditation 0x000090.
    Rebooting...


    I don't know if I really want to know HOW to find the correct code, I suspect I would need a lot more understanding of VB to get it. I'd really appreceiate it if someone could just tell me the correct code... please??
Children
No Data