hexagon logo

Script to pull nominal and tols

I am attempting to have a script create a csv file for later use. What I would like is to gain the output_id, and for each respective axis it reports obtain the nom, ptol, mtol.
Currently I have modified some script and what I found is when I have a location/tp output the output_id appears with 0,0,0. Then in the next 'instance' the output_id = 0 and I get the appropriate nom, ptol, mtol value. Almost every other output style (in legacy) will pull the output_id, nom, ptol, mtol without a gap. Here is the code I am using so far:

Dim Axs As String, Nom As String, Oid As String, Uptol As String, Lowtol As String

Part_S = ""
i = 0
For Each Cmd In DmisCommands
If Cmd.IsDimension Then
k = k + 1
Set dcmd = Cmd.dimensioncommand
Ax_s = Cmd.TypeDescription
O_id = CStr(dcmd.ID)
No_m = CStr(dcmd.Nominal)
Up_tol = CStr(dcmd.Plus)
Low_tol = CStr(dcmd.Minus)

If Ax_s = "Datum Definition" Then
GoTo Skip
End If

If Ax_s = "Dimension Position" Or Ax_s = "Dimension Location" Then
O_id_h = O_id
Mult_i = "True"
i = i+1
Else
Mult_i = "False"
i = 0
End If

If Mult_i = "False" Then
If k = 1 Then
Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
End If
If k > 1 Then
Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
End If
End If
If Mult_i = "True" Then
If k = 1 Then
Part_S = O_id_h
End If
If k > 1 Then
Part_S = Part_S & "," & O_id_h & "," & No_m & "," & Up_tol & "," & Low_tol
End If
End If

Skip:
End If
Next Cmd
Part_S = SerNum & "," & Part_S

Private Sub MakeStatusFile()
Open INFOPath For Append As #1
Print #1, Part_S
Close #1
Exit Sub
End Sub


For example the following output will appear as "LOC_FORM",0,0,0,,"5.4756","4.0000","0.002",,"0","5.0000","0":
DIM LOC_FORM= LOCATION OF CIRCLE CIR_A1 UNITS=IN ,$
GRAPH=OFF TEXT=OFF MULT=10.00 OUTPUT=BOTH HALF ANGLE=NO
AX MEAS NOMINAL +TOL -TOL DEV OUTTOL
D 5.47560 5.47560 4.00000 0.00200 0.00000 0.00000 #---
RN 0.00000 0.00000 5.00000 0.00000 0.00000 0.00000 #---
END OF DIMENSION LOC_FORM


I'd like it to be: "LOC_FORM","5.4756","4.0000","0.002","LOC_FORM","0","5.0000","0"
TYIA
Parents
  • Henniger123, Thank you for your input and for the provided example of what you use.
    This is what I came up with and it is now working without missing information:

    Private Sub PCDMIS_TO_INFO()
    
    Dim Ax_s As String, No_m As String, O_id As String, Up_tol As String, Low_tol As String
    
    Part_S = ""
    k = 0
    For Each Cmd In DmisCommands
    If Cmd.IsDimension Then
    Set dcmd = Cmd.dimensioncommand
    Ax_s = Cmd.TypeDescription
    O_id = CStr(dcmd.ID)
    No_m = CStr(dcmd.Nominal)
    Up_tol = CStr(dcmd.Plus)
    Low_tol = CStr(dcmd.Minus)
    
    If Ax_s = "Datum Definition" Or Ax_s = "Geometric Tolerance Command" Then
    GoTo Skip
    End If
    
    If Part_S = "" Then
    If Ax_s = "Dimension Position" Or Ax_s = "Dimension Location" Then
    'Part_S = O_id
    O_id_h = O_id
    End If
    If O_id = "" Then O_id = O_id_h
    If Ax_s = "X Location" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Y Location" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Z Location" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "PR Location" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "PA Location" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "D Location" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "R Location" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "T Location" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Roundness Location" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "A Location" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "A/2 Location" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "L Location" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "H Location" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    
    If Ax_s = "Position X Location" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Position Y Location" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Position Z Location" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Position PR Location" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Position PA Location" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Position DF Location" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Position Diam Location" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Position Roundness" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    
    If Ax_s = "Dimension 2d Distance" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Dimension 3d Distance" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Dimension 2d Angle" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Dimension 3d Angle" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    
    If Ax_s = "Dimension Concentricity" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Dimension Coaxiality" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Dimension Circularity" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Dimension Flatness" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Dimension Perpendicularity" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Dimension Parallelism" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Dimension Total Runout" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Dimension Circular Runout" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    
    If Ax_s = "Dimension Profile of Surface" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Dimension Profile of Line" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Dimension Angularity" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Dimension Symmetry" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    End If
    
    If Not Part_S = "" Then
    If Ax_s = "Dimension Position" Or Ax_s = "Dimension Location" Then
    'Part_S = O_id
    O_id_h = O_id
    End If
    If O_id = "" Then O_id = O_id_h
    If Ax_s = "X Location" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Y Location" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Z Location" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "PR Location" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "PA Location" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "D Location" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "R Location" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "T Location" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Roundness Location" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "A Location" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "A/2 Location" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "L Location" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "H Location" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    
    If Ax_s = "Position X Location" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Position Y Location" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Position Z Location" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Position PR Location" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Position PA Location" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Position DF Location" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Position Diam Location" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Position Roundness" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    
    If Ax_s = "Dimension 2d Distance" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Dimension 3d Distance" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Dimension 2d Angle" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Dimension 3d Angle" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    
    If Ax_s = "Dimension Concentricity" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Dimension Coaxiality" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Dimension Circularity" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Dimension Flatness" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Dimension Perpendicularity" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Dimension Parallelism" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Dimension Total Runout" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Dimension Circular Runout" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    
    If Ax_s = "Dimension Profile of Surface" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Dimension Profile of Line" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Dimension Angularity" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Dimension Symmetry" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    End If
    
    'MsgBox ("Axis name: " & Ax_s)
    Skip:
    End If
    Next Cmd
    Part_S = SerNum & "," & Part_S
    
    End Sub
    


    I guess I'll have to start working on Geotol pulling next.
Reply
  • Henniger123, Thank you for your input and for the provided example of what you use.
    This is what I came up with and it is now working without missing information:

    Private Sub PCDMIS_TO_INFO()
    
    Dim Ax_s As String, No_m As String, O_id As String, Up_tol As String, Low_tol As String
    
    Part_S = ""
    k = 0
    For Each Cmd In DmisCommands
    If Cmd.IsDimension Then
    Set dcmd = Cmd.dimensioncommand
    Ax_s = Cmd.TypeDescription
    O_id = CStr(dcmd.ID)
    No_m = CStr(dcmd.Nominal)
    Up_tol = CStr(dcmd.Plus)
    Low_tol = CStr(dcmd.Minus)
    
    If Ax_s = "Datum Definition" Or Ax_s = "Geometric Tolerance Command" Then
    GoTo Skip
    End If
    
    If Part_S = "" Then
    If Ax_s = "Dimension Position" Or Ax_s = "Dimension Location" Then
    'Part_S = O_id
    O_id_h = O_id
    End If
    If O_id = "" Then O_id = O_id_h
    If Ax_s = "X Location" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Y Location" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Z Location" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "PR Location" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "PA Location" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "D Location" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "R Location" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "T Location" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Roundness Location" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "A Location" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "A/2 Location" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "L Location" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "H Location" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    
    If Ax_s = "Position X Location" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Position Y Location" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Position Z Location" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Position PR Location" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Position PA Location" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Position DF Location" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Position Diam Location" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Position Roundness" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    
    If Ax_s = "Dimension 2d Distance" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Dimension 3d Distance" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Dimension 2d Angle" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Dimension 3d Angle" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    
    If Ax_s = "Dimension Concentricity" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Dimension Coaxiality" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Dimension Circularity" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Dimension Flatness" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Dimension Perpendicularity" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Dimension Parallelism" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Dimension Total Runout" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Dimension Circular Runout" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    
    If Ax_s = "Dimension Profile of Surface" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Dimension Profile of Line" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Dimension Angularity" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Dimension Symmetry" Then
    Part_S = O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    End If
    
    If Not Part_S = "" Then
    If Ax_s = "Dimension Position" Or Ax_s = "Dimension Location" Then
    'Part_S = O_id
    O_id_h = O_id
    End If
    If O_id = "" Then O_id = O_id_h
    If Ax_s = "X Location" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Y Location" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Z Location" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "PR Location" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "PA Location" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "D Location" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "R Location" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "T Location" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Roundness Location" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "A Location" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "A/2 Location" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "L Location" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "H Location" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    
    If Ax_s = "Position X Location" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Position Y Location" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Position Z Location" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Position PR Location" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Position PA Location" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Position DF Location" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Position Diam Location" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Position Roundness" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    
    If Ax_s = "Dimension 2d Distance" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Dimension 3d Distance" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Dimension 2d Angle" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Dimension 3d Angle" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    
    If Ax_s = "Dimension Concentricity" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Dimension Coaxiality" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Dimension Circularity" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Dimension Flatness" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Dimension Perpendicularity" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Dimension Parallelism" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Dimension Total Runout" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Dimension Circular Runout" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    
    If Ax_s = "Dimension Profile of Surface" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Dimension Profile of Line" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Dimension Angularity" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    If Ax_s = "Dimension Symmetry" Then
    Part_S = Part_S & "," & O_id & "," & No_m & "," & Up_tol & "," & Low_tol
    End If
    End If
    
    'MsgBox ("Axis name: " & Ax_s)
    Skip:
    End If
    Next Cmd
    Part_S = SerNum & "," & Part_S
    
    End Sub
    


    I guess I'll have to start working on Geotol pulling next.
Children