Your Products have been synced, click here to refresh
ASSIGN/VCOUNT_MAX=4 ASSIGN/VCOUNT_ACTUAL=0 ASSIGN/VROUNDNESS=0 WHILE/VCOUNT_ACTUAL < VCOUNT_MAX ASSIGN/VCOUNT_ACTUAL=VCOUNT_ACTUAL+1 ASSIGN/VNAME="NAME_"+STR(VCOUNT_ACTUAL) RND =GEOMETRIC_TOLERANCE/STANDARD=ISO 1101,SHOWEXPANDED=YES, FEATURE_MATH=DEFAULT, UNITS=MM,OUTPUT=BOTH,ARROWDENSITY=100, SEGMENT_1,CIRCULARITY,0.01,TOL_ZONE_MATH=DEFAULT, TEXT=OFF,CADGRAPH=OFF,REPORTGRAPH=OFF,MULT=10, MEASURED: NAME_4:0.000, FEATURES/VNAME,, $$ YES, VNAME $$ YES, RND.SEGMENT[1].FEATURE[1].MEAS ASSIGN/VROUNDNESS[VCOUNT_ACTUAL]=RND.SEGMENT[1].FEATURE[1].MEAS END_WHILE/
hi,
you can try it out and see if it works.
Unfortunately, I didn't have any measurement data to hand,
so I don't know exactly if this works, but looks good so far.
basically it's like @ R2ah1ze1l said
Note that with this variant, the names of the circles should be countable like this: NAME_1 NAME_2 NAME_n
however the "name"-part can be changed, (only make sure you can count it up)
ASSIGN/VCOUNT_MAX=4 ASSIGN/VCOUNT_ACTUAL=0 ASSIGN/VROUNDNESS=0 WHILE/VCOUNT_ACTUAL < VCOUNT_MAX ASSIGN/VCOUNT_ACTUAL=VCOUNT_ACTUAL+1 ASSIGN/VNAME="NAME_"+STR(VCOUNT_ACTUAL) RND =GEOMETRIC_TOLERANCE/STANDARD=ISO 1101,SHOWEXPANDED=YES, FEATURE_MATH=DEFAULT, UNITS=MM,OUTPUT=BOTH,ARROWDENSITY=100, SEGMENT_1,CIRCULARITY,0.01,TOL_ZONE_MATH=DEFAULT, TEXT=OFF,CADGRAPH=OFF,REPORTGRAPH=OFF,MULT=10, MEASURED: NAME_4:0.000, FEATURES/VNAME,, $$ YES, VNAME $$ YES, RND.SEGMENT[1].FEATURE[1].MEAS ASSIGN/VROUNDNESS[VCOUNT_ACTUAL]=RND.SEGMENT[1].FEATURE[1].MEAS END_WHILE/
Sub Main Dim PCDApp, PCDPartPrograms, PCDPartProgram, PCDCommands, PCDCommand Dim tX, tY, tZ, tRound, mX, mY, mZ, tD, mD, mRound As String Set PCDApp = CreateObject("PCDLRN.Application") Set PCDPartPrograms = PCDApp.PartPrograms Set PCDPartProgram = PCDApp.ActivePartProgram Set PCDCommands = PCDPartProgram.Commands Dim iCnt As Integer Dim savePath Dim repFolder Dim repName repName = format(now(),"YYYYMMDDHHNNSS") savePath = "D:\PC-DMIS Data\Scripts\TEMP\" repFolder = left(PCDPartProgram.Name,len(PCDPartProgram.Name)-4) Open savePath & repFolder & repName & ".TXT" For Append As #1 For iCnt = 1 To PCDCommands.Count Set PCDCommand = PCDCommands.Item(iCnt) If Left(PCDCommand.ID, 3) = "CIR" Then tX = PCDCommand.GetText(THEO_X, 0) tY = PCDCommand.GetText(THEO_Y, 0) tZ = PCDCommand.GetText(THEO_Z, 0) tD = PCDCommand.GetText(THEO_DIAM, 0) tRound = 0 mX = PCDCommand.GetText(MEAS_X, 0) mY = PCDCommand.GetText(MEAS_Y, 0) mZ = PCDCommand.GetText(MEAS_Z, 0) mD = PCDCommand.GetText(MEAS_DIAM, 0) mRound = max(SQRT(DOT(CIR1.HIT[1..CIR1.NUMHITS].XYZ-CIR1.XYZ,CIR1.HIT[1..CIR1.NUMHITS].XYZ-CIR1.XYZ))) - MIN(SQRT(DOT(CIR1.HIT[1..CIR1.NUMHITS].XYZ-CIR1.XYZ,CIR1.HIT[1..CIR1.NUMHITS].XYZ-CIR1.XYZ))) Write #1, PCDCommand.ID & ", " & tX & ", " & tY & ", " & tZ & ", " & tD & ", " & tRound & ", " & mX & ", " & mY & ", " & mZ & ", " & mD & ", " & mRound End If Next iCnt Close #1 Set PCDCommands = Nothing Set PCDPartProgram = Nothing Set PCDPartPrograms = Nothing Set PCDApp = Nothing End Sub
© 2024 Hexagon AB and/or its subsidiaries. | Privacy Policy | Cloud Services Agreement |