hexagon logo

True Position inside a Loop-2

I'm runing 2014.1 (Service Pack 4)
I set over a big magnet 30 parts in a equally spaced grid 25 mm X = 5 parts and Y = 6 parts (see loop code)
Problem: True position part # 1 measure 0,0. Part # 2 measure 50.0. Part # 3 measure 100 so on.
Can anyone help me to figure what i'm missing. Thanks
START        =LABEL/
VLOOP        =LOOP/START,ID=NO,NUMBER=5,START=1,SKIP=,
                OFFSET:XAXIS=25,YAXIS=0,ZAXIS=0,ANGLE=0
VLOOP          =LOOP/START,ID=NO,NUMBER=6,START=1,SKIP=,
                  OFFSET:XAXIS=0,YAXIS=25,ZAXIS=0,ANGLE=0
                  TIP/T1A0B0, SHANKIJK=0, 0, 1, ANGLE=0
                  MODE/DCC
                  WORKPLANE/ZPLUS
                  CLEARP/ZPLUS,20,ZPLUS,0,ON
                  MOVE/CLEARPLANE
CIRC_5.9         =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,OUT,LEAST_SQR
                  THEO/<0,0,-5.7>,<0,0,1>,5.9,0
                  ACTL/<0.089,-0.079,-5.7>,<0,0,1>,5.873,0
                  TARG/<0,0,-5.7>,<0,0,1>
                  START ANG=0,END ANG=360
                  ANGLE VEC=<1,0,0>
                  DIRECTION=CCW
                  SHOW FEATURE PARAMETERS=NO
                  SHOW CONTACT PARAMETERS=NO
ALIGN2           =ALIGNMENT/START,RECALL:READPOINT_ALIGN,LIST=YES
                    ALIGNMENT/TRANS,XAXIS,CIRC_5.9
                    ALIGNMENT/TRANS,YAXIS,CIRC_5.9
                  ALIGNMENT/END
                  MOVE/CLEARPLANE
POINT_3          =FEAT/CONTACT/VECTOR POINT/DEFAULT,CARTESIAN
                  THEO/<4.1,-25,-11.5>,<0,0,1>
                  ACTL/<4.1,-25,-12.623>,<0,0,1>
                  TARG/<4.1,-25,-11.5>,<0,0,1>
                  SNAP=NO
                  SHOW FEATURE PARAMETERS=NO
                  SHOW CONTACT PARAMETERS=NO
PLANE-A-         =FEAT/CONTACT/PLANE/DEFAULT,CARTESIAN,OUTLINE
                  THEO/<0,-25,-11.5>,<0,0,1>
                  ACTL/<0.001,-24.996,-12.633>,<-0.0006207,-0.0059684,0.999982>
                  TARG/<0,-25,-11.5>,<0,0,1>
                  ANGLE VEC=<1,0,0>,RADIAL
                  SHOW FEATURE PARAMETERS=NO
                  SHOW CONTACT PARAMETERS=YES
                    NUMHITS=4,NUMRINGS=1
                    SPACER=4.5
                    AVOIDANCE MOVE=NO,DISTANCE=0
                  SHOW HITS=NO
ALIGN3           =ALIGNMENT/START,RECALL:ALIGN2,LIST=YES
                    ALIGNMENT/LEVEL,ZPLUS,PLANE-A-
                    ALIGNMENT/ROTATE_CIRCLE,XPLUS,TO,CIRC_5.9,AND,POINT_3,ABOUT,ZPLUS
                    ALIGNMENT/TRANS,ZAXIS,PLANE-A-
                  ALIGNMENT/END
CIRC_-B2-        =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,OUT,LEAST_SQR
                  THEO/<0,-25,-0.3>,<0,0,-1>,10,0
                  ACTL/<0.246,-25.037,-0.151>,<0,0,-1>,9.98,0
                  TARG/<0,-25,-0.3>,<0,0,-1>
                  START ANG=0,END ANG=360
                  ANGLE VEC=<-1,0,0>
                  DIRECTION=CCW
                  SHOW FEATURE PARAMETERS=NO
                  SHOW CONTACT PARAMETERS=YES
                    NUMHITS=4,DEPTH=0,PITCH=0
                    SAMPLE METHOD=SAMPLE_HITS
                    SAMPLE HITS=0,SPACER=0
                    AVOIDANCE MOVE=NO,DISTANCE=2
                    FIND HOLE=DISABLED,ONERROR=NO,READ POS=NO
                  SHOW HITS=NO
