hexagon logo

How to get data from dimension of profile?

Hi, I first take five points and construct them to be a feature set. And then i caculate the profile.
how can i get the "T" for every point by the profile dimension with VB or VAB or C#? I use PCDMIS
2013. Thank you very much
Parents
  • This will calculate +/- TVal's

    Sub Main()
    Dim PCDApp, PCDPartPrograms, PCDPartProgram, PCDCommands, PCDCommand
    Dim PCDFeatCmd
    Dim Prbhit
    Dim numhits, nhits As Integer
    
    Set PCDApp = CreateObject("PCDLRN.Application")
    Set PCDPartPrograms = PCDApp.PartPrograms
    Set PCDPartProgram = PCDActivePartProgram
    Set PCDCommands = PCDPartProgram.Commands
    
    Dim cmd As Object
    Dim Fcntr As Integer
    Dim FeatureList$(99999)
    Dim MX, MY, MZ, TX, TY, TZ, Xdev, Ydev, Zdev, MI, MJ, MK, TI, TJ, TK As Double
    
    Fcntr = 0
    
    For Each cmd In PCDCommands
        If cmd.Type = 596 Then 'Feaure Set
            FeatureList(Fcntr) = cmd.id
        Set PCDCommand = PCDCommands.Item(FeatureList(Fcntr))
    
        Set PCDFeatCmd =PCDCommand.FeatureCommand
            Fcntr = Fcntr + 1
            Nhits = PCDFeatCmd.NumHits
    While fcntr<nhits+1
    
        Set prbhit = PCDFeatCmd.GetHit(Fcntr, FHITDATA_CENTROID, FDATA_THEO, FDATA_PART, AlignID, PLANE_TOP)
        TX = CDbl(prbhit.x)
        TY = CDbl(prbhit.y)
        TZ = CDbl(prbhit.z)
    
        Set prbhit = PCDFeatCmd.GetHit(Fcntr, FHITDATA_VECTOR, FDATA_THEO, FDATA_PART, AlignID, PLANE_TOP)
        TI = CDbl(prbhit.i)
        TJ = CDbl(prbhit.j)
        TK = CDbl(prbhit.k)
    
        Set prbhit = PCDFeatCmd.GetHit(Fcntr, FHITDATA_CENTROID, FDATA_TMEAS,FDATA_PART, AlignID, PLANE_TOP)
        MX = CDbl(prbhit.x)
        MY = CDbl(prbhit.y)
        MZ = CDbl(prbhit.z)
    
        XDev = MX - TX 
        YDev = MY - TY
        ZDev = MZ - TZ
    
        TVal = ((Xdev)*TI) + ((YDev)*TJ) + ((ZDev)*TZ)
    
        ' output the TVal to a file 
    
        Fcntr = Fcntr + 1
    Wend
    End If
    
    Next cmd
    
    Set PCDApp = nothing
    Set PCDPartPrograms = nothing
    Set PCDPartProgram = nothing
    Set prbhit = nothing
    
    End Sub
    


    Feel free to adapt to your specific needs.
Reply
  • This will calculate +/- TVal's

    Sub Main()
    Dim PCDApp, PCDPartPrograms, PCDPartProgram, PCDCommands, PCDCommand
    Dim PCDFeatCmd
    Dim Prbhit
    Dim numhits, nhits As Integer
    
    Set PCDApp = CreateObject("PCDLRN.Application")
    Set PCDPartPrograms = PCDApp.PartPrograms
    Set PCDPartProgram = PCDActivePartProgram
    Set PCDCommands = PCDPartProgram.Commands
    
    Dim cmd As Object
    Dim Fcntr As Integer
    Dim FeatureList$(99999)
    Dim MX, MY, MZ, TX, TY, TZ, Xdev, Ydev, Zdev, MI, MJ, MK, TI, TJ, TK As Double
    
    Fcntr = 0
    
    For Each cmd In PCDCommands
        If cmd.Type = 596 Then 'Feaure Set
            FeatureList(Fcntr) = cmd.id
        Set PCDCommand = PCDCommands.Item(FeatureList(Fcntr))
    
        Set PCDFeatCmd =PCDCommand.FeatureCommand
            Fcntr = Fcntr + 1
            Nhits = PCDFeatCmd.NumHits
    While fcntr<nhits+1
    
        Set prbhit = PCDFeatCmd.GetHit(Fcntr, FHITDATA_CENTROID, FDATA_THEO, FDATA_PART, AlignID, PLANE_TOP)
        TX = CDbl(prbhit.x)
        TY = CDbl(prbhit.y)
        TZ = CDbl(prbhit.z)
    
        Set prbhit = PCDFeatCmd.GetHit(Fcntr, FHITDATA_VECTOR, FDATA_THEO, FDATA_PART, AlignID, PLANE_TOP)
        TI = CDbl(prbhit.i)
        TJ = CDbl(prbhit.j)
        TK = CDbl(prbhit.k)
    
        Set prbhit = PCDFeatCmd.GetHit(Fcntr, FHITDATA_CENTROID, FDATA_TMEAS,FDATA_PART, AlignID, PLANE_TOP)
        MX = CDbl(prbhit.x)
        MY = CDbl(prbhit.y)
        MZ = CDbl(prbhit.z)
    
        XDev = MX - TX 
        YDev = MY - TY
        ZDev = MZ - TZ
    
        TVal = ((Xdev)*TI) + ((YDev)*TJ) + ((ZDev)*TZ)
    
        ' output the TVal to a file 
    
        Fcntr = Fcntr + 1
    Wend
    End If
    
    Next cmd
    
    Set PCDApp = nothing
    Set PCDPartPrograms = nothing
    Set PCDPartProgram = nothing
    Set prbhit = nothing
    
    End Sub
    


    Feel free to adapt to your specific needs.
Children
No Data