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>
Parents
  • 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
Reply
  • 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
Children
No Data