PLANE1           =FEAT/CONTACT/PLANE/DEFAULT,CARTESIAN,OUTLINE
                  THEO/<0,-25,-3.7>,<0,0,1>
                  ACTL/<0.253,-25.005,-3.622>,<0.0016589,0.0065264,0.9999773>
                  TARG/<0,-25,-3.7>,<0,0,1>
                  ANGLE VEC=<1,0,0>,RADIAL
                  SHOW FEATURE PARAMETERS=NO
                  SHOW CONTACT PARAMETERS=YES
                    NUMHITS=4,NUMRINGS=1
                    SPACER=10
                    AVOIDANCE MOVE=NO,DISTANCE=0
                  SHOW HITS=NO
                  MOVE/CLEARPLANE
ALIGN_A_B        =ALIGNMENT/START,RECALL:ALIGN3,LIST=YES
                    ALIGNMENT/LEVEL,ZPLUS,PLANE-A-
                    ALIGNMENT/TRANS,ZAXIS,PLANE-A-
                    ALIGNMENT/ROTATE_CIRCLE,XPLUS,TO,CIRC_-B2-,AND,POINT_3,ABOUT,ZPLUS
                    ALIGNMENT/TRANS,XAXIS,CIRC_-B2-
                    ALIGNMENT/TRANS,YAXIS,CIRC_-B2-
                  ALIGNMENT/END
                  DATDEF/FEATURE=PLANE-A-,A
                  DATDEF/FEATURE=CIRC_-B2-,B
      BALL_03_GET_TP =POSITION : CIRC_5.9
                  FEATCTRLFRAME/SHOWNOMS=NO,SHOWPARAMS=YES,SHOWEXPANDED=YES
                  CADGRAPH=OFF,REPORTGRAPH=OFF,TEXT=OFF,MULT=10.00,ARROWDENSITY=100,OUTPUT=BOTH,UNITS=MM
                  COMPOSITE=NO,FIT TO DATUMS=YES,DEV PERPEN CENTERLINE=ON,OUTPUT ALIGNMENT=Datum Reference Frame
                  CUSTOMIZED DRF=NO
                  STANDARDTYPE=ASME_Y14_5
                    SIZE TOLERANCES/1,DIAMETER,5.9,0.1,0.1
                    PRIMARY DIMENSION/POSITION,DIAMETER,0.05,MMC,A,B,MMC,<size>,<dat>
                    SECONDARY DIMENSION/<Dim>,<tol>,<MC>,<dat>,<dat>,<dat>
                    NOTE/BALL_03_GET_TP
                  FEATURES/CIRC_5.9,,
      $$ NO,
                  * EXPORT-MAKE DIRECTORY-PATH-CREATE PDF REPORT-DELETE INSTANCES *
                  ASSIGN/PATH="C:\CMM\REPORTS\\"+OPERATOR+"\\"+JOB_NO+"\\"+JOB_NO+"_"+LOT_NO+"_SAMPLE_"+SAMPLE + ".PDF"
                  PRINT/REPORT,EXEC MODE=END,$
                    TO_FILE=ON,OVERWRITE=C:\CMM\PROGRAMS\005929-XX\PATH.PDF,AUTO OPEN REPORT=OFF,$
                    TO_PRINTER=OFF,COPIES=1,$
                    TO_DMIS_REPORT=OFF,FILE_OPTION=INDEX,FILENAME=,$
                    REPORT_THEORETICALS=NONE,REPORT_FEATURE_WITH_DIMENSIONS=NO,$
                    TO_EXCEL_OUTPUT=OFF,
                    PREVIOUS_RUNS=DELETE_INSTANCES
      $$ NO,
                  * NEXT SAMPLE-LOOP WAIT *
                  ASSIGN/SAMPLE=SAMPLE+1
                  MOVESPEED/ 300
                LOOP/END
              LOOP/END
              RECALL/ALIGNMENT,INTERNAL,READPOINT_ALIGN
              MOVE/POINT,NORMAL,<0.000,300.000,200.000>
  • From my experience, PC-DMIS still doesn't play well with Xact Measure and a Loop. It wants to grab the Datum Setups from the original alignment. Therefore, it does what you are seeing, the offset of your loop.

    Unfortunately, I do not know of a work around.
  • ngasve,
    #1 - Please stop what you are doing right now and edit every name of every feature and dimension in your program to replace all special characters with nothing but letters, numbers, and underscores. Special characters in names usually corrupt the program. Decimal points are especially troubling, as they are used to trigger special operations within PC-DMIS.

    #2- As Bfire pointed out, we have been experiencing problems with Xactmeasure and PC-DMIS's canned looping function.
    One of my tasks is to help with troubleshooting that, but for now what we're going to do is a good old fashioned Work Around.

    Choice A: Easy Work Around
    Delete the Xactmeasure stuff and replace with a Legacy Position that does NOT have the MMC on the B datum (Legacy does not compute that correctly, not even close).
    This will have the unfortunate side effect of denying your parts the Datum Shift that the B being over minimum size would give them, making it harder to pass the dimension. FYI... some of our very successful customers do this on purpose, denying themselves the MMC datum shift to leave a little margin of error on the table so their customer never sees a bad part.

    Choice B: Hard Work Around
    This is a rather involved "Level 3 Wizardry" solution. Proceed with caution - by which I mean Save As a new version, don't mess up your original program. We're going to replace the canned Loops with a full custom Flow Control setup.


    $$ NO,
                ~~~ At The Start: ~~~
                ASSIGN/VAR_X=-25
                ASSIGN/VAR_Y=-25
                ASSIGN/XCOUNT=0
                ASSIGN/YCOUNT=0
    $$ NO,
                  
    BEGIN      =LABEL/
    $$ NO,
                  
                ASSIGN/XCOUNT=XCOUNT+1
                ASSIGN/VAR_X=VAR_X+25
                IF/XCOUNT==1
                  ASSIGN/VAR_Y=VAR_Y+25
                  ASSIGN/YCOUNT=YCOUNT+1
                END_IF/
    $$ NO,
                  
                COMMENT/OPER,NO,FULL SCREEN=NO,AUTO-CONTINUE=NO,
                "FOR TESTING"
                "   XCOUNT: "+XCOUNT
                "   YCOUNT: "+YCOUNT
                "CURRENT X: "+VAR_X
                "CURRENT Y: "+VAR_Y
                "Change from OPER to $$ when testing is complete."
    $$ NO,
                  
    FAKE_ORIGIN=GENERIC/POINT,DEPENDENT,CARTESIAN,$
                NOM/XYZ,<0+0,0+0,0+0>,$
                MEAS/XYZ,<VAR_X,VAR_Y,0+0>,$
                NOM/IJK,<0+0,0+0,1+0>,$
                MEAS/IJK,<0+0,0+0,1+0>
    TEMP_ALIGN =ALIGNMENT/START,RECALL:STARTUP,LIST=YES
                  ALIGNMENT/TRANS,XAXIS,FAKE_ORIGIN
                  ALIGNMENT/TRANS,YAXIS,FAKE_ORIGIN
                ALIGNMENT/END
    $$ NO,
                  Use Planes and Cylinders (full 3D features)
                  to make a single ALL-6-DEGREES-OF-FREEDOM
                  alignment in a single step.
                  If the holes aren't deep enough for cylinders
                  then use 3 sample hits on each circle.
                   
    $$ NO,
                  Features, datum defs, dims, print command.
    $$ NO,
                  ~~~ At The End: ~~~
                IF_GOTO/YCOUNT==6 AND XCOUNT==5,GOTO = END_OF_LOOPING
    $$ NO,
                  
                IF/XCOUNT==5
                  ASSIGN/VAR_X=-25
                  ASSIGN/XCOUNT=0
                END_IF/
    $$ NO,
                  
                GOTO/BEGIN
    $$ NO,
                  
    END_OF_LOOPING=LABEL/
    
  • ngasve,
    #1 - Please stop what you are doing right now and edit every name of every feature and dimension in your program to replace all special characters with nothing but letters, numbers, and underscores. Special characters in names usually corrupt the program. Decimal points are especially troubling, as they are used to trigger special operations within PC-DMIS.

    #2- As Bfire pointed out, we have been experiencing problems with Xactmeasure and PC-DMIS's canned looping function.
    One of my tasks is to help with troubleshooting that, but for now what we're going to do is a good old fashioned Work Around.

    Choice A: Easy Work Around
    Delete the Xactmeasure stuff and replace with a Legacy Position that does NOT have the MMC on the B datum (Legacy does not compute that correctly, not even close).
    This will have the unfortunate side effect of denying your parts the Datum Shift that the B being over minimum size would give them, making it harder to pass the dimension. FYI... some of our very successful customers do this on purpose, denying themselves the MMC datum shift to leave a little margin of error on the table so their customer never sees a bad part.

    Choice B: Hard Work Around
    This is a rather involved "Level 3 Wizardry" solution. Proceed with caution - by which I mean Save As a new version, don't mess up your original program. We're going to replace the canned Loops with a full custom Flow Control setup.


    
    ... bunch of code that needs editing...
    
    


    Very slick Josh!
  • Fixed a mistake.
    THEOs for the Generic should be 0+0

    Fixed again!
    I had the end condition too simple and it was skipping the 2nd through 5th X stations of the 6th Y row.
  • Are you aware that a magnet can interfere with the touch trigger probe ?
  • It seems to work using external alignments and Xactmeasure....


    Alignment generation program...


    STARTUP    =ALIGNMENT/START,RECALL:USE_PART_SETUP,LIST=YES
                ALIGNMENT/END
                MODE/MANUAL
                PREHIT/2
                RETRACT/2
                MOVESPEED/ 300
                FLY/ON,3
                FORMAT/TEXT,OPTIONS, ,HEADINGS,SYMBOLS, ;NOM,TOL,MEAS,DEV,OUTTOL, , 
                LOADPROBE/P2_2BY20
                TIP/T1A0B0, SHANKIJK=0, 0, 1, ANGLE=0
    
    PNTZ       =FEAT/POINT,CARTESIAN
                THEO/<12.4011,7.5974,0>,<0,0,1>
                ACTL/<57.5487,25.6077,-659.6937>,<0,0,1>
                MEAS/POINT,1,WORKPLANE
                HIT/BASIC,NORMAL,<12.4011,7.5974,0>,<0,0,1>,<57.5487,25.6077,-659.6937>,USE THEO=YES
                ENDMEAS/
    PNTY       =FEAT/POINT,CARTESIAN
                THEO/<12.4013,0,-4.6105>,<0,-1,0>
                ACTL/<57.5489,18.0103,-664.3043>,<0,-1,0>
                MEAS/POINT,1,WORKPLANE
                HIT/BASIC,NORMAL,<12.4013,0,-4.6105>,<0,-1,0>,<57.5489,18.0103,-664.3043>,USE THEO=YES
                ENDMEAS/
    PNTX       =FEAT/POINT,CARTESIAN
                THEO/<0,10.6759,-4.6112>,<-1,0,0>
                ACTL/<45.1476,28.6862,-664.3049>,<-1,0,0>
                MEAS/POINT,1,WORKPLANE
                HIT/BASIC,NORMAL,<0,10.6759,-4.6112>,<-1,0,0>,<45.1476,28.6862,-664.3049>,USE THEO=YES
                ENDMEAS/
    
                ASSIGN/XSPACING=20
                ASSIGN/YSPACING=20
    
    CORNERPNT  =ALIGNMENT/START,RECALL:STARTUP,LIST=YES
                ALIGNMENT/TRANS,ZAXIS,PNTZ
                ALIGNMENT/TRANS,YAXIS,PNTY
                ALIGNMENT/TRANS,XAXIS,PNTX
                ALIGNMENT/END
    
    5MMOFFSET  =ALIGNMENT/START,RECALL:CORNERPNT,LIST=YES
                ALIGNMENT/TRANS_OFFSET,YAXIS,5
                ALIGNMENT/END
    
    LOOPY      =LOOP/START,ID=YES,NUMBER=3,START=1,SKIP=,
                  OFFSET:XAXIS=0,YAXIS=0,ZAXIS=0,ANGLE=0
    
                ASSIGN/Y_VAL=LOOPY*YSPACING
    
    LOOPX      =LOOP/START,ID=YES,NUMBER=3,START=1,SKIP=,
                  OFFSET:XAXIS=0,YAXIS=0,ZAXIS=0,ANGLE=0
    
                ASSIGN/X_VAL=LOOPX*XSPACING
    
    PNT4       =FEAT/POINT,CARTESIAN,YES
                THEO/<X_VAL,Y_VAL,0>,<0,0,1>
                ACTL/<60,60,0>,<0,0,1>
                CONSTR/POINT,OFFSET,ORIGIN,X_VAL,Y_VAL,0
    
    A3         =ALIGNMENT/START,RECALL:5MMOFFSET,LIST=YES
                ALIGNMENT/TRANS,XAXIS,PNT4
                ALIGNMENT/TRANS,YAXIS,PNT4
                ALIGNMENT/END
    
                ASSIGN/ALN_ID="PN1234_"+LOOPX+"_"+LOOPY+".aln"
    
                COMMENT/OPER,NO,FULL SCREEN=NO,AUTO-CONTINUE=NO,
                ALN_ID
    
                SAVE/ALIGNMENT,ALN_ID,MACHINETOPARTS
    
                LOOP/END
    
                LOOP/END
    
      
    
    
    


    Explanation - I take a point on top, then front, then left of the fixture plate and origin xyz (usually first hole would be at x20 y20 but ours is an in house job hence the additional 5mm offset)

    I then use loop numbers/ID's and offset value to create an offset point - origin on that and create an external alignment based on part number and XY position




    Measurement Program


    
    STARTUP    =ALIGNMENT/START,RECALL:USE_PART_SETUP,LIST=YES
                ALIGNMENT/END
                MODE/MANUAL
                PREHIT/2
                RETRACT/2
                MOVESPEED/ 300
                FLY/ON,3
                FORMAT/TEXT,OPTIONS, ,HEADINGS,SYMBOLS, ;NOM,TOL,MEAS,DEV,OUTTOL, , 
                LOADPROBE/P2_2BY20
                TIP/T1A0B0, SHANKIJK=0, 0, 1, ANGLE=0
    
                COMMENT/OPER,NO,FULL SCREEN=NO,AUTO-CONTINUE=NO,
                dcc
    
                MODE/DCC
    
                RECALL/ALIGNMENT,EXTERNAL,PN1234_1_1
    
    LOOPY      =LOOP/START,ID=YES,NUMBER=3,START=1,SKIP=,
                  OFFSET:XAXIS=0,YAXIS=0,ZAXIS=0,ANGLE=0
    
    LOOPX      =LOOP/START,ID=YES,NUMBER=3,START=1,SKIP=,
                  OFFSET:XAXIS=0,YAXIS=0,ZAXIS=0,ANGLE=0
    
                ASSIGN/ALN_ID="PN1234_"+LOOPX+"_"+LOOPY
    
                COMMENT/OPER,NO,FULL SCREEN=NO,AUTO-CONTINUE=NO,
                ALN_ID
    
                RECALL/ALIGNMENT,EXTERNAL,ALN_ID
    
                CLEARP/ZPLUS,25,ZPLUS,0,ON
    
                MOVE/CLEARPLANE
    DAT_A      =FEAT/CONTACT/PLANE/DEFAULT,CARTESIAN,TRIANGLE
                THEO/<0,0,0>,<0,0,1>
                ACTL/<0.0002,-0.0001,0.0039>,<-0.000355,0.000287,0.9999999>
                TARG/<0,0,0>,<0,0,1>
                ANGLE VEC=<1,0,0>,RADIAL
                SHOW FEATURE PARAMETERS=YES
                  SURFACE=THICKNESS_NONE,0
                  MEASURE MODE=NOMINALS
                  RMEAS=NONE,NONE,NONE
                  AUTO WRIST=NO
                  CLEARPLANE=NO
                  GRAPHICAL ANALYSIS=NO
                  FEATURE LOCATOR=NO,NO,""
                SHOW CONTACT PARAMETERS=YES
                  NUMHITS=4,NUMRINGS=1
                  SPACER=10
                  AVOIDANCE MOVE=NO,DISTANCE=20
                SHOW HITS=NO
    
                MOVE/CLEARPLANE
    DAT_B      =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,IN,LEAST_SQR
                THEO/<0,0,0>,<0,0,1>,5
                ACTL/<0,0,0>,<0,0,1>,5
                TARG/<0,0,0>,<0,0,1>
                START ANG=0,END ANG=0
                ANGLE VEC=<1,0,0>
                DIRECTION=CW
                SHOW FEATURE PARAMETERS=YES
                  REMEASURE=NO
                  SURFACE=THICKNESS_NONE,0
                  MEASURE MODE=NOMINALS
                  RMEAS=NONE,NONE,NONE
                  AUTO WRIST=NO
                  CIRCULAR MOVES=NO
                  CLEARPLANE=YES
                  GRAPHICAL ANALYSIS=NO
                  FEATURE LOCATOR=NO,NO,""
                SHOW CONTACT PARAMETERS=YES
                  NUMHITS=4,DEPTH=3,PITCH=0
                  SAMPLE HITS=0,SPACER=-5
                  AVOIDANCE MOVE=NO,DISTANCE=20
                  FIND HOLE=DISABLED,ONERROR=NO,READ POS=NO
                SHOW HITS=NO
    
    TIMINGPNT  =FEAT/POINT,CARTESIAN,NO
                THEO/<10,0,0>,<0,0,1>
                ACTL/<-10.6187,-0.3666,0>,<0,0,1>
                CONSTR/POINT,OFFSET,DAT_B,10,0,0
    
    A1         =ALIGNMENT/START,RECALL:USE_PART_SETUP,LIST=YES
                ALIGNMENT/LEVEL,ZPLUS,DAT_A
                ALIGNMENT/TRANS,ZAXIS,DAT_A
                ALIGNMENT/TRANS,XAXIS,DAT_B
                ALIGNMENT/TRANS,YAXIS,DAT_B
                ALIGNMENT/ROTATE_CIRCLE,XPLUS,TO,DAT_B,AND,TIMINGPNT,ABOUT,ZPLUS
                ALIGNMENT/END
    
                MOVE/CLEARPLANE
    CIR1       =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,IN,LEAST_SQR
                THEO/<20,0,0>,<0,0,1>,5
                ACTL/<19.992,0.0318,0>,<0,0,1>,6.8435
                TARG/<20,0,0>,<0,0,1>
                START ANG=0,END ANG=0
                ANGLE VEC=<1,0,0>
                DIRECTION=CW
                SHOW FEATURE PARAMETERS=YES
                  REMEASURE=NO
                  SURFACE=THICKNESS_NONE,0
                  MEASURE MODE=NOMINALS
                  RMEAS=NONE,NONE,NONE
                  AUTO WRIST=NO
                  CIRCULAR MOVES=NO
                  CLEARPLANE=YES
                  GRAPHICAL ANALYSIS=NO
                  FEATURE LOCATOR=NO,NO,""
                SHOW CONTACT PARAMETERS=YES
                  NUMHITS=4,DEPTH=3,PITCH=0
                  SAMPLE HITS=0,SPACER=-5
                  AVOIDANCE MOVE=NO,DISTANCE=20
                  FIND HOLE=DISABLED,ONERROR=NO,READ POS=NO
                SHOW HITS=NO
    
                DATDEF/FEATURE=DAT_A,A
                DATDEF/FEATURE=DAT_B,B
    
    FCFLOC1 =POSITION : CIR1
                FEATCTRLFRAME/SHOWNOMS=NO,SHOWPARAMS=YES,SHOWEXPANDED=YES
                CADGRAPH=OFF,REPORTGRAPH=OFF,TEXT=OFF,MULT=10.00,ARROWDENSITY=100,OUTPUT=BOTH,UNITS=MM
                COMPOSITE=NO,FIT TO DATUMS=YES,DEV PERPEN CENTERLINE=OFF,OUTPUT ALIGNMENT=Datum Reference Frame
                CUSTOMIZED DRF=NO
                STANDARDTYPE=ISO_1101
                  SIZE TOLERANCES/1,DIAMETER,5,0.01,-0.01
                  PRIMARY DIMENSION/POSITION,DIAMETER,0.01,MMC,A,B,<MC>,<dat>
                  SECONDARY DIMENSION/<Dim>,<tol>,<MC>,<dat>,<dat>,<dat>
                  NOTE/FCFLOC1
                FEATURES/CIR1,,
    
                LOOP/END
    
                LOOP/END
    
    
    




    I use the same logic to generate the alignment name to recall, recall it and then measure, using datdefs as normal / FCF's as normal.

    Although I've used clearplanes in this example I think this would prevent the move point shenanigans often encountered in looping as well.


    Only tested quickly and I'm not sure how robust it would be, but external alignments FTW!


    Edit added spacing in code to make easier to read
  • Thank you all for your input.

    Josh, you're absolutely right. I've been editing programs that had the diameter symbol and its specification used as feature name (ø5.5) can you imagine!!.

    After simplify a little bit the code you sent me I have managed to successfully implement it. About the generic point should be independent. Thanks again.

    Department S, will investigate and make a repeatability studies using the magnet to see how it affects the result. Thanks for the observation.

    NinjaBadger, Thanks for your suggestion but I prefer to show operators a photo pointing where I want it positioned the probe and use readpoints. Design and print a template (3D printer) to position the 30 pieces on the magnet equidistant.

    Thanks all again.
  • does anyone know if this bug has been fixed yet?
  • Wouldn't "Treat coordinates as in part coordinate system" under the F5 settings remedy this?
  • Wouldn't "Treat coordinates as in part coordinate system" under the F5 settings remedy this?


    I tried this setting change this afternoon:

    - here is what i get with standard setting:


    you can see the offset being reported.

    And here is what i get with that checkbox crossed:


    Seems better, but still can't have the nominal stay at 0...