hexagon logo

Sorting points from a scan and extracting XYZ of a point

I am using this code to extract the maximum X value point from a scan. I wish to now know what the Z value of this point is.

Thank you for any help.

SCN4 =FEAT/SCAN,LINEAROPEN,NUMBER OF HITS=413,SHOW HITS=NO,SHOWALLPARAMS=NO
MEAS/SCAN
BASICSCAN/LINE,NUMBER OF HITS=413,SHOW HITS=NO,SHOWALLPARAMS=NO
ENDSCAN
ENDMEAS/
ASSIGN/V1=SCN4.HIT[1..400].X
WORKPLANE/XPLUS
ASSIGN/V2=MAX(V1)
F4 =GENERIC/POINT,DEPENDENT,CARTESIAN,$
NOM/XYZ,<0,0,0>,$
MEAS/XYZ,<V2,0,0>,$
NOM/IJK,<0,0,1>,$
MEAS/IJK,<0,0,1>
DIM LOC-3= LOCATION OF POINT F4 UNITS=MM ,$
GRAPH=OFF TEXT=OFF MULT=10.00 OUTPUT=BOTH HALF ANGLE=NO
AX NOMINAL +TOL -TOL MEAS DEV OUTTOL
X 0.0000 0.0001 0.0001 19.9687 19.9687 19.9686 -------->
END OF DIMENSION LOC-3

Parents
  • Hello,


    try this, it seems to work for me

    ASSIGN/V1=MAXINDEX(SCN1.HIT[1..400].X)

    F1 =GENERIC/POINT,DEPENDENT,CARTESIAN,$
    NOM/XYZ,<0,0,0>,$
    MEAS/XYZ,<SCN1.HIT[V1].X,SCN1.HIT[V1].Y,SCN1.HIT[V1].Z>,$
    NOM/IJK,<0,0,1>,$
    MEAS/IJK,<0,0,1>

  • Here is how applied your syntax. What am I missing gives me values of zero.

    SCN1 =FEAT/SCAN,LINEAROPEN,NUMBER OF HITS=326,SHOW HITS=NO,SHOWALLPARAMS=NO
    MEAS/SCAN
    BASICSCAN/LINE,NUMBER OF HITS=326,SHOW HITS=NO,SHOWALLPARAMS=NO
    ENDSCAN
    ENDMEAS/
    ASSIGN/V1=MAXINDEX(SCN1.HIT[1..400].X)
    WORKPLANE/XPLUS
    ASSIGN/V2=MAX(V1)
    F1 =GENERIC/POINT,DEPENDENT,CARTESIAN,$
    NOM/XYZ,<0,0,0>,$
    MEAS/XYZ,<SCN1.HIT[V1].X,SCN1.HIT[V1].Y,SCN1.HIT[V1].Z>,$
    NOM/IJK,<0,0,1>,$
    MEAS/IJK,<0,0,1>
    DIM LOC1= LOCATION OF POINT F1 UNITS=MM ,$
    GRAPH=OFF TEXT=OFF MULT=10.00 OUTPUT=BOTH HALF ANGLE=NO
    AX NOMINAL +TOL -TOL MEAS DEV OUTTOL
    X 0.0000 0.0001 0.0001 0.0000 0.0000 0.0000 ----#----
    Y 0.0000 0.0001 0.0001 0.0000 0.0000 0.0000 ----#----
    Z 0.0000 0.0001 0.0001 0.0000 0.0000 0.0000 ----#----
    END OF DIMENSION LOC1

  • CIR1       =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,IN,LEAST_SQR
                THEO/<5.655,0,-0.7873998>,<0,0,1>,1.535
                ACTL/<5.6528761,-0.0008675,-0.7818497>,<-0.0020778,0.0002172,0.9999978>,1.5429534
                TARG/<5.655,0,-0.7873998>,<0,0,1>
                START ANG=5,END ANG=365
                ANGLE VEC=<1,0,0>
                DIRECTION=CCW
                SHOW FEATURE PARAMETERS=NO
                SHOW CONTACT PARAMETERS=NO
                ASSIGN/V1=MAXINDEX(CIR1.HIT[1..CIR1.NUMHITS].X)
    DIM LOC1= LOCATION OF POINT CIR1.HIT[V1]  UNITS=IN ,$
    GRAPH=OFF  TEXT=OFF  MULT=10.00  OUTPUT=BOTH  HALF ANGLE=NO
    AX        MEAS     NOMINAL       +TOL       -TOL         DEV     OUTTOL
    Z    -0.8802919  -0.8873998  0.0020000  0.0020000   0.0071079  0.0051079 -------->
    END OF DIMENSION LOC1

    Instead of using a generic point, this works as well. In the reported feature be sure to include .hit[variable]

    CIR1       =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,IN,LEAST_SQR
                THEO/<5.655,0,-0.7873998>,<0,0,1>,1.535
                ACTL/<5.6528761,-0.0008675,-0.7818497>,<-0.0020778,0.0002172,0.9999978>,1.5429534
                TARG/<5.655,0,-0.7873998>,<0,0,1>
                START ANG=5,END ANG=365
                ANGLE VEC=<1,0,0>
                DIRECTION=CCW
                SHOW FEATURE PARAMETERS=NO
                SHOW CONTACT PARAMETERS=NO
                ASSIGN/V1=MAXINDEX(CIR1.HIT[1..12].X)
                ASSIGN/V2=MAX(V1)
    F1         =GENERIC/POINT,DEPENDENT,CARTESIAN,$
                NOM/XYZ,<0,0,0>,$
                MEAS/XYZ,<CIR1.HIT[V1].X,CIR1.HIT[V1].Y,CIR1.HIT[V1].Z>,$
                NOM/IJK,<0,0,1>,$
                MEAS/IJK,<0,0,1>
    DIM LOC1= LOCATION OF POINT F1  UNITS=IN ,$
    GRAPH=OFF  TEXT=OFF  MULT=10.00  OUTPUT=BOTH  HALF ANGLE=NO
    AX        MEAS     NOMINAL       +TOL       -TOL        DEV     OUTTOL
    Z    -0.8802919  -0.8873998  0.0020000  0.0020000  0.0071079  0.0051079 -------->
    END OF DIMENSION LOC1

    This also worked for me.

    Maybe your hit count being 326 in the scan, and  your assignment being to 400 is causing the issue. You can change it to MAXINDEX(SCN1.HIT[1..SCN1.NUMHITS]) so that no matter how many hits it ends up being it includes them all. Whether it be 100 hits or 1000 hits.

