hexagon logo

.MEA Files

Currently we are transitioning to PCDMIS 2023 from 2017R2. Issue I'm running into is with our data. We use the MEA file for our templates, and the GD&T is not dumping the data into it now. 

Attached are some photos of the MEA Files and part of the code containing the flatness callout, one ran in 2017 and the other in 2023. The "Flat1" is no longer showing up. 

Seems to be affecting all GDT Callouts, just used this one as an example since it was simple. This is an old program; we ran the migration tool on it provided by hexagon. 

MAIN_ALIGNMENT  =GROUP/SHOWALLPARAMS=YES
                PREHIT/0.15
                RETRACT/0.15
                MOVE/CLEARPLANE
MAIN_DIA1      =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,OUT,LEAST_SQR
                THEO/<0,0,-0.03>,<0,0,1>,9.811,0
                ACTL/<0,0,-0.03>,<0,0,1>,9.8114,0
                TARG/<0,0,-0.03>,<0,0,1>
                START ANG=30,END ANG=330
                ANGLE VEC=<1,-0.0000003,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
                  FIND HOLE=DISABLED,ONERROR=NO,READ POS=NO
                SHOW HITS=YES
                  HIT/BASIC,<4.1603,2.5997,-0.03>,<0.8480483,0.529919,0>,<4.1601,2.5997,-0.03>
                  MOVE/CLEARPLANE
                  HIT/BASIC,<-3.1969,3.7211,-0.03>,<-0.651657,0.7585138,0>,<-3.1969,3.7211,-0.03>
                  MOVE/CLEARPLANE
                  HIT/BASIC,<-3.1969,-3.7211,-0.03>,<-0.6516575,-0.7585134,0>,<-3.1966,-3.7211,-0.03>
                  MOVE/CLEARPLANE
                  HIT/BASIC,<4.1603,-2.5997,-0.03>,<0.8480479,-0.5299195,0>,<4.1603,-2.5999,-0.03>
                  MOVE/CLEARPLANE
                ENDMEAS/
                MOVE/CLEARPLANE
MAIN_DIA2      =FEAT/CIRCLE,CARTESIAN,IN,LEAST_SQR
                THEO/<4.405,0,-0.03>,<0,0,1>,0.6937
                ACTL/<4.4044,0,-0.03>,<0,0,1>,0.694
                MEAS/CIRCLE,4,ZPLUS
                  MOVE/CLEARPLANE
                  HIT/BASIC,NORMAL,<4.7027,0.178,-0.03>,<-0.8582479,-0.5132354,0>,<4.7023,0.1778,-0.03>,USE THEO=YES
                  HIT/BASIC,NORMAL,<4.1274,0.208,-0.03>,<0.8003419,-0.5995439,0>,<4.1269,0.2083,-0.03>,USE THEO=YES
                  HIT/BASIC,NORMAL,<4.1365,-0.2195,-0.03>,<0.7743215,0.6327924,0>,<4.1359,-0.2197,-0.03>,USE THEO=YES
                  HIT/BASIC,NORMAL,<4.7148,-0.156,-0.03>,<-0.893127,0.4498045,0>,<4.7145,-0.1558,-0.03>,USE THEO=YES
                ENDMEAS/
MAIN_PLN1      =FEAT/PLANE,CARTESIAN,TRIANGLE
                THEO/<0,-0.0148,0>,<0,0,1>
                ACTL/<0,-0.0148,-0.0003>,<0.0000466,0.0000012,1>
                MEAS/PLANE,12
                  MOVE/CLEARPLANE
                  HIT/BASIC,NORMAL,<4.85,0.15,0>,<0,0,1>,<4.85,0.15,0>,USE THEO=YES
                  MOVE/CLEARPLANE
                  HIT/BASIC,NORMAL,<3.43,3.43,0>,<0,0,1>,<3.43,3.43,-0.0004>,USE THEO=YES
                  MOVE/CLEARPLANE
                  HIT/BASIC,NORMAL,<0,4.672,0>,<0,0,1>,<0,4.672,-0.0004>,USE THEO=YES
                  MOVE/CLEARPLANE
                  HIT/BASIC,NORMAL,<-3.43,3.43,0>,<0,0,1>,<-3.43,3.43,0.0001>,USE THEO=YES
                  MOVE/CLEARPLANE
                  HIT/BASIC,NORMAL,<-4.85,0-.15,0>,<0,0,1>,<-4.85,-0.15,0.0001>,USE THEO=YES
                  MOVE/CLEARPLANE
                  HIT/BASIC,NORMAL,<-3.43,-3.43,0>,<0,0,1>,<-3.43,-3.43,0.0001>,USE THEO=YES
                  MOVE/CLEARPLANE
                  HIT/BASIC,NORMAL,<0,-4.85,0>,<0,0,1>,<0,-4.85,-0.0003>,USE THEO=YES
                  MOVE/CLEARPLANE
                  HIT/BASIC,NORMAL,<3.43,-3.43,0>,<0,0,1>,<3.4301,-3.43,-0.0005>,USE THEO=YES
                  MOVE/CLEARPLANE
                  HIT/BASIC,NORMAL,<-0.25,0.13,0>,<0,0,1>,<-0.2499,0.13,-0.0007>,USE THEO=YES
                  MOVE/CLEARPLANE
                  HIT/BASIC,NORMAL,<-0.25,-0.13,0>,<0,0,1>,<-0.25,-0.13,-0.0007>,USE THEO=YES
                  MOVE/CLEARPLANE
                  HIT/BASIC,NORMAL,<0.25,0.13,0>,<0,0,1>,<0.25,0.13,-0.0007>,USE THEO=YES
                  MOVE/CLEARPLANE
                  HIT/BASIC,NORMAL,<0.25,-0.13,0>,<0,0,1>,<0.25,-0.13,-0.0004>,USE THEO=YES
                  MOVE/CLEARPLANE
                ENDMEAS/
MAIN_ALIGN     =ALIGNMENT/START,RECALL:MAN_ALIGN,LIST=YES
                  ALIGNMENT/LEVEL,ZPLUS,MAIN_PLN1
                  ALIGNMENT/TRANS,ZAXIS,MAIN_PLN1
                  ALIGNMENT/ROTATE_CIRCLE,XPLUS,TO,MAIN_DIA1,AND,MAIN_DIA2,ABOUT,ZPLUS
                  ALIGNMENT/TRANS,XAXIS,MAIN_DIA1
                  ALIGNMENT/TRANS,YAXIS,MAIN_DIA1
                ALIGNMENT/END
              ENDGROUP/ID=MAIN_ALIGNMENT
TABLE_PLN1   =FEAT/PLANE,CARTESIAN,TRIANGLE
              THEO/<-1.8062,0.1393,-0.187>,<0,0,1>
              ACTL/<-1.8061,0.1393,-0.1884>,<0.0000174,0.0000573,1>
              MEAS/PLANE,3
                MOVE/CLEARPLANE
                HIT/BASIC,NORMAL,<-5.4759,0.7196,-0.187>,<0,0,1>,<-5.4758,0.7196,-0.1883>,USE THEO=YES
                HIT/BASIC,NORMAL,<-5.4569,-0.6689,-0.187>,<0,0,1>,<-5.4569,-0.669,-0.1882>,USE THEO=YES
                MOVE/CLEARPLANE
                HIT/BASIC,NORMAL,<5.5143,0.3674,-0.187>,<0,0,1>,<5.5143,0.3674,-0.1885>,USE THEO=YES
              ENDMEAS/
              COMMENT/REPT,
              THICKNESS AND FLATNESS
  DIM LOC1= LOCATION OF PLANE TABLE_PLN1  UNITS=IN ,$
  GRAPH=OFF  TEXT=OFF  MULT=10.00  OUTPUT=BOTH  HALF ANGLE=NO
  AX       MEAS    NOMINAL       +TOL       -TOL        DEV     OUTTOL
  Z      -0.1884    -0.1870*1     0.0020     0.0020    -0.0014     0.0000 #---
  END OF DIMENSION LOC1
FLAT1        =GEOMETRIC_TOLERANCE/STANDARD=ASME Y14.5,SHOWEXPANDED=YES,
              DESCRIPTION=ON,,
              UNITS=IN,OUTPUT=BOTH,ARROWDENSITY=100,
              SEGMENT_1,FLATNESS,0.01,TOL_ZONE_MATH=DEFAULT,
              TEXT=OFF,CADGRAPH=OFF,REPORTGRAPH=OFF,MULT=10,
                MEASURED:
                  MAIN_PLN1:0.0008,
              ADD
              FEATURES/MAIN_PLN1,,

