Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Option Explicit
- Dim App As Object
- Dim Prg As Object
- Dim Cmds As Object
- Dim Cmd As Object
- Dim DCmd As Object
- Dim PCDMajorVersion As Integer
- Dim PCDMinorVersion As Integer
- Dim DimNames(99000) As String
- Dim DimAxes(99000) As String
- Dim DimRefNames(99000) As String
- Dim DimMeas(99000) As String
- Dim DimNoms(99000) As String
- Dim DimUTs(99000) As String
- Dim DimBonuses(99000) As String
- Dim DimLTs(99000) As String
- Dim DimDescrs(99000) As String
- Dim DimPCDCmdType(99000) As String
- Dim DimFCFType(99000) As String
- Dim DimCriticity(99000) As String
- Dim DimComments(99000) As String
- Dim DimRepMode(99000) As Integer
- Dim DimTPNodes(99000) As Integer
- Dim DimTPNodeRefs(99000) As Integer
- Dim myBonus As Double
- Dim DimCount As Integer
- Dim LastWasDimension As Boolean
- Dim DFQWithNodes As Boolean
- Dim OldStr(99000) As String
- Dim sSelSCA(99000) As String
- Dim iSelSca As Integer
- Dim iSelUsed As Integer
- Dim TFName(1000) As String
- Dim TFMessage(1000) As String
- Dim TFValue (1000) As String
- Dim TPNode As Integer
- Dim TPNodeRef As Integer
- Dim TPListNAM(99000) As String
- Dim DimComment As String
- Dim RefPatternMode As Integer
- Dim SplitTPAndSize As Integer
- Dim UseK2005forMinMax As Boolean
- '-------------------------------------
- ' COMPATIBILITY
- '-------------------------------------
- ' ==== This is To be uncommented For older PCDMIS Versions like 2017 ====
- 'Const TRACE_DISPLAY_MESSAGE = 1072
- 'Const SIZE_NOMINAL = 1068
- 'Const DATUM_ID = 1126
- 'Const SEGMENT_TOGGLE = 1065
- 'Const DATUM_FOS_NOMINAL = 1146
- 'Const DATUM_FOS_PLUSTOL = 1147
- 'Const DATUM_FOS_MINUSTOL = 1148
- 'Const DATUM_FOS_MEAS = 1149
- 'Const STANDARD = 1042
- ' DATUM In K2002
- ' Commento Rapprto
- ' Tipo caratt. K2009
- ' Lim naturale inf.
- Function IncrementTPNodes(str1 As String, IsTp As Boolean, IsTPAxis As Boolean) As Boolean
- Dim i As Long, NodeExists As Boolean
- NodeExists =False
- For i=1 To TPNode
- 'If len(TPListNam(i))=len(str1) Then
- If TPListNam(i) = str1 Then NodeExists=True
- 'End If
- Next i
- If NodeExists=False Then
- TPNode=TPNode +1
- TPListNam(TPNode)=str1
- End If
- If IsTP Then TpNodeRef=0
- If IsTPAxis Then TPNodeRef=TPNodeRef+1
- IncrementTPNodes=True
- End Function
- Function ConvertAxis(AxisStr As String, CommandType As Integer) As String
- ' Substitution of Axis Letter based On the command Type. If command Type is Not implemented In Case, Then gives back the original Axis Letter
- ' Select Case CommandType
- ' Case 1107
- ' ConvertAxis="DIST"
- ' Case 1102
- ' ConvertAxis="PLAN"
- ' Case Else
- ConvertAxis=AxisStr
- ' End Select
- End Function
- '================== Criticity separation And management =============
- Function SeparateStrings (ByVal Stringa As String) As Integer
- Dim i As Integer, j As Integer
- Dim Stringa1 As String, Stringa2 As String
- iSelUsed=0
- If Instr(1,Stringa,",")<=0 Then
- SeparateStrings=1
- sSelSCA(1)=Stringa
- Exit Function
- End If
- For j = 1 To 100
- i=InStr(1, Stringa, ",")
- If i=0 Then
- If j=1 Then
- SeparateStrings=0
- Exit For
- End If
- sSelSCA(j)=Stringa
- SeparateStrings=j
- Exit For
- End If
- Stringa1 = Left(Stringa, i - 1)
- Stringa2 = Right(Stringa, (Len(Stringa) - InStr(1, Stringa, ",")))
- Stringa = Stringa2
- sSelSCA(j) = Stringa1
- Next j
- SeparateStrings=j
- End Function
- Function AssignCriticity() As String
- iSelUsed=iSelUsed+1
- If iSelUsed<=iSelSca Then AssignCriticity=sSelSca(iSelUsed) Else AssignCriticity=2
- End Function
- '===============================================================
- Function IsCommentValid(str1 As String) As Boolean
- Dim i As Integer
- str1=trim(str1)
- If len(str1)=0 Then
- IsCommentValid=False
- Exit Function
- End If
- Dim tstStr As String
- tstStr=Left(str1,1)
- For i=1 To len(str1)
- If mid(str1,i,1)<> tstStr Then
- IsCommentValid=True
- Exit Function
- End If
- Next i
- IsCommentValid=False
- End Function
- Function AddDim(DimName As String, DimDescr As String, DimAxis As String, CmdType As String, DimNom As String, DimMea As String, DimUT As String, DimBonus As String, DimLT As String, DimFCFTyp As String, DimCrit As String, DimComm As String, DimRepMod As Integer, DimTPNode As Integer, DimTPNodeRef As Integer) As Boolean
- DimCount = DimCount + 1
- DimNames(DimCount) = DimName
- DimDescrs(DimCount) = DimDescr
- DimAxes(DimCount) = ConvertAxis(DimAxis, CmdType)
- DimNoms(DimCount) = DimNom
- DimMeas(DimCount) = DimMea
- DimUTs(DimCount) = DimUT
- DimBonuses(DimCount) = DimBonus
- DimLTs(DimCount) = DimLT
- DimPCDCmdType(DimCount) = CmdType
- DimFCFType(DimCount) = DimFCFTyp
- DimCriticity(DimCount) = DimCrit
- DimComments(DimCount) = DimComm
- DimRepMode(DimCount) = DimRepMod
- DimTPNodes(DimCount) = DimTPNode
- DimTPNodeRefs(DimCount) = DimTPNodeRef
- AddDim=True
- LastWasDimension=True
- End Function
- Sub CreateFRFile(FileName As String, withNodes As Boolean)
- Dim i As Integer
- Dim TFCont As Integer
- Dim IsTP As Boolean
- Dim IsTPAxis As Boolean
- Dim TPNodeOut As Integer, TPNodeRefOut As Integer
- Dim myBonus As Double
- Dim CommandType As Integer
- Dim CommandID As String
- Dim EnableMinMax As Boolean
- Dim ret As Boolean
- Dim TolsSign As Integer
- Dim LTLegacy As Double, UTLegacy As Double
- DimCount = 0
- TFCont = 0
- EnableMinMax = False
- For i = 1 To 10000
- DimBonuses(i) = "0"
- Next i
- FileName = "C:\Hexagon\FlexReport2\FlexReport2.txt"
- WriteLog "C:\hexagon\flexreport2\pcdimp.txt", "begin", True
- '===== Connect To PC-DMIS =====
- Set App = CreateObject("PCDLRN.Application") ' we Get the PC-DMIS main Object In "App"
- PCDMajorVersion = App.MajorVersion
- PCDMinorVersion = App.MinorVersion
- Set Prg = App.ActivePartProgram ' we Get from "App" the current PP And assign it To "Prg"
- Set Cmds = Prg.Commands ' we Get from "Prg" the Set of commnds And assign it To "Cmds"
- If (Prg.PartProgramSettings.MinusTolerancesShowNegative=True) Then TolsSign=1 Else TolsSign=-1
- '===== Service TF's =====
- TFCont = TFCont + 1
- TFName(TFCont) = "K1002"
- TFMessage(TFCont) = "PartName"
- TFValue(TFCont) = Prg.PartName
- TFCont = TFCont + 1
- TFName(TFCont) = "K1001"
- TFMessage(TFCont) = "SerialNumber"
- TFValue(TFCont) = Prg.SerialNumber
- TFCont = TFCont + 1
- TFName(TFCont) = "K1004"
- TFMessage(TFCont) = "RevisionNumber"
- TFValue(TFCont) = Prg.RevisionNumber
- '======= Get the data from PC-DMIS dimensiosns And assign them To the arrays =======
- Dim DName As String, DDescr As String
- Dim RepMode As Integer
- DimCount = 0
- DimComment = ""
- LastWasDimension=True
- For i = 1 To Cmds.count ' we Loop over the total number of commands (To Get the total number we use property "count" applied To "Cmds")
- Set Cmd = Cmds.item(i) ' we Set the variable "Cmd" To the current "i" - 1,2,3...
- If Cmd.Marked = False Then GoTo 9191
- IsTP = False
- IsTPAxis = False
- CommandType = Cmd.Type
- '=========== TRACE FIELDS ======
- If CommandType = 191 Then
- If Cmd.GetText(TRACE_NAME, 0) = "K2005" Then
- iSelSca = SeparateStrings(Cmd.GetText(TRACE_VALUE, 0))
- Else
- TFCont = TFCont + 1
- If PCDMajorVersion >= 14 Then
- TFName(TFCont) = Cmd.GetText(TRACE_NAME, 0)
- TFMessage(TFCont) = Cmd.GetText(TRACE_DISPLAY_MESSAGE, 0)
- TFValue(TFCont) = Cmd.GetText(TRACE_VALUE, 0)
- Else
- TFName(TFCont) = Cmd.GetText(TRACE_NAME, 0)
- TFMessage(TFCont) = Cmd.GetText(TRACE_NAME, 0)
- TFValue(TFCont) = Cmd.GetText(TRACE_VALUE, 0)
- End If
- End If
- End If
- '=========== MIMAX ======
- If CommandType = 180 Then
- EnableMinMax = False
- If Cmd.GetToggleValue(DIM_HEADING, 1) = 4 Then EnableMinMax = True
- If Cmd.GetToggleValue(DIM_HEADING, 2) = 4 Then EnableMinMax = True
- If Cmd.GetToggleValue(DIM_HEADING, 3) = 4 Then EnableMinMax = True
- If Cmd.GetToggleValue(DIM_HEADING, 4) = 4 Then EnableMinMax = True
- If Cmd.GetToggleValue(DIM_HEADING, 5) = 4 Then EnableMinMax = True
- If Cmd.GetToggleValue(DIM_HEADING, 6) = 4 Then EnableMinMax = True
- If Cmd.GetToggleValue(DIM_HEADING, 7) = 4 Then EnableMinMax = True
- End If
- '========== ANALYSYS VIEW ====
- If CommandType = 176 Then
- LastWasDimension = True
- End If
- '=========== COMMENTS ======
- Dim Comment As String, iComment As Integer
- If CommandType = 170 Then
- If Cmd.GetToggleValue(COMMENT_TYPE, 0) = 2 Then
- If (LastWasDimension=True) Then DimComment = ""
- For iComment = 1 To 20
- Comment = Cmd.GetText(COMMENT_FIELD, iComment)
- ' remove the ~~
- If (Len(Comment) > 3) Then
- If Left(Comment, 2) = "~~" Then
- Comment = Right(Comment, Len(Comment) - 3)
- End If
- End If
- If IsCommentValid(Comment) Then
- If DimComment = "" Then DimComment = Comment Else DimComment = DimComment & "%20%" & Comment
- 'Exit For
- End If
- Next iComment
- LastWasDimension=False
- End If
- End If
- '=========== LEGACY DIMENSIONS ======
- If Cmd.IsDimension = True And Cmd.Type<>1300 And Cmd.Type<>1303 And Cmd.Type <> 1302 Then
- If CommandType = 1209 Then IsTP = True
- If CommandType = 1202 Then IsTPAxis = True
- If CommandType = 1203 Then IsTPAxis = True
- If CommandType = 1204 Then IsTPAxis = True
- CommandID = Cmd.ID
- WriteLog "C:\hexagon\flexreport2\pcdimp.txt", CommandID, False
- Set DCmd = Cmd.DimensionCommand
- If DCmd.AxisLetter = "" Then
- DName = CommandID
- DDescr = Cmd.GetText(REF_ID, 0)
- RepMode = DCmd.OutputMode + 1
- Else
- If Cmd.ID <> "" Then
- DName = CommandID
- DDescr = ""
- If Cmd.GetText(REF_ID, 1) <> "" Then DDescr = DDescr & Cmd.GetText(REF_ID, 1) & " "
- If Cmd.GetText(REF_ID, 2) <> "" Then DDescr = DDescr & Cmd.GetText(REF_ID, 2) & " "
- If Len(DDescr) > 1 Then
- DDescr = Left(DDescr, Len(DDescr) - 1)
- End If
- RepMode = DCmd.OutputMode + 1
- End If
- 'MsgBox DName & "/" & DCmd.AxisLetter & " / " & DCmd.Plus
- If CommandType = 1107 Then
- If left(Cmd.GetText(REF_ID, 3),1)="X" Or Right(Cmd.GetText(REF_ID, 3),1)="X" Then CommandType = 11071
- If left(Cmd.GetText(REF_ID, 3),1)="Y" Or Right(Cmd.GetText(REF_ID, 3),1)="Y" Then CommandType = 11072
- If left(Cmd.GetText(REF_ID, 3),1)="Z" Or Right(Cmd.GetText(REF_ID, 3),1)="Z" Then CommandType = 11073
- End If
- If RepMode = 1 Or RepMode = 2 Or RepMode = 3 Or RepMode = 4 Then
- myBonus = 0
- If DCmd.AxisLetter <> "D1" And DCmd.AxisLetter <> "D2" Then ' We Do Not Output D1 And D2 (refernce elements In TP's)
- If IsTP = False And IsTPAxis = False Then
- TPNodeOut = 0
- TPNodeRefOut = 0
- TPNodeRef = 0
- Else
- ret = IncrementTPNodes(DName, IsTP, IsTPAxis)
- TPNodeOut = TPNode
- TPNodeRefOut = TPNodeRef
- myBonus = DCmd.Bonus
- End If
- ' Specific treatement For Gage Temp
- LTLegacy = -DCmd.Minus
- If CommandType = 405 Or CommandType = 406 Or CommandType = 407 Or CommandType = 408 Then LTLegacy = DCmd.Minus * TolsSign
- UTLegacy=DCmd.Plus
- ret = AddDim(DName, DDescr, DCmd.AxisLetter, cstr(CommandType), Cstr(DCmd.Nominal), Cstr(DCmd.Measured), Cstr(DCmd.Plus + myBonus), Cstr(myBonus),Cstr(LTLegacy), "0", AssignCriticity(), DimComment, RepMode, TPNodeOut, TPNodeRefOut)
- If EnableMinMax = True And (DCmd.AxisLetter = "D" Or DCmd.AxisLetter = "R" Or CommandType = 1106 Or CommandType = 1107 Or CommandType = 1105 Or CommandType = 1118) Then
- ' For form only split In two UT
- If CommandType = 1105 Or CommandType = 1118 Then
- If Cmd.GetToggleValue(174, 0) = 1 Then
- UTLegacy = UTLegacy / 2
- LTLegacy = -UTLegacy
- End If
- End If
- 'iSelUsed = iSelUsed - 1
- ret = AddDim(DName, DDescr, DCmd.AxisLetter & "-MAX", CStr(CommandType), CStr(DCmd.Nominal), CStr(DCmd.Max), CStr(UTLegacy+ myBonus), CStr(myBonus), CStr(LTLegacy), "0", AssignCriticity(), DimComment, RepMode, TPNodeOut, TPNodeRefOut)
- 'iSelUsed = iSelUsed - 1
- ret = AddDim(DName, DDescr, DCmd.AxisLetter & "-MIN", CStr(CommandType), CStr(DCmd.Nominal), CStr(DCmd.Min), CStr(UTLegacy + myBonus), CStr(myBonus), CStr(LTLegacy), "0", AssignCriticity(), DimComment, RepMode, TPNodeOut, TPNodeRefOut)
- End If
- End If
- End If
- End If
- End If
- ' ---- Linear Size ----
- If CommandType = 1320 Or CommandType= 1321 Then
- CommandID = Cmd.ID
- WriteLog "C:\hexagon\flexreport2\pcdimp.txt", CommandID, False
- DName = CommandID
- DDescr = ""
- If Cmd.GetText(REF_ID, 1) <> "" Then DDescr = DDescr & Cmd.GetText(REF_ID, 1) & " "
- If Cmd.GetText(REF_ID, 2) <> "" Then DDescr = DDescr & Cmd.GetText(REF_ID, 2) & " "
- If Len(DDescr) > 1 Then
- DDescr = Left(DDescr, Len(DDescr) - 1)
- End If
- Set DCmd = Cmd.DimensionCommand
- RepMode = DCmd.OutputMode + 1
- If RepMode = 1 Or RepMode = 2 Or RepMode = 3 Or RepMode = 4 Then
- Dim myMaxMea As Double, myMinMea As Double, myNom As Double, myUT As Double, myLT As Double
- Dim myFType As String
- myNom = CDbl(Cmd.GetText(NOMINAL, 0))
- myMaxMea = Cmd.GetFieldValue(UPPER_SIZE, 0) ' CDbl(Cmd.GetText(UPPER_SIZE, 0))
- myMinMea = Cmd.GetFieldValue(LOWER_SIZE, 0) ' CDbl(Cmd.GetText(LOWER_SIZE, 0))
- myUT = Cmd.GetText(UPPER_TOLERANCE, 0)
- myLT = Cmd.GetText(LOWER_TOLERANCE, 0) * TolsSign
- myFType = "SizeU"
- If InStr(1, Cmd.GetText(UPPER_MODIFIER, 1), "_", 1) < 1 Then myFType = myFType & "_" & Cmd.GetText(UPPER_MODIFIER, 1)
- If InStr(1, Cmd.GetText(UPPER_MODIFIER, 2), "_", 1) < 1 Then myFType = myFType & "_" & Cmd.GetText(UPPER_MODIFIER, 2)
- If Cmd.GetToggleValue(STANDARD, 0) = 1 Then
- ret = AddDim(DName, DDescr, myFType, CStr(CommandType), CStr(myNom), CStr(myMaxMea), CStr(myUT), "0", "-99999", "0", AssignCriticity(), DimComment, RepMode, 0, 0)
- Else
- myFType = "UAME"
- ret = AddDim(DName, DDescr, myFType, CStr(CommandType), CStr(myNom), CStr(myMaxMea), CStr(myUT), "0", CStr(myLT), "0", AssignCriticity(), DimComment, RepMode, 0, 0)
- End If
- myFType = "SizeL"
- If InStr(1, Cmd.GetText(LOWER_MODIFIER, 1), "_", 1) < 1 Then myFType = myFType & "_" & Cmd.GetText(LOWER_MODIFIER, 1)
- If InStr(1, Cmd.GetText(LOWER_MODIFIER, 2), "_", 1) < 1 Then myFType = myFType & "_" & Cmd.GetText(LOWER_MODIFIER, 2)
- If Cmd.GetToggleValue(STANDARD, 0) = 1 Then
- ret = AddDim(DName, DDescr, myFType, CStr(CommandType), CStr(myNom), CStr(myMinMea), "99999", "0", CStr(myLT), "0", AssignCriticity(), DimComment, RepMode, 0, 0)
- Else
- myFType = "Local"
- ret = AddDim(DName, DDescr, myFType, CStr(CommandType), CStr(myNom), CStr(myMinMea), CStr(myUT), "0", CStr(myLT), "0", AssignCriticity(), DimComment, RepMode, 0, 0)
- End If
- End If
- End If
- '=========== FCF DIMENSIONS ======
- Dim i2 As Integer, i3 As Integer, i4 As Integer, i5 As Integer, FCFType As Integer
- Dim RefName As String, Mea As Double, Nom As Double, UT As Double, LT As Double, MaxMea As Double, MinMea As Double
- Dim iNumRowsAx As Integer, sDimAxis As String, FName As String, OUTName As String
- Dim bComposite As Boolean, b2Segments As Boolean, sPerUnit As String, ptr As Integer
- Dim ptrLine3 As Integer, ptrLine2 As Integer, ptrLine1 As Integer, ptrSummary As Integer, ptrSummary2 As Integer, CritCount As Integer
- Dim dummy As String, RefID1 As String, RefList As String
- If CommandType = 1303 Or CommandType = 1302 Then
- TPNodeOut = 0
- TPNodeRefOut = 0
- FName = Cmd.ID
- RepMode = Cmd.GetToggleValue(OUTPUT_TYPE, 0)
- FCFType = Cmd.getToggleValue(GDT_SYMBOL, 0)
- WriteLog "C:\hexagon\flexreport2\pcdimp.txt", FName, False
- ' 1303 ========= CIRTY, CYLTY (DATUMS=0, SIZES=0, PER_UNIT=0, COMPOSITE=0, GROUP=1) ===========
- If FCFType = 7 Or FCFType = 8 Then
- ' Dim axis - Output sequence : Global size, local size, gdt
- ptr = 0
- i3 = 0 ' count For criticity
- For i2 = 1 To 1000
- RefName = Trim(Cmd.GetText(REF_ID, i2))
- If RefName = "" Then GoTo 2007
- ptr = ptr + 1
- ' GDT
- Mea = Format(CDbl(Cmd.GetFieldValueEx(DIM_DEVIATION, ptr, "SEG=1")), "0.000000")
- UT = Format(CDbl(Cmd.GetFieldValue(FORM_TOLERANCE, 1)), "0.000000")
- OUTName = FName
- If i2 > 1 Then OUTName = FName & "_" & i2 - 1
- sDimAxis = Cmd.GetFieldValue(GDT_SYMBOL, 0)
- ret = AddDim(OUTName, RefName, sDimAxis, CommandType, "0", Mea, UT, "0", "0", FCFType, AssignCriticity(), DimComment, RepMode, 0, 0)
- i3 = i3 + 1
- ' Global size
- If (Cmd.GetText(USE_SIZE, 1) <> "0") Then
- Nom = Format(CDbl(Cmd.GetFieldValueEx(SIZE_NOMINAL, ptr, "SIZE")), "0.000000")
- UT = Format(CDbl(Cmd.GetFieldValueEx(UPPER_TOLERANCE, ptr, "SIZE")), "0.000000")
- LT = Format(CDbl(Cmd.GetFieldValueEx(LOWER_TOLERANCE, ptr, "SIZE")) * TolsSign, "0.000000")
- Mea = Format(CDbl(Cmd.GetFieldValueEx(UPPER_SIZE, ptr, "SIZE")), "0.000000")
- OUTName = FName
- If i2 > 1 Then OUTName = FName & "_" & i2 - 1
- sDimAxis = "Size_Global"
- ret = AddDim(OUTName, RefName, sDimAxis, CommandType, Nom, Mea, UT, "0", LT, FCFType, AssignCriticity(), DimComment, RepMode, 0, 0)
- i3 = i3 + 1
- End If
- ' Local size
- If (Cmd.GetText(USE_SIZE, 2) <> "0") Then
- 'Nom = Format(CDbl(Cmd.GetFieldValueEx(SIZE_NOMINAL, ptr, "SIZE")), "0.000000")
- 'UT = Format(CDbl(Cmd.GetFieldValueEx(UPPER_TOLERANCE, ptr,"SIZE")), "0.000000")
- 'LT = Format(CDbl(Cmd.GetFieldValueEx(LOWER_TOLERANCE, ptr,"SIZE"))*TolsSign, "0.000000")
- Mea = Format(CDbl(Cmd.GetFieldValueEx(LOWER_SIZE, ptr, "SIZE")), "0.000000")
- OUTName = FName
- If i2 > 1 Then OUTName = FName & "_" & i2 - 1
- sDimAxis = "Size_Local"
- ret = AddDim(OUTName, RefName, sDimAxis, CommandType, Nom, Mea, UT, "0", LT, FCFType, AssignCriticity(), DimComment, RepMode, 0, 0)
- i3 = i3 + 1
- End If
- ' Reset the criticity counter If Next is To Do
- If Cmd.GetText(REF_ID, i2 + 1) <> "" Then
- iSelUsed = iSelUsed - i3
- i3 = 0
- End If
- Next i2
- 2007:
- End If
- ' 1302 ========= PERP, PARL (DATUMS=1, SIZES=1, PER_UNIT=0, COMPOSITE=0, GROUP=1) ===========
- ' 1302 ========= CONC, COAX , RUNOUTS (DATUMS=1, SIZES=0, PER_UNIT=0, COMPOSITE=0, GROUP=1) ===========
- ' 1302 (15,16)====== PROF, SURF (DATUMS=1, SIZES=0, PER_UNIT=1, COMPOSITE=1, GROUP=0)
- ' 1302 (9,10)========= STRA, FLAT (DATUMS=1, SIZES=1, PER_UNIT=1, COMPOSITE=0, GROUP=1) ====
- If FCFType = 11 Or FCFType = 12 Or FCFType = 5 Or FCFType = 6 Or FCFType = 13 Or FCFType = 14 Or FCFType = 17 Or FCFType = 18 Or FCFType = 15 Or FCFType = 16 Or FCFType = 9 Or FCFType = 10 Then
- ' Dim axis - Output sequence : Global size, local size, gdt
- ptr = 0
- i3 = 0 ' count For criticity
- For i2 = 1 To 1000
- RefID1 = Trim(Cmd.GetText(REF_ID, i2))
- If RefID1 = "" Then GoTo 2011
- ptr = ptr + 1
- ' GDT
- For i4 = 1 To 2
- If RefPatternMode = 0 Then
- RefName = RefID1
- For i3 = 1 To 100
- dummy = Trim(Cmd.GetTextEx(DATUM_ID, i3, "SEG=" & i4))
- If dummy = "" Then Exit For
- RefName = RefName & "-" & dummy
- Next
- End If
- If RefPatternMode = 1 Then
- 'Ref Name old method
- RefName = RefID1
- RefList = ""
- For i3 = 1 To 100
- dummy = Trim(Cmd.GetTextEx(DATUM_ID, i3, "SEG=" & i4))
- If dummy = "" Then Exit For
- RefList = RefList & dummy & " - "
- Next
- If (RefList <> "") Then
- RefList = " (" & Left(RefList, Len(RefList) - 3) & ")"
- End If
- RefName = RefName & RefList
- End If
- If Cmd.GetTextEx(SEGMENT_TOGGLE, i4, "SEG=" & i4) = "" Then GoTo 3011
- Mea = Format(CDbl(Cmd.GetFieldValueEx(DIM_MEASURED, ptr, "SEG=" & i4)), "0.000000")
- MaxMea = Format(CDbl(Cmd.GetFieldValueEx(DIM_MAX, ptr, "SEG=" & i4)), "0.000000")
- MinMea = Format(CDbl(Cmd.GetFieldValueEx(DIM_MIN, ptr, "SEG=" & i4)), "0.000000")
- UT = Format(CDbl(Cmd.GetFieldValueEx(FORM_TOLERANCE, i4, "SEG=" & i4)), "0.000000")
- myBonus = Format(CDbl(Cmd.GetFieldValueEx(DIM_BONUS, ptr, "SEG=" & i4)), "0.000000")
- UT=UT+MyBonus
- OUTName = FName
- If i2 > 1 Then OUTName = FName & "_" & i2 - 1
- sDimAxis = Cmd.GetFieldValueEx(GDT_SYMBOL, ptr, "SEG=" & i4)
- ' Segments handling
- If FCFType = 15 Or FCFType = 16 Or FCFType = 9 Or FCFType = 10 Then
- If i4 = 2 Then sDimAxis = sDimAxis & " PER UNIT"
- End If
- ret = AddDim(OUTName, RefName, sDimAxis, CommandType, "0", Mea, UT, "0", "0", FCFType, AssignCriticity(), DimComment, RepMode, 0, 0)
- If FCFType = 15 Or FCFType = 16 Then
- If EnableMinMax = True Then
- if UseK2005forMinMax= False Then iSelUsed = iSelUsed - 1
- ret = AddDim(OUTName, RefName, sDimAxis & "-MAX", CommandType, "0", MaxMea, UT / 2, "0", -UT / 2, FCFType, AssignCriticity(), DimComment, RepMode, 0, 0)
- if UseK2005forMinMax= False Then iSelUsed = iSelUsed - 1
- ret = AddDim(OUTName, RefName, sDimAxis & "-MIN", CommandType, "0", MinMea, UT / 2, "0", -UT / 2, FCFType, AssignCriticity(), DimComment, RepMode, 0, 0)
- End If
- End If
- i3 = i3 + 1
- Next i4
- 3011:
- ' Global size
- If (Cmd.GetText(USE_SIZE, 1) <> "0") Then
- Nom = Format(CDbl(Cmd.GetFieldValueEx(SIZE_NOMINAL, ptr, "SIZE")), "0.000000")
- UT = Format(CDbl(Cmd.GetFieldValueEx(UPPER_TOLERANCE, ptr, "SIZE")), "0.000000")
- LT = Format(CDbl(Cmd.GetFieldValueEx(LOWER_TOLERANCE, ptr, "SIZE"))*TolsSign, "0.000000")
- Mea = Format(CDbl(Cmd.GetFieldValueEx(UPPER_SIZE, ptr, "SIZE")), "0.000000")
- OUTName = FName
- If i2 > 1 Then OUTName = FName & "_" & i2 - 1
- sDimAxis = "Size_Global"
- ret = AddDim(OUTName, RefName, sDimAxis, CommandType, Nom, Mea, UT, "0", LT, FCFType, AssignCriticity(), DimComment, RepMode, 0, 0)
- i3 = i3 + 1
- End If
- ' Local size
- If (Cmd.GetText(USE_SIZE, 2) <> "0") Then
- 'Nom = Format(CDbl(Cmd.GetFieldValueEx(SIZE_NOMINAL, ptr, "SIZE")), "0.000000")
- 'UT = Format(CDbl(Cmd.GetFieldValueEx(UPPER_TOLERANCE, ptr,"SIZE")), "0.000000")
- 'LT = Format(CDbl(Cmd.GetFieldValueEx(LOWER_TOLERANCE, ptr,"SIZE"))*TolsSign, "0.000000")
- Mea = Format(CDbl(Cmd.GetFieldValueEx(LOWER_SIZE, ptr, "SIZE")), "0.000000")
- OUTName = FName
- If i2 > 1 Then OUTName = FName & "_" & i2 - 1
- sDimAxis = "Size_Local"
- ret = AddDim(OUTName, RefName, sDimAxis, CommandType, Nom, Mea, UT, "0", LT, FCFType, AssignCriticity(), DimComment, RepMode, 0, 0)
- i3 = i3 + 1
- End If
- ' Datum size
- If (Cmd.GetTextEx(SHOW_OPTIONS, 0, "DATUMSIZE") = "YES") Then
- Nom = Format(CDbl(Cmd.GetFieldValueEx(DATUM_FOS_NOMINAL, ptr, "DATUMSIZE")), "0.000000")
- UT = Format(CDbl(Cmd.GetFieldValueEx(DATUM_FOS_PLUSTOL, ptr, "DATUMSIZE")), "0.000000")
- LT = Format(CDbl(Cmd.GetFieldValueEx(DATUM_FOS_MINUSTOL, ptr, "DATUMSIZE"))*TolsSign, "0.000000")
- Mea = Format(CDbl(Cmd.GetFieldValueEx(DATUM_FOS_MEAS, ptr, "DATUMSIZE")), "0.000000")
- OUTName = FName
- If i2 > 1 Then OUTName = FName & "_" & i2 - 1
- sDimAxis = "Size_Datum"
- ret = AddDim(OUTName, RefName, sDimAxis, CommandType, Nom, Mea, UT, "0", LT, FCFType, AssignCriticity(), DimComment, RepMode, 0, 0)
- i3 = i3 + 1
- End If
- ' Reset the criticity counter If Next is To Do
- If Cmd.GetText(REF_ID, i2 + 1) <> "" Then
- iSelUsed = iSelUsed - i3
- i3 = 0
- End If
- Next i2
- 2011:
- End If
- '========== TP ==========
- If FCFType = 2 Then
- ptr = 0
- i3 = 0 ' count For criticity
- For i2 = 1 To 1000
- RefID1 = Trim(Cmd.GetText(REF_ID, i2))
- If RefID1 = "" Then GoTo 2002
- ptr = ptr + 1
- ' Loop On segments
- For i4 = 1 To 1000
- If RefPatternMode = 0 Then
- RefName = RefID1
- For i3 = 1 To 100
- dummy = Trim(Cmd.GetTextEx(DATUM_ID, i3, "SEG=" & i4))
- If dummy = "" Then Exit For
- RefName = RefName & "-" & dummy
- Next
- End If
- If RefPatternMode = 1 Then
- 'Ref Name old method
- RefName = RefID1
- RefList = ""
- For i3 = 1 To 100
- dummy = Trim(Cmd.GetTextEx(DATUM_ID, i3, "SEG=" & i4))
- If dummy = "" Then Exit For
- RefList = RefList & dummy & " - "
- Next
- If (RefList <> "") Then
- RefList = " (" & Left(RefList, Len(RefList) - 3) & ")"
- End If
- RefName = RefName & RefList
- End If
- ' GDT - TP
- If Cmd.GetTextEx(SEGMENT_TOGGLE, i4, "SEG=" & i4) = "" Then GoTo 3002
- Mea = Format(CDbl(Cmd.GetFieldValueEx(DIM_DEVIATION, ptr, "SEG=" & i4)), "0.000000")
- UT = Format(CDbl(Cmd.GetFieldValueEx(FORM_TOLERANCE, i4, "SEG=" & i4)), "0.000000")
- myBonus = Format(CDbl(Cmd.GetFieldValueEx(DIM_BONUS, ptr, "SEG=" & i4)), "0.000000")
- OUTName = FName
- If i2 > 1 Then OUTName = FName & "_" & i2 - 1
- sDimAxis = Cmd.GetFieldValueEx(GDT_SYMBOL, ptr, "SEG=" & i4)
- ' Segments handling
- If i4 = 2 Then OUTName = OUTName & "_L"
- ' Nodes
- ret = IncrementTPNodes(OUTName, True, False)
- TPNodeOut = TPNode
- TPNodeRefOut = TPNodeRef
- ret = AddDim(OUTName, RefName, sDimAxis, CommandType, "0", Mea, UT + myBonus, myBonus, "0", FCFType, AssignCriticity(), DimComment, RepMode, TPNodeOut, TPNodeRefOut)
- i3 = i3 + 1
- ' Axes (always only 6, so I can use (ptr-1)*6 + i5)
- For i5 = 1 To 6
- ptrLine1 = i5 + (ptr - 1) * 6
- sDimAxis = Cmd.GetTextEx(SUMMARY_AXIS, ptrLine1, "SEG=" & i4)
- If sDimAxis = "X" Or sDimAxis = "Y" Or sDimAxis = "Z" Or sDimAxis = "PR" Or sDimAxis = "PA" Then
- Nom = Format(CDbl(Cmd.GetFieldValueEx(SUMMARY_NOMINAL, ptrLine1, "SEG=" & i4)), "0.000000")
- UT = "0.000000"
- LT = "0.000000"
- Mea = Format(CDbl(Cmd.GetFieldValueEx(SUMMARY_MEAS, ptrLine1, "SEG=" & i4)), "0.000000")
- ' Nodes
- ret = IncrementTPNodes(OUTName, False, True)
- TPNodeOut = TPNode
- TPNodeRefOut = TPNodeRef
- ret = AddDim(OUTName, RefName, sDimAxis, CommandType, Nom, Mea, UT, "0", LT, FCFType, AssignCriticity(), DimComment, RepMode, TPNodeOut, TPNodeRefOut)
- i3 = i3 + 1
- End If
- Next i5
- ' Sizes goes out only For the first segment
- If i4 = 1 Then
- ' Global size
- If (Cmd.GetText(USE_SIZE, 1) <> "0") Then
- Nom = Format(CDbl(Cmd.GetFieldValueEx(SIZE_NOMINAL, ptr, "SIZE")), "0.000000")
- UT = Format(CDbl(Cmd.GetFieldValueEx(UPPER_TOLERANCE, ptr, "SIZE")), "0.000000")
- LT = Format(CDbl(Cmd.GetFieldValueEx(LOWER_TOLERANCE, ptr, "SIZE"))*TolsSign, "0.000000")
- Mea = Format(CDbl(Cmd.GetFieldValueEx(UPPER_SIZE, ptr, "SIZE")), "0.000000")
- sDimAxis = "DF"
- If SplitTPAndSize=0 Then
- ret = AddDim(OUTName, RefName, sDimAxis, CommandType, Nom, Mea, UT, "0", LT, FCFType, AssignCriticity(), DimComment, RepMode, 0, 0)
- End If
- If SplitTPAndSize=1 Then
- ret = AddDim(RefID1, RefName, sDimAxis, CommandType, Nom, Mea, UT, "0", LT, FCFType, AssignCriticity(), DimComment, RepMode, 0, 0)
- End If
- i3 = i3 + 1
- End If
- ' Local size
- If (Cmd.GetText(USE_SIZE, 2) <> "0") Then
- 'Nom = Format(CDbl(Cmd.GetFieldValueEx(SIZE_NOMINAL, ptr, "SIZE")), "0.000000")
- 'UT = Format(CDbl(Cmd.GetFieldValueEx(UPPER_TOLERANCE, ptr,"SIZE")), "0.000000")
- 'LT = Format(CDbl(Cmd.GetFieldValueEx(LOWER_TOLERANCE, ptr,"SIZE"))*TolsSign, "0.000000")
- Mea = Format(CDbl(Cmd.GetFieldValueEx(LOWER_SIZE, ptr, "SIZE")), "0.000000")
- sDimAxis = "DF_Local"
- If SplitTPAndSize=0 Then
- ret = AddDim(OUTName, RefName, sDimAxis, CommandType, Nom, Mea, UT, "0", LT, FCFType, AssignCriticity(), DimComment, RepMode, 0, 0)
- Else
- ret = AddDim(RefID1, RefName, sDimAxis, CommandType, Nom, Mea, UT, "0", LT, FCFType, AssignCriticity(), DimComment, RepMode, 0, 0)
- End If
- i3 = i3 + 1
- End If
- ' Datum size - NA here?
- If (Cmd.GetTextEx(SHOW_OPTIONS, 0, "DATUMSIZE") = "YES") Then
- Nom = Format(CDbl(Cmd.GetFieldValueEx(DATUM_FOS_NOMINAL, ptr, "DATUMSIZE")), "0.000000")
- UT = Format(CDbl(Cmd.GetFieldValueEx(DATUM_FOS_PLUSTOL, ptr, "DATUMSIZE")), "0.000000")
- LT = Format(CDbl(Cmd.GetFieldValueEx(DATUM_FOS_MINUSTOL, ptr, "DATUMSIZE"))*TolsSign, "0.000000")
- Mea = Format(CDbl(Cmd.GetFieldValueEx(DATUM_FOS_MEAS, ptr, "DATUMSIZE")), "0.000000")
- sDimAxis = "Size_Datum"
- If SplitTPAndSize=0 Then
- ret = AddDim(OUTName, RefName, sDimAxis, CommandType, Nom, Mea, UT, "0", LT, FCFType, AssignCriticity(), DimComment, RepMode, 0, 0)
- End If
- If SplitTPAndSize=1 Then
- ret = AddDim(RefID1, RefName, sDimAxis, CommandType, Nom, Mea, UT, "0", LT, FCFType, AssignCriticity(), DimComment, RepMode, 0, 0)
- End If
- i3 = i3 + 1
- End If
- End If
- Next i4
- 3002:
- ' Reset the criticity counter If Next is To Do
- If Cmd.GetText(REF_ID, i2 + 1) <> "" Then
- iSelUsed = iSelUsed - i3
- i3 = 0
- End If
- Next i2
- 2002:
- End If
- End If
- ' XACT features present up To 2020R1 only!
- If CommandType = 184 Then
- TPNodeOut = 0
- TPNodeRefOut = 0
- FName = Cmd.ID
- RepMode = Cmd.GetToggleValue(OUTPUT_TYPE, 0)
- FCFType = Cmd.getToggleValue(GDT_SYMBOL, 0)
- WriteLog "C:\hexagon\flexreport2\pcdimp.txt", FName, False
- ' Division On DATUMS, SIZES, PER_UNIT, COMPOSITE, GROUP
- ' ========= PERP, PARL (DATUMS=1, SIZES=1, PER_UNIT=0, COMPOSITE=0, GROUP=1) ===========
- If FCFType = 11 Or FCFType = 12 Then
- ' Dim axis
- sDimAxis = Cmd.GetFieldValue(GDT_SYMBOL, 0)
- ptr = 0
- For i2 = 1 To 1000
- ' Ref Name
- RefName = Trim(Cmd.GetText(REF_ID, i2))
- If RefName = "" Then GoTo 1011
- If RefPatternMode = 0 Then
- For i3 = 1 To 100
- If Cmd.GetText(DIM_RPT_DATUM, i3) = "" Then Exit For
- RefName = RefName & "-" & Trim(Cmd.GetText(DIM_RPT_DATUM, i3))
- Next
- End If
- If RefPatternMode = 1 Then
- 'Ref Name old method
- RefList = ""
- For i3 = 1 To 100
- dummy = Cmd.GetText(DIM_RPT_DATUM, i3)
- If dummy = "" Then Exit For
- RefList = RefList & dummy & " - "
- Next
- If (RefList <> "") Then
- RefList = " (" & Left(RefList, Len(RefList) - 3) & ")"
- End If
- RefName = RefName & RefList
- End If
- ptr = ptr + 1
- Mea = Format(CDbl(Cmd.GetFieldValue(LINE2_MEAS, ptr)), "0.000000")
- UT = Format(CDbl(Cmd.GetFieldValue(LINE2_PLUSTOL, ptr)), "0.000000")
- myBonus = Format(CDbl(Cmd.GetFieldValue(LINE2_BONUS, ptr)), "0.000000")
- OUTName = FName
- If i2 > 1 Then OUTName = FName & "_" & i2 - 1
- ret = AddDim(OUTName, RefName, sDimAxis, CommandType, "0", Mea, UT + myBonus, myBonus, "0", FCFType, AssignCriticity(), DimComment, RepMode, 0, 0)
- ' Reset the criticity counter If Next is To Do
- If Cmd.GetText(REF_ID, i2 + 1) <> "" Then iSelUsed = iSelUsed - 1
- ' Check If the dimension is To be Output As DF axis too
- If Cmd.GetText(LINE1_FEATNAME, i2) <> "" Then
- Mea = Format(CDbl(Cmd.GetFieldValue(LINE1_MEAS, ptr)), "0.000000")
- UT = Format(CDbl(Cmd.GetFieldValue(LINE1_PLUSTOL, ptr)), "0.000000")
- LT = Format(CDbl(Cmd.GetFieldValue(LINE1_MINUSTOL, ptr)), "0.000000")
- Nom = Format(CDbl(Cmd.GetFieldValue(LINE1_NOMINAL, ptr)), "0.000000")
- MinMea = Format(CDbl(Cmd.GetFieldValue(LINE1_MIN, ptr)), "0.000000")
- MaxMea = Format(CDbl(Cmd.GetFieldValue(LINE1_MAX, ptr)), "0.000000")
- OUTName = FName
- If i2 > 1 Then OUTName = FName & "_" & i2 - 1
- ret = AddDim(OUTName, RefName, "DF", CommandType, Nom, Mea, UT, "0", LT, FCFType, AssignCriticity(), DimComment, RepMode, 0, 0)
- If EnableMinMax Then
- If UseK2005forMinMax= False Then iSelUsed = iSelUsed - 1
- ret = AddDim(OUTName, RefName, "DF-MAX", CommandType, "0", MaxMea, UT, "0", LT, FCFType, AssignCriticity(), DimComment, RepMode, 0, 0)
- If UseK2005forMinMax= False Then iSelUsed = iSelUsed - 1
- ret = AddDim(OUTName, RefName, "DF-MIN", CommandType, "0", MinMea, UT, "0", LT, FCFType, AssignCriticity(), DimComment, RepMode, 0, 0)
- End If
- ' Reset the criticity counter If Next is To Do
- If Cmd.GetText(LINE1_FEATNAME, i2 + 1) <> "" Then iSelUsed = iSelUsed - 1
- End If
- ' Reset the criticity counter If Next is To Do
- If Cmd.GetText(REF_ID, i2 + 1) <> "" Then iSelUsed = iSelUsed - 1
- Next i2
- 1011:
- End If
- ' ========= CONC, COAX , RUNOUTS (DATUMS=1, SIZES=0, PER_UNIT=0, COMPOSITE=0, GROUP=1) ===========
- If FCFType = 5 Or FCFType = 6 Or FCFType = 13 Or FCFType = 14 Or FCFType = 17 Or FCFType = 18 Then
- ' Dim axis
- sDimAxis = Cmd.GetFieldValue(GDT_SYMBOL, 0)
- ptr = 0
- For i2 = 1 To 1000
- RefName = Trim(Cmd.GetText(REF_ID, i2))
- If RefName = "" Then GoTo 1005
- If RefPatternMode = 0 Then
- For i3 = 1 To 100
- If Cmd.GetText(DIM_RPT_DATUM, i3) = "" Then Exit For
- RefName = RefName & "-" & Trim(Cmd.GetText(DIM_RPT_DATUM, i3))
- Next
- End If
- If RefPatternMode = 1 Then
- 'Ref Name old method
- RefList = ""
- For i3 = 1 To 100
- dummy = Cmd.GetText(DIM_RPT_DATUM, i3)
- If dummy = "" Then Exit For
- RefList = RefList & dummy & " - "
- Next
- If (RefList <> "") Then
- RefList = " (" & Left(RefList, Len(RefList) - 3) & ")"
- End If
- RefName = RefName & RefList
- End If
- ptr = ptr + 1
- Mea = Format(CDbl(Cmd.GetFieldValue(LINE2_MEAS, ptr)), "0.000000")
- UT = Format(CDbl(Cmd.GetFieldValue(LINE2_PLUSTOL, ptr)), "0.000000")
- OUTName = FName
- If i2 > 1 Then OUTName = FName & "_" & i2 - 1
- ret = AddDim(OUTName, RefName, sDimAxis, CommandType, "0", Mea, UT, "0", "0", FCFType, AssignCriticity(), DimComment, RepMode, 0, 0)
- ' Reset the criticity counter If Next is To Do
- If Cmd.GetText(REF_ID, i2 + 1) <> "" Then iSelUsed = iSelUsed - 1
- Next i2
- 1005:
- End If
- ' ========= CIRTY, CYLTY (DATUMS=0, SIZES=0, PER_UNIT=0, COMPOSITE=0, GROUP=1) ===========
- If FCFType = 7 Or FCFType = 8 Then
- ' Dim axis
- sDimAxis = Cmd.GetFieldValue(GDT_SYMBOL, 0)
- ptr = 0
- For i2 = 1 To 1000
- RefName = Trim(Cmd.GetText(REF_ID, i2))
- If RefName = "" Then GoTo 1007
- If (RefPatternMode = 1) Then
- RefName = RefName & " (" & RefName & ")"
- End If
- ptr = ptr + 1
- Mea = Format(CDbl(Cmd.GetFieldValue(LINE2_MEAS, ptr)), "0.000000")
- UT = Format(CDbl(Cmd.GetFieldValue(LINE2_PLUSTOL, ptr)), "0.000000")
- OUTName = FName
- If i2 > 1 Then OUTName = FName & "_" & i2 - 1
- ret = AddDim(OUTName, RefName, sDimAxis, CommandType, "0", Mea, UT, "0", "0", FCFType, AssignCriticity(), DimComment, RepMode, 0, 0)
- ' Reset the criticity counter If Next is To Do
- If Cmd.GetText(REF_ID, i2 + 1) <> "" Then iSelUsed = iSelUsed - 1
- Next i2
- 1007:
- End If
- ' ========= STRA, FLAT (DATUMS=1, SIZES=1, PER_UNIT=1, COMPOSITE=0, GROUP=1) ====
- If FCFType = 9 Or FCFType = 10 Then
- ' Dim axis
- sDimAxis = Cmd.GetFieldValue(GDT_SYMBOL, 0)
- ' check If per unit is On
- If Cmd.GetToggleValue(COMPOSITE, 0) = 2 Then bComposite = True Else bComposite = False
- ptr = 0
- For i2 = 1 To 1000
- RefName = Trim(Cmd.GetText(REF_ID, i2))
- If RefName = "" Then GoTo 1009
- If (RefPatternMode = 1) Then
- RefName = RefName & " (" & RefName & ")"
- End If
- ' Read main dimension
- ptr = ptr + 1
- Mea = Format(CDbl(Cmd.GetFieldValue(LINE2_MEAS, ptr)), "0.000000")
- UT = Format(CDbl(Cmd.GetFieldValue(LINE2_PLUSTOL, ptr)), "0.000000")
- OUTName = FName
- If i2 > 1 Then OUTName = FName & "_" & i2 - 1
- ret = AddDim(OUTName, RefName, sDimAxis, CommandType, "0", Mea, UT, "0", "0", FCFType, AssignCriticity(), DimComment, RepMode, 0, 0)
- If bComposite Then ' Read per unit dimension
- ptr = ptr + 1
- Mea = Format(CDbl(Cmd.GetFieldValue(LINE2_MEAS, ptr)), "0.000000")
- UT = Format(CDbl(Cmd.GetFieldValue(LINE2_PLUSTOL, ptr)), "0.000000")
- OUTName = FName
- If i2 > 1 Then OUTName = FName & "_" & i2 - 1
- ret = AddDim(OUTName, RefName & " " & Cmd.GetText(PERUNIT_LENGTH, 0) & "x" & Cmd.GetText(PERUNIT_WIDTH, 0), sDimAxis & " PER UNIT", CommandType, "0", Mea, UT, "0", "0", FCFType, AssignCriticity(), DimComment, RepMode, 0, 0)
- End If
- ' Reset the criticity counter If Next is To Do
- If Cmd.GetText(REF_ID, i2 + 1) <> "" And bComposite = False Then iSelUsed = iSelUsed - 1
- If Cmd.GetText(REF_ID, i2 + 1) <> "" And bComposite = True Then iSelUsed = iSelUsed - 2
- Next i2
- 1009:
- End If
- ' ====== PROF, SURF (DATUMS=1, SIZES=0, PER_UNIT=1, COMPOSITE=1, GROUP=0)
- If FCFType = 15 Or FCFType = 16 Then
- sDimAxis = Cmd.GetFieldValue(GDT_SYMBOL, 0)
- ' check If composite is On
- If Cmd.GetToggleValue(COMPOSITE, 0) = 2 Then bComposite = True Else bComposite = False
- sPerUnit = Cmd.GetText(PERUNIT_LENGTH, 0)
- ptr = 0
- If bComposite Then ' composite Or per unite
- If sPerUnit <> "" Then ' per unit (no datums)
- ' Create RefName
- RefName = ""
- For i2 = 1 To 1000
- If Cmd.GetText(REF_ID, i2) = "" Then Exit For
- RefName = RefName & Trim(Cmd.GetText(REF_ID, i2)) & ","
- Next
- RefName = Left(RefName, Len(RefName) - 1)
- ptr = ptr + 1
- Mea = Format(CDbl(Cmd.GetFieldValue(LINE2_MEAS, ptr)), "0.000000")
- MaxMea = Format(CDbl(Cmd.GetFieldValue(LINE2_MAX, ptr)), "0.000000")
- MinMea = Format(CDbl(Cmd.GetFieldValue(LINE2_MIN, ptr)), "0.000000")
- UT = Format(CDbl(Cmd.GetFieldValue(LINE2_PLUSTOL, ptr)), "0.000000")
- OUTName = FName
- ret = AddDim(OUTName, RefName, sDimAxis, CommandType, "0", Mea, UT, "0", "0", FCFType, AssignCriticity(), DimComment, RepMode, 0, 0)
- If EnableMinMax = True Then
- if UseK2005forMinMax= False Then iSelUsed = iSelUsed - 1
- ret = AddDim(OUTName, RefName, sDimAxis & "-MAX", CommandType, "0", MaxMea, UT / 2, "0", -UT / 2, FCFType, AssignCriticity(), DimComment, RepMode, 0, 0)
- if UseK2005forMinMax= False Then iSelUsed = iSelUsed - 1
- ret = AddDim(OUTName, RefName, sDimAxis & "-MIN", CommandType, "0", MinMea, UT / 2, "0", -UT / 2, FCFType, AssignCriticity(), DimComment, RepMode, 0, 0)
- End If
- ptr = ptr + 1
- Mea = Format(CDbl(Cmd.GetFieldValue(LINE2_MEAS, ptr)), "0.000000")
- MaxMea = Format(CDbl(Cmd.GetFieldValue(LINE2_MAX, ptr)), "0.000000")
- MinMea = Format(CDbl(Cmd.GetFieldValue(LINE2_MIN, ptr)), "0.000000")
- UT = Format(CDbl(Cmd.GetFieldValue(LINE2_PLUSTOL, ptr)), "0.000000")
- OUTName = FName
- ret = AddDim(OUTName, RefName & " /" & Cmd.GetText(PERUNIT_LENGTH, 0), sDimAxis & " PER UNIT", CommandType, "0", Mea, UT, "0", "0", FCFType, AssignCriticity(), DimComment, RepMode, 0, 0)
- If EnableMinMax = True Then
- if UseK2005forMinMax= False Then iSelUsed = iSelUsed - 1
- ret = AddDim(OUTName, RefName & " /" & Cmd.GetText(PERUNIT_LENGTH, 0), sDimAxis & "-MAX PER UNIT", CommandType, "0", Mea, UT / 2, "0", -UT / 2, FCFType, AssignCriticity(), DimComment, RepMode, 0, 0)
- if UseK2005forMinMax= False Then iSelUsed = iSelUsed - 1
- ret = AddDim(OUTName, RefName & " /" & Cmd.GetText(PERUNIT_LENGTH, 0), sDimAxis & "-MIN PER UNIT", CommandType, "0", Mea, UT / 2, "0", -UT / 2, FCFType, AssignCriticity(), DimComment, RepMode, 0, 0)
- End If
- Else ' composite (datums)
- RefName = ""
- For i2 = 1 To 1000
- If Cmd.GetText(REF_ID, i2) = "" Then Exit For
- RefName = RefName & Trim(Cmd.GetText(REF_ID, i2)) & ","
- Next
- RefName = Left(RefName, Len(RefName) - 1)
- If RefPatternMode = 0 Then
- For i3 = 1 To 100
- If Cmd.GetText(DIM_RPT_DATUM, i3) = "" Then Exit For
- RefName = RefName & "-" & Trim(Cmd.GetText(DIM_RPT_DATUM, i3))
- Next
- End If
- If RefPatternMode = 1 Then
- 'Ref Name old method
- RefList = ""
- For i3 = 1 To 100
- dummy = Trim(Cmd.GetText(DIM_RPT_DATUM, i3))
- If dummy = "" Then Exit For
- RefList = RefList & dummy & " - "
- Next
- If (RefList <> "") Then
- RefList = " (" & Left(RefList, Len(RefList) - 3) & ")"
- End If
- RefName = RefName & RefList
- End If
- ptr = ptr + 1
- Mea = Format(CDbl(Cmd.GetFieldValue(LINE2_MEAS, ptr)), "0.000000")
- MaxMea = Format(CDbl(Cmd.GetFieldValue(LINE2_MAX, ptr)), "0.000000")
- MinMea = Format(CDbl(Cmd.GetFieldValue(LINE2_MIN, ptr)), "0.000000")
- UT = Format(CDbl(Cmd.GetFieldValue(LINE2_PLUSTOL, ptr)), "0.000000")
- OUTName = FName
- ret = AddDim(OUTName, RefName, sDimAxis, CommandType, "0", Mea, UT, "0", "0", FCFType, AssignCriticity(), DimComment, RepMode, 0, 0)
- If EnableMinMax = True Then
- if UseK2005forMinMax= False Then iSelUsed = iSelUsed - 1
- ret = AddDim(OUTName, RefName, sDimAxis & "-MAX", CommandType, "0", MaxMea, UT / 2, "0", -UT / 2, FCFType, AssignCriticity(), DimComment, RepMode, 0, 0)
- if UseK2005forMinMax= False Then iSelUsed = iSelUsed - 1
- ret = AddDim(OUTName, RefName, sDimAxis & "-MIN", CommandType, "0", MinMea, UT / 2, "0", -UT / 2, FCFType, AssignCriticity(), DimComment, RepMode, 0, 0)
- End If
- Mea = Format(CDbl(Cmd.GetFieldValue(LINE3_MEAS, ptr)), "0.000000")
- MaxMea = Format(CDbl(Cmd.GetFieldValue(LINE3_MAX, ptr)), "0.000000")
- MinMea = Format(CDbl(Cmd.GetFieldValue(LINE3_MIN, ptr)), "0.000000")
- UT = Format(CDbl(Cmd.GetFieldValue(LINE3_PLUSTOL, ptr)), "0.000000")
- OUTName = FName
- ret = AddDim(OUTName, RefName, sDimAxis & "-COMP", CommandType, "0", Mea, UT, "0", "0", FCFType, AssignCriticity(), DimComment, RepMode, 0, 0)
- If EnableMinMax = True Then
- if UseK2005forMinMax= False Then iSelUsed = iSelUsed - 1
- ret = AddDim(OUTName, RefName, sDimAxis & "-MAX COMP", CommandType, "0", MaxMea, UT / 2, "0", -UT / 2, FCFType, AssignCriticity(), DimComment, RepMode, 0, 0)
- if UseK2005forMinMax= False Then iSelUsed = iSelUsed - 1
- ret = AddDim(OUTName, RefName, sDimAxis & "-MAX COMP", CommandType, "0", MinMea, UT / 2, "0", -UT / 2, FCFType, AssignCriticity(), DimComment, RepMode, 0, 0)
- End If
- End If
- Else
- RefName = ""
- For i2 = 1 To 1000
- If Cmd.GetText(REF_ID, i2) = "" Then Exit For
- RefName = RefName & Trim(Cmd.GetText(REF_ID, i2)) & ","
- Next
- RefName = Left(RefName, Len(RefName) - 1)
- If RefPatternMode = 0 Then
- For i3 = 1 To 100
- If Cmd.GetText(DIM_RPT_DATUM, i3) = "" Then Exit For
- RefName = RefName & "-" & Trim(Cmd.GetText(DIM_RPT_DATUM, i3))
- Next
- End If
- If RefPatternMode = 1 Then
- 'Ref Name old method
- RefList = ""
- For i3 = 1 To 100
- dummy = Cmd.GetText(DIM_RPT_DATUM, i3)
- If dummy = "" Then Exit For
- RefList = RefList & dummy & " - "
- Next
- If (RefList <> "") Then
- RefList = " (" & Left(RefList, Len(RefList) - 3) & ")"
- End If
- RefName = RefName & RefList
- End If
- ptr = ptr + 1
- Mea = Format(CDbl(Cmd.GetFieldValue(LINE2_MEAS, ptr)), "0.000000")
- UT = Format(CDbl(Cmd.GetFieldValue(LINE2_PLUSTOL, ptr)), "0.000000")
- MaxMea = Format(CDbl(Cmd.GetFieldValue(LINE2_MAX, ptr)), "0.000000")
- MinMea = Format(CDbl(Cmd.GetFieldValue(LINE2_MIN, ptr)), "0.000000")
- OUTName = FName
- ret = AddDim(OUTName, RefName, sDimAxis, CommandType, "0", Mea, UT, "0", "0", FCFType, AssignCriticity(), DimComment, RepMode, 0, 0)
- If EnableMinMax = True Then
- if UseK2005forMinMax= False Then iSelUsed = iSelUsed - 1
- ret = AddDim(OUTName, RefName, sDimAxis & "-MAX", CommandType, "0", MaxMea, UT / 2, "0", -UT / 2, FCFType, AssignCriticity(), DimComment, RepMode, 0, 0)
- if UseK2005forMinMax= False Then iSelUsed = iSelUsed - 1
- ret = AddDim(OUTName, RefName, sDimAxis & "-MIN", CommandType, "0", MinMea, UT / 2, "0", -UT / 2, FCFType, AssignCriticity(), DimComment, RepMode, 0, 0)
- End If
- End If
- End If
- ' ========= TP (DATUMS=1, SIZES=1, PER_UNIT=1, COMPOSITE=1, GROUP=1) ===========
- If FCFType = 2 Then
- ptrSummary = 0
- ptrSummary2 = 0
- ptrLine1 = 0
- ptrLine2 = 0
- ptrLine3 = 0
- RefID1 = Cmd.GetText(REF_ID, 1)
- ' Summary axes - how many axes In Any group but Not For "set"
- ' first avoid the possibly existing "set", pointing To first feature (sometimes the dummy (On culinders may have additional String, that why SubString)
- For i2 = 1 To 1000
- dummy = Trim(Cmd.GetFieldValue(SUMMARY_FEAT, i2))
- dummy = Right(dummy, Len(dummy) - InStr(1, dummy, ":"))
- If Len(dummy) >= Len(RefID1) Then
- If Left(dummy, Len(RefID1)) = RefID1 Then Exit For
- 'If dummy = RefID1 Then Exit For
- End If
- Next
- ' record the starting points For the coordinates In the summary group
- ptrSummary = i2 - 1
- ' Now count the axes staring from element
- iNumRowsAx = 0
- For i3 = i2 To 1000
- If i3 = i2 Then
- dummy = Cmd.GetText(SUMMARY_AXIS, i3)
- iNumRowsAx = iNumRowsAx + 1
- Else
- If Cmd.GetText(SUMMARY_AXIS, i3) = "" Or Cmd.GetText(SUMMARY_AXIS, i3) = dummy Then Exit For
- iNumRowsAx = iNumRowsAx + 1
- End If
- Next
- ' check If composite is On Or If we have 2 segments
- If Cmd.GetToggleValue(COMPOSITE, 0) = 2 Then bComposite = True Else bComposite = False
- If Cmd.GetText(GDT_SYMBOL2, 0) <> "" Then b2Segments = True Else b2Segments = False
- ' find where the scond summary axes group starts
- If bComposite Or b2Segments Then
- For i2 = ptrSummary + 2 To 1000
- dummy = Trim(Cmd.GetFieldValue(SUMMARY_FEAT, i2))
- dummy = Right(dummy, Len(dummy) - InStr(1, dummy, ":"))
- If dummy = RefID1 Then Exit For
- Next
- ' record the starting points For the coordinates In the summary group
- ptrSummary2 = i2 - 1
- End If
- ' No start collecting
- For i2 = 1 To 1000
- If Cmd.GetText(REF_ID, i2) = "" Then GoTo 1002
- ' primary dimension
- OUTName = FName
- If i2 > 1 Then OUTName = OUTName & "_" & i2 - 1
- ' Output axes primary
- RefName = Trim(Cmd.GetText(REF_ID, i2))
- If RefPatternMode = 0 Then
- For i3 = 1 To 100
- If Cmd.GetText(DIM_RPT_DATUM, i3) = "" Then Exit For
- RefName = RefName & "-" & Trim(Cmd.GetText(DIM_RPT_DATUM, i3))
- Next
- End If
- If RefPatternMode = 1 Then
- 'Ref Name old method
- RefList = ""
- For i3 = 1 To 100
- dummy = Trim(Cmd.GetText(DIM_RPT_DATUM, i3))
- If dummy = "" Then Exit For
- RefList = RefList & dummy & " - "
- Next
- If (RefList <> "") Then
- RefList = " (" & Left(RefList, Len(RefList) - 3) & ")"
- End If
- RefName = RefName & RefList
- End If
- ' Extract primary TP
- sDimAxis = Cmd.GetFieldValue(GDT_SYMBOL, 0)
- ptrLine2 = ptrLine2 + 1
- Mea = Format(CDbl(Cmd.GetFieldValue(LINE2_MEAS, ptrLine2)), "0.000000")
- UT = Format(CDbl(Cmd.GetFieldValue(LINE2_PLUSTOL, ptrLine2)), "0.000000")
- myBonus = Format(CDbl(Cmd.GetFieldValue(LINE2_BONUS, ptrLine2)), "0.000000")
- ' Nodes
- ret = IncrementTPNodes(OUTName, True, False)
- TPNodeOut = TPNode
- TPNodeRefOut = TPNodeRef
- ret = AddDim(OUTName, RefName, sDimAxis, CommandType, "0", Mea, UT + myBonus, myBonus, "0", FCFType, AssignCriticity(), DimComment, RepMode, TPNodeOut, TPNodeRefOut)
- CritCount = CritCount + 1
- ' Extract Axes
- For i3 = 1 To iNumRowsAx
- ptrSummary = ptrSummary + 1
- Nom = Format(CDbl(Cmd.GetFieldValue(SUMMARY_NOMINAL, ptrSummary)), "0.000000")
- Mea = Format(CDbl(Cmd.GetFieldValue(SUMMARY_MEAS, ptrSummary)), "0.000000")
- sDimAxis = Cmd.GetText(SUMMARY_AXIS, ptrSummary)
- ' Nodes
- ret = IncrementTPNodes(OUTName, False, True)
- TPNodeOut = TPNode
- TPNodeRefOut = TPNodeRef
- ret = AddDim(OUTName, RefName, sDimAxis, CommandType, Nom, Mea, "0", "0", "0", FCFType, AssignCriticity(), DimComment, RepMode, TPNodeOut, TPNodeRefOut)
- CritCount = CritCount + 1
- Next
- ' Extract size primary If there is Any
- If Cmd.GetText(LINE1_FEATNAME, i2) <> "" Then
- ptrLine1 = ptrLine1 + 1
- Nom = Format(CDbl(Cmd.GetFieldValue(LINE1_NOMINAL, ptrLine1)), "0.000000")
- Mea = Format(CDbl(Cmd.GetFieldValue(LINE1_MEAS, ptrLine1)), "0.000000")
- UT = Format(CDbl(Cmd.GetFieldValue(LINE1_PLUSTOL, ptrLine1)), "0.000000")
- LT = Format(CDbl(Cmd.GetFieldValue(LINE1_MINUSTOL, ptrLine1))*TolsSign, "0.000000")
- sDimAxis = "DF"
- ret = AddDim(OUTName, RefName, sDimAxis, CommandType, Nom, Mea, UT, "0", LT, FCFType, AssignCriticity(), DimComment, RepMode, 0, 0)
- CritCount = CritCount + 1
- End If
- ' secondary dimension composite
- If bComposite Then
- OUTName = FName & "_C"
- RefName = Trim(Cmd.GetText(REF_ID, i2))
- If RefPatternMode = 0 Then
- For i3 = 1 To 100
- If Cmd.GetText(DATUM2, i3) = "" Then Exit For
- RefName = RefName & "-" & Trim(Cmd.GetText(DATUM2, i3))
- Next
- End If
- If RefPatternMode = 1 Then
- 'Ref Name old method
- RefList = ""
- For i3 = 1 To 100
- dummy = Trim(Cmd.GetText(DIM_RPT_DATUM, i3))
- If dummy = "" Then Exit For
- RefList = RefList & dummy & " - "
- Next
- If (RefList <> "") Then
- RefList = " (" & Left(RefList, Len(RefList) - 3) & ")"
- End If
- RefName = RefName & RefList
- End If
- If i2 > 1 Then OUTName = OUTName & "_" & i2 - 1
- ' Extract TP secondary
- ptrLine3 = ptrLine3 + 1
- sDimAxis = Cmd.GetFieldValue(GDT_SYMBOL, 0)
- Mea = Format(CDbl(Cmd.GetFieldValue(LINE3_MEAS, ptrLine3)), "0.000000")
- UT = Format(CDbl(Cmd.GetFieldValue(LINE3_PLUSTOL, ptrLine3)), "0.000000")
- myBonus = Format(CDbl(Cmd.GetFieldValue(LINE3_BONUS, ptrLine3)), "0.000000")
- ' Nodes
- ret = IncrementTPNodes(OUTName, True, False)
- TPNodeOut = TPNode
- TPNodeRefOut = TPNodeRef
- ret = AddDim(OUTName, RefName, sDimAxis, CommandType, "0", Mea, UT + myBonus, myBonus, "0", FCFType, AssignCriticity(), DimComment, RepMode, TPNodeOut, TPNodeRefOut)
- CritCount = CritCount + 1
- ' Output axes secondary
- For i3 = 1 To iNumRowsAx
- ptrSummary2 = ptrSummary2 + 1
- Nom = Format(CDbl(Cmd.GetFieldValue(SUMMARY_NOMINAL, ptrSummary2)), "0.000000")
- Mea = Format(CDbl(Cmd.GetFieldValue(SUMMARY_MEAS, ptrSummary2)), "0.000000")
- sDimAxis = Cmd.GetText(SUMMARY_AXIS, ptrSummary2)
- ' Nodes
- ret = IncrementTPNodes(OUTName, False, True)
- TPNodeOut = TPNode
- TPNodeRefOut = TPNodeRef
- ret = AddDim(OUTName, RefName, sDimAxis, CommandType, Nom, Mea, "0", "0", "0", FCFType, AssignCriticity(), DimComment, RepMode, TPNodeOut, TPNodeRefOut)
- CritCount = CritCount + 1
- Next
- End If
- ' secondary dimension lower segments
- If b2Segments = True And bComposite = False Then
- OUTName = FName & "_L"
- RefName = Trim(Cmd.GetText(REF_ID, i2))
- If RefPatternMode = 0 Then
- For i3 = 1 To 100
- If Cmd.GetText(DATUM2, i3) = "" Then Exit For
- RefName = RefName & "-" & Cmd.GetText(DATUM2, i3)
- Next
- End If
- If RefPatternMode = 1 Then
- 'Ref Name old method
- RefList = ""
- For i3 = 1 To 100
- dummy = Trim(Cmd.GetText(DIM_RPT_DATUM, i3))
- If dummy = "" Then Exit For
- RefList = RefList & dummy & " - "
- Next
- If (RefList <> "") Then
- RefList = " (" & Left(RefList, Len(RefList) - 3) & ")"
- End If
- RefName = RefName & RefList
- End If
- If i2 > 1 Then OUTName = OUTName & "_" & i2 - 1
- ' Extract TP lower
- ptrLine3 = ptrLine3 + 1
- sDimAxis = Cmd.GetFieldValue(GDT_SYMBOL, 0)
- Mea = Format(CDbl(Cmd.GetFieldValue(LINE3_MEAS, ptrLine3)), "0.000000")
- UT = Format(CDbl(Cmd.GetFieldValue(LINE3_PLUSTOL, ptrLine3)), "0.000000")
- myBonus = Format(CDbl(Cmd.GetFieldValue(LINE3_BONUS, ptrLine3)), "0.000000")
- ' Nodes
- ret = IncrementTPNodes(OUTName, True, False)
- TPNodeOut = TPNode
- TPNodeRefOut = TPNodeRef
- ret = AddDim(OUTName, RefName, sDimAxis, CommandType, "0", Mea, UT + myBonus, myBonus, "0", FCFType, AssignCriticity(), DimComment, RepMode, TPNodeOut, TPNodeRefOut)
- CritCount = CritCount + 1
- ' Output axes lower
- For i3 = 1 To iNumRowsAx
- ptrSummary2 = ptrSummary2 + 1
- Nom = Format(CDbl(Cmd.GetFieldValue(SUMMARY_NOMINAL, ptrSummary2)), "0.000000")
- Mea = Format(CDbl(Cmd.GetFieldValue(SUMMARY_MEAS, ptrSummary2)), "0.000000")
- sDimAxis = Cmd.GetText(SUMMARY_AXIS, ptrSummary2)
- ' Nodes
- ret = IncrementTPNodes(OUTName, False, True)
- TPNodeOut = TPNode
- TPNodeRefOut = TPNodeRef
- ret = AddDim(OUTName, RefName, sDimAxis, CommandType, Nom, Mea, "0", "0", "0", FCFType, AssignCriticity(), DimComment, RepMode, TPNodeOut, TPNodeRefOut)
- CritCount = CritCount + 1
- Next
- End If
- ' Turn back the criticity counter If Next feature is there
- If Cmd.GetText(REF_ID, i2 + 1) <> "" Then
- For i3 = 1 To CritCount
- iSelUsed = iSelUsed - 1
- Next
- CritCount = 0
- End If
- Next i2
- 1002:
- End If
- End If
- 9191:
- Next i
- TFCont=TFCont+1
- TFName(TFCont)=""
- TFMessage(TFCont)="FileName"
- TFValue(TFCont)=Prg.FullName
- Dim fp As Long
- fp=FreeFile
- Open FileName For Output As #fp
- Print #fp,"#TRACEFIELDS"
- For i=1 To TFCont
- Print #fp,TFName(i) & ";" & TFMessage(i) & ";" & TFValue(i)
- Next i
- Print #fp,"#DIMENSIONS"
- For i=1 To DimCount
- If DimRepMode(i) = 1 or DimRepMode(i) = 3 Then
- If WithNodes Then
- Print #fp,DimNames(i) & ";" & DimAxes(i) & ";" & DimDescrs(i) & ";" & DimNoms(i) & ";" & DimUTs(i) & ";" & DimBonuses(i) & ";" & DimLTs(i) & ";" & DimMeas(i) & ";" & DimPCDCmdType(i) & ";" & DimFCFType(i) & ";" & DimCriticity(i) & ";" & DimComments(i) & ";" & DimRepMode(i) & ";" & DimTPNodes(i) & ";" & DimTPNodeRefs(i)
- Else
- Print #fp,DimNames(i) & ";" & DimAxes(i) & ";" & DimDescrs(i) & ";" & DimNoms(i) & ";" & DimUTs(i) & ";" & DimBonuses(i) & ";" & DimLTs(i) & ";" & DimMeas(i) & ";" & DimPCDCmdType(i) & ";" & DimFCFType(i) & ";" & DimCriticity(i) & ";" & " " & ";" & DimRepMode(i) & ";" & "0" & ";" & "0"
- End If
- End If
- Next i
- Close #fp
- End Sub
- Sub WriteLog(fn As String, Str1 As String, init As Boolean)
- Dim fptr As Long
- fptr=FreeFile
- If init Then
- Open fn For Output As #fptr
- Else
- Open fn For Append As #fptr
- End If
- Print #fptr,Str1
- Close #fptr
- End Sub
- Sub Main (Arg1 As String, Arg2 As String, Arg3 As String, Arg4 As String, Arg5 As String)
- Dim i As Long
- Dim FileName As String
- '---------------------------
- '---- O P T I O N S -------
- '---------------------------
- ' **** How To make pattern of the datums:
- ' RefPatternMode=0 - No brackets
- ' RefPatternMode=1 - With brackets
- RefPatternMode=0
- ' **** Nodes of TP (create Or Not)
- DFQWithNodes=True
- ' **** SplitTPAndSize -
- ' if 0 will keep TP and size in the same dimension, if 1 will spllit in 2 dimensions (default 0)
- SplitTPAndSize=0
- ' **** UseK2005forMinMax -
- ' Allow trace field K2005 to manage separately the MIN/MAX axes (default is False)
- UseK2005forMinMax=True
- '------------------------------------
- FileName = "C:\Hexagon\FlexReport2\FlexReport2.txt"
- ' Second argument - With Or Without Nodes
- CreateFRFile FileName, DFQWithNodes
- If Arg1="DFQ" Then
- If Instr(1,Arg3,",")=0 Then
- Shell "C:\Hexagon\FlexReport2\FlexReport2.exe /DFQ " & chr(34) & "/PATH=" & Arg2 & chr(34) & " " & chr(34) & "/FILE=" & Arg3 & chr(34) & " /CRI=" & Arg4 & " /TUS=" & Arg5
- Else
- Dim fn1 As String, fn2 As String
- fn1= left(Arg3,Instr(1,Arg3,",")-1)
- fn2=right(Arg3,len(Arg3)-Instr(1,Arg3,","))
- Dim path1 As String, path2 As String
- If Instr(1,Arg2,",")=0 Then
- path1=""
- path2=""
- Else
- path1= left(Arg2,Instr(1,Arg2,",")-1)
- path2=right(Arg2,len(Arg2)-Instr(1,Arg2,","))
- End If
- Shell "C:\Hexagon\FlexReport2\FlexReport2.exe /DFQ " & chr(34) & "/PATH=" & path1 & chr(34) & " " & chr(34) & "/FILE=" & fn1 & chr(34)
- Shell "C:\Hexagon\FlexReport2\FlexReport2.exe /DFQ " & chr(34) & "/PATH=" & path2 & chr(34) & " " & chr(34) & "/FILE=" & fn2 & chr(34) & " /CRI=" & Arg4 & " /TUS=" & Arg5
- End If
- End If
- If Arg1="XLS01" Then
- If Arg5="" Then
- Arg5=Prg.Path & Prg.Name
- Arg5=left(Arg5,len(Arg5)-4) & ".Excel01.xml"
- End If
- Shell "C:\Hexagon\FlexReport2\FlexReport2.exe /XLS01 " & chr(34) & "/DST=" & Arg2 & chr(34) & " " & chr(34) & "/SRC=" & Arg3 & chr(34) & " " & chr(34) & "/RUL=" & Arg5 & chr(34)
- End If
- If Arg1="XLS02" Then
- If Arg5="" Then Arg5="0"
- Shell "C:\Hexagon\FlexReport2\FlexReport2.exe /XLS02 " & chr(34) & "/DST=" & Arg2 & chr(34) & " " & chr(34) & "/RUL=" & Arg3 & chr(34) & " /CRI=" & Arg4 & " /TUS=" & Arg5
- End If
- If Arg1="TXT01" Then
- If Arg5="" Then Arg5="0"
- Shell "C:\Hexagon\FlexReport2\FlexReport2.exe /TXT01 " & chr(34) & "/DST=" & Arg2 & chr(34) & " " & chr(34) & "/RUL=" & Arg3 & chr(34) & " /CRI=" & Arg4 & " /TUS=" & Arg5
- End If
- If Arg1="SQL" Then
- Shell "C:\Hexagon\FlexReport2\FlexReport2.exe /SQL"
- End If
- If Arg1="SCR" Then
- Shell "C:\Hexagon\FlexReport2\FlexReport2.exe /SCR " & chr(34) & "/DST=" & Arg2 & chr(34) & " " & chr(34) & "/RUL=" & Arg3 & chr(34) & " /CRI=" & Arg4 & " /TUS=" & Arg5
- End If
- If Arg1="FLR" Then
- Shell "C:\Hexagon\FlexReport2\FlexReport2.exe /FLR " & chr(34) & "/PATH=" & Arg2 & chr(34) & " " & chr(34) & "/FILE=" & Arg3 & chr(34) & " /CRI=" & Arg4 & " /TUS=" & Arg5
- End If
- End Sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement