hexagon logo

Multiple parts setup

Hello.

I'm trying to create a program that can measure 24 equal parts in a fixture. I've created a

program that simply shifts the origin to measure the next part. The issue arises in the alignment,

where PC-DMIS compensates, causing me to measure the same part multiple times

instead of moving to the next one. For instance, if I apply an alignment offset in X +100,

the nominal values of auto features change. How can I prevent the alignment from altering nominal

values during execution?" I've pasted the program below. Does anybody know how

to fix this issue?

PART ALIGNMENT=GROUP/SHOWALLPARAMS=NO  (Here lies 24 x and y alignment offset)
            ENDGROUP/ID=PART ALIGNMENT
            ASSIGN/COUNTER=1
            WHILE/COUNTER <=24
              RECALL/ALIGNMENT,INTERNAL,"PART"+COUNTER
PLN1_1       =FEAT/CONTACT/PLANE/DEFAULT,CARTESIAN,OUTLINE,LEAST_SQR
              THEO/<-72,117,0>,<0,0,1>
              ACTL/<-72,117,0>,<0,0,1>
              TARG/<-72,117,0>,<0,0,1>
              ANGLE VEC=<1,0,0>,RADIAL
              SHOW FEATURE PARAMETERS=NO
              SHOW CONTACT PARAMETERS=YES
                NUMHITS=3,NUMROWS=1
                SPACER=12
                AVOIDANCE MOVE=BOTH,DISTANCE BEFORE=5,DISTANCE AFTER=5,DIRECTION=ALONG FEATURE VECTOR
              SHOW HITS=YES
                HIT/BASIC,<-60,117,0>,<0,0,1>,<-60,117,0>
                HIT/BASIC,<-78,127.392,0>,<0,0,1>,<-78,127.392,0>
                HIT/BASIC,<-78,106.608,0>,<0,0,1>,<-78,106.608,0>
              ENDMEAS/
CIR1_1       =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,IN,LEAST_SQR
              THEO/<-72,117,-1.5>,<0,0,1>,16
              ACTL/<-72,117,-1.5>,<0,0,1>,16
              TARG/<-72,117,-1.5>,<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=3,DEPTH=0.5,PITCH=0
                SAMPLE METHOD=SAMPLE_HITS
                SAMPLE HITS=0,SPACER=0
                AVOIDANCE MOVE=BOTH,DISTANCE BEFORE=10,DISTANCE AFTER=10,DIRECTION=ALONG FEATURE VECTOR
                FIND HOLE=DISABLED,ONERROR=NO,READ POS=NO
              SHOW HITS=YES
                HIT/BASIC,<-64,117,-2>,<-1,0,0>,<-64,117,-2>
                HIT/BASIC,<-76,123.928,-2>,<0.5,-0.8660254,0>,<-76,123.928,-2>
                HIT/BASIC,<-76,110.072,-2>,<0.5,0.8660254,0>,<-76,110.072,-2>
              ENDMEAS/
A1_1         =ALIGNMENT/START,RECALL:USE_PART_SETUP,LIST=YES  (Part alignment)
                ALIGNMENT/LEVEL,ZPLUS,PLN1_1
                ALIGNMENT/TRANS,ZAXIS,PLN1_1
                ALIGNMENT/TRANS,XAXIS,CIR1_1
                ALIGNMENT/TRANS,YAXIS,CIR1_1
              ALIGNMENT/END
CIR1         =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,OUT,LEAST_SQR
              THEO/<0,0,0>,<0,0,1>,28.5,0
              ACTL/<0,0,0>,<0,0,1>,28.5,0
              TARG/<0,0,0>,<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=5,DEPTH=2,PITCH=0
                SAMPLE METHOD=SAMPLE_HITS
                SAMPLE HITS=0,SPACER=0
                AVOIDANCE MOVE=BOTH,DISTANCE BEFORE=10,DISTANCE AFTER=10,DIRECTION=ALONG FEATURE VECTOR
                FIND HOLE=DISABLED,ONERROR=NO,READ POS=NO
              SHOW HITS=YES
                HIT/BASIC,<14.25,0,-2>,<1,0,0>,<14.25,0,-2>
                HIT/BASIC,<3.946,13.693,-2>,<0.2769186,0.9608934,0>,<3.946,13.693,-2>
                HIT/BASIC,<-11.648,8.209,-2>,<-0.8174179,0.5760451,0>,<-11.648,8.209,-2>
                HIT/BASIC,<-11.388,-8.567,-2>,<-0.7991279,-0.601161,0>,<-11.388,-8.567,-2>
                HIT/BASIC,<5.146,-13.288,-2>,<0.3611221,-0.9325185,0>,<5.146,-13.288,-2>
              ENDMEAS/