*Edit: Grammar

  • The Geometric Tolerance commands do not support any of the text based output formats - for either statistics or reporting. 

    Extracts from the following help page: Outputting Results from Geometric Tolerances (hexagonmi.com)

     Only the STATS/ON,Datapage+ or STATS/ON,QDAS methods of statistical output support Geometric Tolerance commands.

     Text Mode Dimension Reporting does not support Geometric Tolerance commands. For details on editing text in Geometric Tolerance reports, see "Edit Text Reporting" in the "Changing the Report Window's Content" section of the PC-DMIS Core documentation.

  • That's unfortunate. They used to I'm assuming because this always worked in 2017. Currently we use the STATS/ON,DES and we have some variables setup for the datapage to save under a specific folder. Was setup by the previous programmer before I started. Would there be another workaround to get this to work under this DES option? I'm going to play around with these other STATS options as well. 

    Heres the code if interested.  Line 84 is where we enable the stats

    _SETUP=GROUP/SHOWALLPARAMS=YES
      $$ NO,
                  path location to get the script for the dialog box at the begining of the part program....
    FPTR         =FILE/OPEN,C:\CMM\DIALOGBOXSCRIPTPATH.TXT,READ
    V1           =FILE/READLINE,FPTR,{DialogBoxScript_line}
                  FILE/CLOSE,FPTR,KEEP
    CS1          =SCRIPT/FILENAME= DIALOGBOXSCRIPT_LINE
                  FUNCTION/Main,SHOW=YES,,
                  STARTSCRIPT/
                  ENDSCRIPT/
      $$ NO,
                  dialogbox script will assign variables to the following, these are dummy variables now - change nothing here ....
                  ASSIGN/CUST="NONE-Not Available"
                  ASSIGN/WO="TEST"
                  ASSIGN/SERIAL="TESTSN"
                  ASSIGN/INSP="Ryan Gardner"
                  ASSIGN/COMMENT=""
                  ASSIGN/PROCESS="In Process"
                  ASSIGN/CAL_TYPE="Yes"
      $$ NO,
                  
      $$ NO,
                  path location to get CMM  ID #, from text file, on C drive of each machine.......
    FPTR         =FILE/OPEN,C:\CMM\MACHINE_ID.TXT,READ
    V2           =FILE/READLINE,FPTR,{CMM_Name}
                  FILE/CLOSE,FPTR,KEEP
      $$ NO,
                  
      $$ NO,
                  path to the location to save the finished cmm report .....
                  ASSIGN/STATC=GETPROGRAMINFO("SEQNUM")
    FPTR         =FILE/OPEN,C:\CMM\CMMREPORTPATH.TXT,READ
    V3           =FILE/READLINE,FPTR,{CMM_Reportline}
                  FILE/CLOSE,FPTR,KEEP
                  ASSIGN/REPORT_PATH=CMM_REPORTLINE+"/"+MAT_NUMBER
                  ASSIGN/REPORT_NAME=REPORT_PATH+"/"+STATC+"_"+MAT_NUMBER+"_"+WO+"_"+SERIAL.PDF
      $$ NO,
                  
      $$ NO,
                  path for the report file folder, to be used as a variable in the next script,to save under the material number.....
                  ASSIGN/RFOLDER=CMM_REPORTLINE+"/"+MAT_NUMBER
      $$ NO,
                  
      $$ NO,
                  path for the location of the script, that creates the part number folder....
    FPTR         =FILE/OPEN,C:\CMM\PARTNUMBERFOLDERPATH.TXT,READ
    V4           =FILE/READLINE,FPTR,{PartNumberScript_line}
                  FILE/CLOSE,FPTR,KEEP
    RSCRIPT      =SCRIPT/FILENAME= PARTNUMBERSCRIPT_LINE
                  FUNCTION/Main,SHOW=YES,,
                  STARTSCRIPT/
                  ENDSCRIPT/
      $$ NO,
                  
      $$ NO,
                  path to the location to save the finished data file......
    FPTR         =FILE/OPEN,C:\CMM\CMMDATAPATH.TXT,READ
    V5           =FILE/READLINE,FPTR,{CMM_Dataline}
                  FILE/CLOSE,FPTR,KEEP
                  ASSIGN/REPORT_NAME_2=CMM_DATALINE+"/"+MAT_NUMBER+"_"+WO+"_"+SERIAL.CSV
      $$ NO,
                  
      $$ NO,
                  path to create customer name folder and work order folder (inside the pcdmis_data folder) to be used as a variable .....
    FPTR         =FILE/OPEN,C:\CMM\CMMDATAPATH2.TXT,READ
    V6           =FILE/READLINE,FPTR,{Cmm_Dataline2}
                  FILE/CLOSE,FPTR,KEEP
                  ASSIGN/FOLDER_PATH=CMM_DATALINE2+"/"+CUST
                  ASSIGN/WO_PATH=FOLDER_PATH+"/"+WO
      $$ NO,
                  
      $$ NO,
                  path to the location of the script that creates a customer name folder and work order number folder ......
    FPTR         =FILE/OPEN,C:\CMM\CUSTOMERNAMESCRIPTPATH.TXT,READ
    V7           =FILE/READLINE,FPTR,{CustomerName_line}
                  FILE/CLOSE,FPTR,KEEP
    CS2          =SCRIPT/FILENAME= CUSTOMERNAME_LINE
                  FUNCTION/Main,SHOW=YES,,
                  STARTSCRIPT/
                  ENDSCRIPT/
      $$ NO,
                  
      $$ NO,
                  turns on the stats mode, sets the pointer and tracefields for the data file .....
                  STATS/ON,DES,DIRECTORY=WO_PATH
                  TRACEFIELD/DISPLAY=NO,REPORT=NO,DISPLAY MESSAGE=Customer ; Customer : CUST
                  TRACEFIELD/DISPLAY=NO,REPORT=NO,DISPLAY MESSAGE=Serial Number ; Serial Number : SERIAL
                  TRACEFIELD/DISPLAY=NO,REPORT=NO,DISPLAY MESSAGE=Work Order Number ; Work Order Number : WO
                  TRACEFIELD/DISPLAY=NO,REPORT=NO,DISPLAY MESSAGE=Inspector Name ; Inspector Name : INSP
                  TRACEFIELD/DISPLAY=NO,REPORT=NO,DISPLAY MESSAGE=Part Description ; Part Description : DESCRIP
                  TRACEFIELD/DISPLAY=NO,REPORT=NO,DISPLAY MESSAGE=Machining Part Drawing ; Machining Part Drawing : MACH_DRAWING
                  TRACEFIELD/DISPLAY=NO,REPORT=NO,DISPLAY MESSAGE=Finished Part Drawing ; Finished Part Drawing : FIN_DRAWING
                  TRACEFIELD/DISPLAY=NO,REPORT=NO,DISPLAY MESSAGE=Cmm Machine  ; Cmm Machine  : CMM_NAME
      $$ NO,
                  
      $$ NO,
                  Program starts here .............
    PROGRAM_START  =LABEL/
                  COMMENT/REPT,
                  "Ship to Customer:" + CUST
                  "Material/Part Number:" + MAT_NUMBER
                  "Description:" +DESCRIP
                  "Uncoated/Machining Drawing:" + MACH_DRAWING
                  "Finished/Customer Drawing:" + FIN_DRAWING
                  "Work Order Number:" + WO
                  "Serial Number:" + SERIAL
                  " "
                  "Inspector Name:" + INSP
                  "Process Stage:"+ PROCESS
                  "Machine:" + CMM_NAME
                  "Special Comments:" +COMMENT
                  " "
                  IS THE PART ACCEPTABLE?(INITIAL,DATE, ADD COMMENTS)( YES   /  NO ) ____________________
                  " "
                ENDGROUP/ID=PROGRAM_SETUP

  • I just ran a quick test on a program and my DES report contains the GD&T report information. What Neil linked above is possibly a solution for you to get this data pulled into reports via a variable. I can play with this sometime and try to help you.

  • The reports seem to be working for us, its just the .MEA file that we use for our customer templates through Excel is the issue. I saw a post a couple days from you about also running the migration tool on some old programs, what version are you coming from / going to? 

  • I see that you came from 2017, and upgraded to 2023. In 2017 they were using Xact dimensioning I believe, and then in 2020 R2 they introduced GeoTolerance. How are you dumping the LOC features and the Flatness GD&T data into your .MEA file? Is it through a script that runs within the program? Because of how 2017 data is pulled vs 2023 is probably the issue here I'm guessing. We came from 2018 to 2021.2, but we didn't have any special exporting needed to separate excel files where I work.

  • I believe it was all being dumped in from the STATS,DES option, and with Xact it seemed to work. We do have some VBA scripts in our programs, but it was all setup previously to me, and regrettably I don't have much experience in VBA so I don't know how it works.

    Through the link Neil provided I was able to get a workaround with just pulling the actual value from the GEOTOL callout, and put it into a generic feature, and then just report that to STATS only and it does show up now in the MEA file. Just the unfortunate bit is I'll have to go do that to all of our GD&T callouts in all of our older programs now. My IT guy had other tickets in with Hexagon support and threw a ticket in for this GD&T not dumping into stats as well, so I'm hoping hexagon will have a better solution that will save me from updating hundreds of older programs. 

              MOVE/CLEARPLANE
    TOPPLN       =FEAT/CONTACT/PLANE/DEFAULT,CARTESIAN,NONE,LEAST_SQR
                  THEO/<0,0,0.039>,<0,0,1>
                  ACTL/<0,0,0.039>,<0,0,1>
                  TARG/<0,0,0.039>,<0,0,1>
                  ANGLE VEC=<1,0,0>,RADIAL
                  SHOW FEATURE PARAMETERS=NO
                  SHOW CONTACT PARAMETERS=YES
                    NUMHITS=6,NUMRINGS=1
                    SPACER=(7.853+8.719)/4
                    AVOIDANCE MOVE=NO
                  SHOW HITS=YES
                    HIT/BASIC,<4.143,0,0.039>,<0,0,1>,<4.143,0,0.039>
                    HIT/BASIC,<2.0715,3.5879,0.039>,<0,0,1>,<2.0715,3.5879,0.039>
                    HIT/BASIC,<-2.0715,3.5879,0.039>,<0,0,1>,<-2.0715,3.5879,0.039>
                    HIT/BASIC,<-4.143,0,0.039>,<0,0,1>,<-4.143,0,0.039>
                    HIT/BASIC,<-2.0715,-3.5879,0.039>,<0,0,1>,<-2.0715,-3.5879,0.039>
                    HIT/BASIC,<2.0715,-3.5879,0.039>,<0,0,1>,<2.0715,-3.5879,0.039>
                  ENDMEAS/
    FLT1         =GEOMETRIC_TOLERANCE/STANDARD=ASME Y14.5,SHOWEXPANDED=YES,
                  DESCRIPTION=ON,,
                  UNITS=IN,OUTPUT=BOTH,ARROWDENSITY=100,
                  SEGMENT_1,FLATNESS,0.005,TOL_ZONE_MATH=DEFAULT,
                  TEXT=OFF,CADGRAPH=OFF,REPORTGRAPH=OFF,MULT=10,
                    MEASURED:
                      TOPPLN:0.0000,
                  ADD
                  FEATURES/TOPPLN,,
    F1           =GENERIC/NONE,DEPENDENT,CARTESIAN,OUT,$
                  NOM/XYZ,<0,0,0>,$
                  MEAS/XYZ,<FLT1.MEAS,0,0>,$
                  NOM/IJK,<0,0,1>,$
                  MEAS/IJK,<0,0,1>,$
                  RADIUS/0,0,$
                  ANGLE/0,0,$
                  DISTANCE/0,0
      DIM L1= LOCATION OF PLANE F1  UNITS=IN ,$
      GRAPH=OFF  TEXT=OFF  MULT=10.00  OUTPUT=STATS  HALF ANGLE=NO
      AX       MEAS    NOMINAL       +TOL       -TOL        DEV     OUTTOL
      X       0.0000     0.0000     0.0050     0.0000     0.0000     0.0000 <---
      END OF DIMENSION L1

  • Are any portion of the VBA scripts pulling any reported data? And do all your programs share that same script? You may be able to do something inside the script instead of each program if so.

  • I don't think any of the scripts actually grab the data. Each program does use the same scripts, they all are in our "Program_Setup" group. I posted the code of it under the reply to Neil. The first main script brings up a dialog box; then we have some scripts that just creates folders if they are not there for part # (where our reports are saved) and same for the DATA and customers as well. 

  • Does anyone know if the XMLSTATS command exports GeoTol commands?

  • As I said earlier, the only supported methods are Datapage+ and Qdas when used with the stats/on command.