Reply
  • CIR1       =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,IN,LEAST_SQR
                THEO/<5.655,0,-0.7873998>,<0,0,1>,1.535
                ACTL/<5.6528761,-0.0008675,-0.7818497>,<-0.0020778,0.0002172,0.9999978>,1.5429534
                TARG/<5.655,0,-0.7873998>,<0,0,1>
                START ANG=5,END ANG=365
                ANGLE VEC=<1,0,0>
                DIRECTION=CCW
                SHOW FEATURE PARAMETERS=NO
                SHOW CONTACT PARAMETERS=NO
                ASSIGN/V1=MAXINDEX(CIR1.HIT[1..CIR1.NUMHITS].X)
    DIM LOC1= LOCATION OF POINT CIR1.HIT[V1]  UNITS=IN ,$
    GRAPH=OFF  TEXT=OFF  MULT=10.00  OUTPUT=BOTH  HALF ANGLE=NO
    AX        MEAS     NOMINAL       +TOL       -TOL         DEV     OUTTOL
    Z    -0.8802919  -0.8873998  0.0020000  0.0020000   0.0071079  0.0051079 -------->
    END OF DIMENSION LOC1

    Instead of using a generic point, this works as well. In the reported feature be sure to include .hit[variable]

    CIR1       =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,IN,LEAST_SQR
                THEO/<5.655,0,-0.7873998>,<0,0,1>,1.535
                ACTL/<5.6528761,-0.0008675,-0.7818497>,<-0.0020778,0.0002172,0.9999978>,1.5429534
                TARG/<5.655,0,-0.7873998>,<0,0,1>
                START ANG=5,END ANG=365
                ANGLE VEC=<1,0,0>
                DIRECTION=CCW
                SHOW FEATURE PARAMETERS=NO
                SHOW CONTACT PARAMETERS=NO
                ASSIGN/V1=MAXINDEX(CIR1.HIT[1..12].X)
                ASSIGN/V2=MAX(V1)
    F1         =GENERIC/POINT,DEPENDENT,CARTESIAN,$
                NOM/XYZ,<0,0,0>,$
                MEAS/XYZ,<CIR1.HIT[V1].X,CIR1.HIT[V1].Y,CIR1.HIT[V1].Z>,$
                NOM/IJK,<0,0,1>,$
                MEAS/IJK,<0,0,1>
    DIM LOC1= LOCATION OF POINT F1  UNITS=IN ,$
    GRAPH=OFF  TEXT=OFF  MULT=10.00  OUTPUT=BOTH  HALF ANGLE=NO
    AX        MEAS     NOMINAL       +TOL       -TOL        DEV     OUTTOL
    Z    -0.8802919  -0.8873998  0.0020000  0.0020000  0.0071079  0.0051079 -------->
    END OF DIMENSION LOC1

    This also worked for me.

    Maybe your hit count being 326 in the scan, and  your assignment being to 400 is causing the issue. You can change it to MAXINDEX(SCN1.HIT[1..SCN1.NUMHITS]) so that no matter how many hits it ends up being it includes them all. Whether it be 100 hits or 1000 hits.

Children
No Data