CIR2         =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,IN,LEAST_SQR
              THEO/<0,0,0>,<0,0,1>,19
              ACTL/<0,0,0>,<0,0,1>,19
              TARG/<0,0,0>,<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=10,DEPTH=0.5,PITCH=0
                SAMPLE METHOD=SAMPLE_HITS
                SAMPLE HITS=0,SPACER=0
                AVOIDANCE MOVE=BOTH,DISTANCE BEFORE=2,DISTANCE AFTER=2,DIRECTION=ALONG FEATURE VECTOR
                FIND HOLE=DISABLED,ONERROR=NO,READ POS=NO
              SHOW HITS=YES
                HIT/BASIC,<9.5,0,-0.5>,<-1,0,0>,<9.5,0,-0.5>
                HIT/BASIC,<7.686,5.584,-0.5>,<-0.809017,-0.5877853,0>,<7.686,5.584,-0.5>
                HIT/BASIC,<2.936,9.035,-0.5>,<-0.309017,-0.9510565,0>,<2.936,9.035,-0.5>
                HIT/BASIC,<-2.936,9.035,-0.5>,<0.309017,-0.9510565,0>,<-2.936,9.035,-0.5>
                HIT/BASIC,<-7.686,5.584,-0.5>,<0.809017,-0.5877853,0>,<-7.686,5.584,-0.5>
                HIT/BASIC,<-9.5,0,-0.5>,<1,0,0>,<-9.5,0,-0.5>
                HIT/BASIC,<-7.686,-5.584,-0.5>,<0.809017,0.5877853,0>,<-7.686,-5.584,-0.5>
                HIT/BASIC,<-2.936,-9.035,-0.5>,<0.309017,0.9510565,0>,<-2.936,-9.035,-0.5>
                HIT/BASIC,<2.936,-9.035,-0.5>,<-0.309017,0.9510565,0>,<2.936,-9.035,-0.5>
                HIT/BASIC,<7.686,-5.584,-0.5>,<-0.809017,0.5877853,0>,<7.686,-5.584,-0.5>
              ENDMEAS/
CIR3         =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,IN,LEAST_SQR
              THEO/<0,0,-1.5>,<0,0,1>,16
              ACTL/<0,0,-1.5>,<0,0,1>,16
              TARG/<0,0,-1.5>,<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=5,DEPTH=0.5,PITCH=0
                SAMPLE METHOD=SAMPLE_HITS
                SAMPLE HITS=0,SPACER=0
                AVOIDANCE MOVE=BOTH,DISTANCE BEFORE=10,DISTANCE AFTER=10,DIRECTION=ALONG FEATURE VECTOR
                FIND HOLE=DISABLED,ONERROR=NO,READ POS=NO
              SHOW HITS=YES
                HIT/BASIC,<8,0,-2>,<-1,0,0>,<8,0,-2>
                HIT/BASIC,<2.472,7.608,-2>,<-0.309017,-0.9510565,0>,<2.472,7.608,-2>
                HIT/BASIC,<-6.472,4.702,-2>,<0.809017,-0.5877853,0>,<-6.472,4.702,-2>
                HIT/BASIC,<-6.472,-4.702,-2>,<0.809017,0.5877853,0>,<-6.472,-4.702,-2>
                HIT/BASIC,<2.472,-7.608,-2>,<-0.309017,0.9510565,0>,<2.472,-7.608,-2>
              ENDMEAS/
  DIM DIA1= LOCATION OF CIRCLE CIR1  UNITS=MM ,$
  GRAPH=OFF  TEXT=OFF  MULT=10.00  OUTPUT=BOTH  HALF ANGLE=NO
  AX    NOMINAL       MEAS       +TOL       -TOL        DEV     OUTTOL
  D       28.500     28.500      0.100      0.100      0.000      0.000 -#--
  END OF DIMENSION DIA1
  DIM DIA2= LOCATION OF CIRCLE CIR2  UNITS=MM ,$
  GRAPH=OFF  TEXT=OFF  MULT=10.00  OUTPUT=BOTH  HALF ANGLE=NO
  AX    NOMINAL       MEAS       +TOL       -TOL        DEV     OUTTOL
  D       19.000     19.000      0.050      0.000      0.000      0.000 #---
  END OF DIMENSION DIA2
  DIM DIA3= LOCATION OF CIRCLE CIR3  UNITS=MM ,$
  GRAPH=OFF  TEXT=OFF  MULT=10.00  OUTPUT=BOTH  HALF ANGLE=NO
  AX    NOMINAL       MEAS       +TOL       -TOL        DEV     OUTTOL
  D       16.000     16.000      0.100      0.100      0.000      0.000 -#--
  END OF DIMENSION DIA3
              ASSIGN/MEAS1=DIA1.D.OUTTOL
              ASSIGN/MEAS2=DIA2.D.OUTTOL
              ASSIGN/MEAS3=DIA3.D.OUTTOL
              ASSIGN/V1=MEAS1+MEAS2+MEAS3
              IF/V1==0
                GOTO/L2
              END_IF/
              IF/V1<>0
                GOTO/L1
              END_IF/
L1           =LABEL/
SNAPSHOT1    =SNAPSHOT/
              SOURCE/CAD
              TYPE/LIVE
              PRINT/REPORT,EXEC MODE=END,$
              TO_FILE=ON,AUTO=1,  OUTPUT_FORMAT/PDF,$
                RESET_REPORT=YES,AUTO OPEN=ON,$
                TO_PRINTER=OFF,COPIES=1,$
                TO_DMIS_REPORT=ON,FILE_OPTION=INDEX,FILENAME=,$
                REPORT_THEORETICALS=NONE,REPORT_FEATURE_WITH_DIMENSIONS=YES,$
                TO_EXCEL=OFF,$
                PREVIOUS_RUNS=DELETE_INSTANCES
L2           =LABEL/
              ASSIGN/COUNTER=COUNTER+1
            END_WHILE/



Code update
[edited by: Mikael at 8:24 AM (GMT -5) on Sep 16, 2024]